survey-react 1.9.98 → 1.9.99

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.98
2
+ * surveyjs - Survey JavaScript library v1.9.99
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
  */
@@ -112,7 +112,7 @@ return /******/ (function(modules) { // webpackBootstrap
112
112
  __webpack_require__.r(__webpack_exports__);
113
113
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return SignaturePad; });
114
114
  /*!
115
- * Signature Pad v4.1.5 | https://github.com/szimek/signature_pad
115
+ * Signature Pad v4.1.6 | https://github.com/szimek/signature_pad
116
116
  * (c) 2023 Szymon Nowak | Released under the MIT license
117
117
  */
118
118
 
@@ -341,6 +341,7 @@ class SignaturePad extends SignatureEventTarget {
341
341
  this.dotSize = options.dotSize || 0;
342
342
  this.penColor = options.penColor || 'black';
343
343
  this.backgroundColor = options.backgroundColor || 'rgba(0,0,0,0)';
344
+ this.compositeOperation = options.compositeOperation || 'source-over';
344
345
  this._strokeMoveUpdate = this.throttle
345
346
  ? throttle(SignaturePad.prototype._strokeUpdate, this.throttle)
346
347
  : SignaturePad.prototype._strokeUpdate;
@@ -443,6 +444,9 @@ class SignaturePad extends SignatureEventTarget {
443
444
  velocityFilterWeight: group && 'velocityFilterWeight' in group
444
445
  ? group.velocityFilterWeight
445
446
  : this.velocityFilterWeight,
447
+ compositeOperation: group && 'compositeOperation' in group
448
+ ? group.compositeOperation
449
+ : this.compositeOperation,
446
450
  };
447
451
  }
448
452
  _strokeBegin(event) {
@@ -517,6 +521,7 @@ class SignaturePad extends SignatureEventTarget {
517
521
  this._lastVelocity = 0;
518
522
  this._lastWidth = (options.minWidth + options.maxWidth) / 2;
519
523
  this._ctx.fillStyle = options.penColor;
524
+ this._ctx.globalCompositeOperation = options.compositeOperation;
520
525
  }
521
526
  _createPoint(x, y, pressure) {
522
527
  const rect = this.canvas.getBoundingClientRect();
@@ -1761,7 +1766,7 @@ var ComputedUpdater = /** @class */ (function () {
1761
1766
  */
1762
1767
  var Base = /** @class */ (function () {
1763
1768
  function Base() {
1764
- this.propertyHash = {};
1769
+ this.propertyHash = Base.createPropertiesHash();
1765
1770
  this.eventList = [];
1766
1771
  this.isLoadingFromJsonValue = false;
1767
1772
  this.loadingOwner = null;
@@ -1860,6 +1865,9 @@ var Base = /** @class */ (function () {
1860
1865
  Base.prototype.isPropertyEmpty = function (value) {
1861
1866
  return value !== "" && this.isValueEmpty(value);
1862
1867
  };
1868
+ Base.createPropertiesHash = function () {
1869
+ return {};
1870
+ };
1863
1871
  Base.prototype.dispose = function () {
1864
1872
  for (var i = 0; i < this.eventList.length; i++) {
1865
1873
  this.eventList[i].clear();
@@ -5662,7 +5670,7 @@ var defaultV2Css = {
5662
5670
  header: {
5663
5671
  root: "sv_window_title",
5664
5672
  title: "",
5665
- button: "",
5673
+ button: "sv_window_button",
5666
5674
  buttonExpanded: "",
5667
5675
  buttonCollapsed: ""
5668
5676
  }
@@ -5729,7 +5737,6 @@ var defaultV2Css = {
5729
5737
  },
5730
5738
  variables: {
5731
5739
  mobileWidth: "--sd-mobile-width",
5732
- imagepickerGapBetweenItems: "--sd-imagepicker-gap",
5733
5740
  themeMark: "--sv-defaultV2-mark"
5734
5741
  },
5735
5742
  tagbox: {
@@ -8581,7 +8588,7 @@ __webpack_require__.r(__webpack_exports__);
8581
8588
  /*!*************************************!*\
8582
8589
  !*** ./src/entries/chunks/model.ts ***!
8583
8590
  \*************************************/
8584
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8591
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8585
8592
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8586
8593
 
8587
8594
  "use strict";
@@ -8876,6 +8883,8 @@ __webpack_require__.r(__webpack_exports__);
8876
8883
  /* harmony import */ var _surveyToc__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../../surveyToc */ "./src/surveyToc.ts");
8877
8884
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryNavigateToPage", function() { return _surveyToc__WEBPACK_IMPORTED_MODULE_55__["tryNavigateToPage"]; });
8878
8885
 
8886
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryFocusPage", function() { return _surveyToc__WEBPACK_IMPORTED_MODULE_55__["tryFocusPage"]; });
8887
+
8879
8888
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _surveyToc__WEBPACK_IMPORTED_MODULE_55__["createTOCListModel"]; });
8880
8889
 
8881
8890
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _surveyToc__WEBPACK_IMPORTED_MODULE_55__["getTocRootCss"]; });
@@ -9034,7 +9043,7 @@ __webpack_require__.r(__webpack_exports__);
9034
9043
  // import "../../main.scss";
9035
9044
  //import "../../modern.scss";
9036
9045
  var Version;
9037
- Version = "" + "1.9.98";
9046
+ Version = "" + "1.9.99";
9038
9047
  function checkLibraryVersion(ver, libraryName) {
9039
9048
  if (Version != ver) {
9040
9049
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9142,7 +9151,7 @@ function checkLibraryVersion(ver, libraryName) {
9142
9151
  /*!**************************************!*\
9143
9152
  !*** ./src/entries/core-wo-model.ts ***!
9144
9153
  \**************************************/
9145
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9154
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper */
9146
9155
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9147
9156
 
9148
9157
  "use strict";
@@ -9384,6 +9393,8 @@ __webpack_require__.r(__webpack_exports__);
9384
9393
 
9385
9394
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryNavigateToPage", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["tryNavigateToPage"]; });
9386
9395
 
9396
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryFocusPage", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["tryFocusPage"]; });
9397
+
9387
9398
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["createTOCListModel"]; });
9388
9399
 
9389
9400
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["getTocRootCss"]; });
@@ -9585,7 +9596,7 @@ __webpack_require__.r(__webpack_exports__);
9585
9596
  /*!*****************************!*\
9586
9597
  !*** ./src/entries/core.ts ***!
9587
9598
  \*****************************/
9588
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9599
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model */
9589
9600
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9590
9601
 
9591
9602
  "use strict";
@@ -9827,6 +9838,8 @@ __webpack_require__.r(__webpack_exports__);
9827
9838
 
9828
9839
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryNavigateToPage", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["tryNavigateToPage"]; });
9829
9840
 
9841
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryFocusPage", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["tryFocusPage"]; });
9842
+
9830
9843
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createTOCListModel"]; });
9831
9844
 
9832
9845
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["getTocRootCss"]; });
@@ -10388,7 +10401,7 @@ __webpack_require__.r(__webpack_exports__);
10388
10401
  /*!******************************!*\
10389
10402
  !*** ./src/entries/react.ts ***!
10390
10403
  \******************************/
10391
- /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10404
+ /*! exports provided: Version, checkLibraryVersion, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, TooltipManager, DragOrClickHelper, Model, bootstrapThemeName, bootstrapThemeColors, bootstrapThemeCssRules, bootstrapMaterialThemeName, bootstrapMaterialThemeColors, bootstrapMaterialThemeCssRules, defaultBootstrapCss, defaultBootstrapMaterialCss, Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyQuestionMultipleText, SurveyQuestionRadiogroup, SurveyQuestionRadioItem, SurveyQuestionText, SurveyQuestionBoolean, SurveyQuestionBooleanCheckbox, SurveyQuestionBooleanRadio, SurveyQuestionEmpty, SurveyQuestionMatrixDropdownCell, SurveyQuestionMatrixDropdownBase, SurveyQuestionMatrixDropdown, SurveyQuestionMatrixDynamic, SurveyQuestionMatrixDynamicAddButton, SurveyQuestionPanelDynamic, SurveyProgress, SurveyProgressButtons, SurveyProgressToc, SurveyQuestionRating, SurveyQuestionRatingDropdown, SurveyQuestionExpression, PopupSurvey, SurveyWindow, ReactQuestionFactory, ReactElementFactory, SurveyQuestionImagePicker, SurveyQuestionImage, SurveyQuestionSignaturePad, SurveyQuestionButtonGroup, SurveyQuestionCustom, SurveyQuestionComposite, Popup, List, TitleActions, TitleElement, SurveyActionBar, LogoImage, SurveyHeader, SvgIcon, SurveyQuestionMatrixDynamicRemoveButton, SurveyQuestionMatrixDetailButton, SurveyQuestionMatrixDynamicDragDropIcon, SurveyQuestionPanelDynamicAddButton, SurveyQuestionPanelDynamicRemoveButton, SurveyQuestionPanelDynamicPrevButton, SurveyQuestionPanelDynamicNextButton, SurveyQuestionPanelDynamicProgressText, SurveyNavigationButton, MatrixRow, Skeleton, NotifierComponent, ComponentsContainer, CharacterCounterComponent, SurveyLocStringViewer, SurveyLocStringEditor */
10392
10405
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10393
10406
 
10394
10407
  "use strict";
@@ -10630,6 +10643,8 @@ __webpack_require__.r(__webpack_exports__);
10630
10643
 
10631
10644
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryNavigateToPage", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["tryNavigateToPage"]; });
10632
10645
 
10646
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryFocusPage", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["tryFocusPage"]; });
10647
+
10633
10648
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["createTOCListModel"]; });
10634
10649
 
10635
10650
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["getTocRootCss"]; });
@@ -15806,10 +15821,11 @@ var Helpers = /** @class */ (function () {
15806
15821
  return true;
15807
15822
  };
15808
15823
  Helpers.compareStrings = function (x, y) {
15824
+ var normalize = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].comparator.normalizeTextCallback;
15809
15825
  if (!!x)
15810
- x = x.trim();
15826
+ x = normalize(x, "compare").trim();
15811
15827
  if (!!y)
15812
- y = y.trim();
15828
+ y = normalize(y, "compare").trim();
15813
15829
  if (!x && !y)
15814
15830
  return 0;
15815
15831
  if (!x)
@@ -15853,6 +15869,9 @@ var Helpers = /** @class */ (function () {
15853
15869
  if (caseSensitive === undefined)
15854
15870
  caseSensitive = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].comparator.caseSensitive;
15855
15871
  if (typeof x === "string" && typeof y === "string") {
15872
+ var normalize = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].comparator.normalizeTextCallback;
15873
+ x = normalize(x, "compare");
15874
+ y = normalize(y, "compare");
15856
15875
  if (trimStrings) {
15857
15876
  x = x.trim();
15858
15877
  y = y.trim();
@@ -19204,6 +19223,7 @@ __webpack_require__.r(__webpack_exports__);
19204
19223
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
19205
19224
  /* harmony import */ var _element_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./element-helper */ "./src/element-helper.ts");
19206
19225
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
19226
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
19207
19227
  var __extends = (undefined && undefined.__extends) || (function () {
19208
19228
  var extendStatics = function (d, b) {
19209
19229
  extendStatics = Object.setPrototypeOf ||
@@ -19231,6 +19251,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
19231
19251
 
19232
19252
 
19233
19253
 
19254
+
19234
19255
  var defaultListCss = {
19235
19256
  root: "sv-list__container",
19236
19257
  item: "sv-list__item",
@@ -19308,6 +19329,7 @@ var ListModel = /** @class */ (function (_super) {
19308
19329
  if (!filterStringInLow)
19309
19330
  return true;
19310
19331
  var textInLow = (item.title || "").toLocaleLowerCase();
19332
+ textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
19311
19333
  return textInLow.indexOf(filterStringInLow.toLocaleLowerCase()) > -1;
19312
19334
  };
19313
19335
  ListModel.prototype.isItemVisible = function (item) {
@@ -26664,7 +26686,7 @@ var QuestionRowModel = /** @class */ (function (_super) {
26664
26686
  if (!el.isVisible || preSetWidthElements.indexOf(el) > -1)
26665
26687
  continue;
26666
26688
  if (preSetWidthElements.length == 0) {
26667
- el.renderWidth = (100 / visCount).toFixed(6) + "%";
26689
+ el.renderWidth = Number.parseFloat((100 / visCount).toFixed(6)) + "%";
26668
26690
  }
26669
26691
  else {
26670
26692
  el.renderWidth = this.getRenderedCalcWidth(el, preSetWidthElements, visCount);
@@ -30459,6 +30481,26 @@ var PopupSurveyModel = /** @class */ (function (_super) {
30459
30481
  PopupSurveyModel.prototype.changeExpandCollapse = function () {
30460
30482
  this.isExpanded = !this.isExpanded;
30461
30483
  };
30484
+ Object.defineProperty(PopupSurveyModel.prototype, "allowClose", {
30485
+ /**
30486
+ * Specifies whether to display a button that closes the pop-up window.
30487
+ *
30488
+ * Default value: `false`
30489
+ *
30490
+ * 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.
30491
+ * @see expand
30492
+ * @see collapse
30493
+ * @see hide
30494
+ */
30495
+ get: function () {
30496
+ return this.getPropertyValue("allowClose", false);
30497
+ },
30498
+ set: function (val) {
30499
+ this.setPropertyValue("allowClose", val);
30500
+ },
30501
+ enumerable: false,
30502
+ configurable: true
30503
+ });
30462
30504
  Object.defineProperty(PopupSurveyModel.prototype, "css", {
30463
30505
  get: function () {
30464
30506
  return this.survey.css;
@@ -30501,6 +30543,13 @@ var PopupSurveyModel = /** @class */ (function (_super) {
30501
30543
  enumerable: false,
30502
30544
  configurable: true
30503
30545
  });
30546
+ Object.defineProperty(PopupSurveyModel.prototype, "cssHeaderButton", {
30547
+ get: function () {
30548
+ return this.getPropertyValue("cssHeaderButton", "");
30549
+ },
30550
+ enumerable: false,
30551
+ configurable: true
30552
+ });
30504
30553
  Object.defineProperty(PopupSurveyModel.prototype, "renderedWidth", {
30505
30554
  get: function () {
30506
30555
  var width = this.getPropertyValue("width", "60%");
@@ -30522,6 +30571,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
30522
30571
  return;
30523
30572
  this.setPropertyValue("cssHeaderRoot", cssHeader.root);
30524
30573
  this.setPropertyValue("cssHeaderTitle", cssHeader.title);
30574
+ this.setPropertyValue("cssHeaderButton", cssHeader.button);
30525
30575
  this.updateCssButton();
30526
30576
  };
30527
30577
  PopupSurveyModel.prototype.updateCssButton = function () {
@@ -30602,12 +30652,16 @@ __webpack_require__.r(__webpack_exports__);
30602
30652
 
30603
30653
 
30604
30654
 
30605
- function createPopupModalViewModel(options, container) {
30655
+ function createPopupModalViewModel(options, rootElement) {
30606
30656
  var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_0__["PopupModel"](options.componentName, options.data, "top", "left", false, true, options.onCancel, options.onApply, options.onHide, options.onShow, options.cssClass, options.title);
30607
30657
  popupModel.displayMode = options.displayMode || "popup";
30608
30658
  var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_2__["PopupModalViewModel"](popupModel);
30609
- popupViewModel.setComponentElement(container);
30610
- if (!container) {
30659
+ if (!!rootElement && !!rootElement.appendChild) {
30660
+ var container = document.createElement("div");
30661
+ rootElement.appendChild(container);
30662
+ popupViewModel.setComponentElement(container);
30663
+ }
30664
+ if (!popupViewModel.container) {
30611
30665
  popupViewModel.initializePopupContainer();
30612
30666
  }
30613
30667
  return popupViewModel;
@@ -32773,6 +32827,7 @@ var Question = /** @class */ (function (_super) {
32773
32827
  Question.prototype.createValueCopy = function () {
32774
32828
  return this.getUnbindValue(this.value);
32775
32829
  };
32830
+ Question.prototype.initDataUI = function () { };
32776
32831
  Question.prototype.getUnbindValue = function (value) {
32777
32832
  if (this.isValueSurveyElement(value))
32778
32833
  return value;
@@ -33275,7 +33330,6 @@ var Question = /** @class */ (function (_super) {
33275
33330
  }
33276
33331
  return res;
33277
33332
  };
33278
- Question.prototype.addSupportedValidators = function (supportedValidators, classValidators) { };
33279
33333
  Question.prototype.addConditionObjectsByContext = function (objects, context) {
33280
33334
  objects.push({
33281
33335
  name: this.getValueName(),
@@ -33283,6 +33337,28 @@ var Question = /** @class */ (function (_super) {
33283
33337
  question: this,
33284
33338
  });
33285
33339
  };
33340
+ /**
33341
+ * Returns an array of questions nested within the current question. Use this method to obtain questions within [Multiple Text](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model), [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model), and [Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model)-like questions.
33342
+ * @param visibleOnly A Boolean value that specifies whether to include only visible nested questions.
33343
+ * @returns An array of nested questions.
33344
+ */
33345
+ Question.prototype.getNestedQuestions = function (visibleOnly) {
33346
+ if (visibleOnly === void 0) { visibleOnly = false; }
33347
+ var res = [];
33348
+ this.collectNestedQuestions(res, visibleOnly);
33349
+ if (res.length === 1 && res[0] === this)
33350
+ return [];
33351
+ return res;
33352
+ };
33353
+ Question.prototype.collectNestedQuestions = function (questions, visibleOnly) {
33354
+ if (visibleOnly === void 0) { visibleOnly = false; }
33355
+ if (visibleOnly && !this.isVisible)
33356
+ return;
33357
+ this.collectNestedQuestionsCore(questions, visibleOnly);
33358
+ };
33359
+ Question.prototype.collectNestedQuestionsCore = function (questions, visibleOnly) {
33360
+ questions.push(this);
33361
+ };
33286
33362
  Question.prototype.getConditionJson = function (operator, path) {
33287
33363
  if (operator === void 0) { operator = null; }
33288
33364
  if (path === void 0) { path = null; }
@@ -33677,6 +33753,12 @@ var Question = /** @class */ (function (_super) {
33677
33753
  Question.prototype.onMobileChanged = function () {
33678
33754
  this.onMobileChangedCallback && this.onMobileChangedCallback();
33679
33755
  };
33756
+ Question.prototype.triggerResponsiveness = function (hard) {
33757
+ if (hard === void 0) { hard = true; }
33758
+ if (this.triggerResponsivenessCallback) {
33759
+ this.triggerResponsivenessCallback(hard);
33760
+ }
33761
+ };
33680
33762
  Question.prototype.initResponsiveness = function (el) {
33681
33763
  var _this = this;
33682
33764
  this.destroyResizeObserver();
@@ -33689,17 +33771,33 @@ var Question = /** @class */ (function (_super) {
33689
33771
  return;
33690
33772
  var isProcessed_1 = false;
33691
33773
  var requiredWidth_1 = undefined;
33692
- this.resizeObserver = new ResizeObserver(function () {
33693
- var rootEl = el.querySelector(scrollableSelector_1);
33694
- if (!requiredWidth_1 && _this.isDefaultRendering()) {
33695
- requiredWidth_1 = rootEl.scrollWidth;
33696
- }
33697
- if (isProcessed_1 || !Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__["isContainerVisible"])(rootEl)) {
33774
+ this.triggerResponsivenessCallback = function (hard) {
33775
+ if (hard) {
33776
+ requiredWidth_1 = undefined;
33777
+ _this.renderAs = "default";
33698
33778
  isProcessed_1 = false;
33699
33779
  }
33780
+ var callback = function () {
33781
+ var rootEl = el.querySelector(scrollableSelector_1);
33782
+ if (!requiredWidth_1 && _this.isDefaultRendering()) {
33783
+ requiredWidth_1 = rootEl.scrollWidth;
33784
+ }
33785
+ if (isProcessed_1 || !Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__["isContainerVisible"])(rootEl)) {
33786
+ isProcessed_1 = false;
33787
+ }
33788
+ else {
33789
+ isProcessed_1 = _this.processResponsiveness(requiredWidth_1, Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__["getElementWidth"])(rootEl));
33790
+ }
33791
+ };
33792
+ if (hard) {
33793
+ setTimeout(callback, 1);
33794
+ }
33700
33795
  else {
33701
- isProcessed_1 = _this.processResponsiveness(requiredWidth_1, Object(_utils_utils__WEBPACK_IMPORTED_MODULE_11__["getElementWidth"])(rootEl));
33796
+ callback();
33702
33797
  }
33798
+ };
33799
+ this.resizeObserver = new ResizeObserver(function () {
33800
+ _this.triggerResponsiveness(false);
33703
33801
  });
33704
33802
  this.onMobileChangedCallback = function () {
33705
33803
  setTimeout(function () {
@@ -33735,6 +33833,7 @@ var Question = /** @class */ (function (_super) {
33735
33833
  this.resizeObserver.disconnect();
33736
33834
  this.resizeObserver = undefined;
33737
33835
  this.onMobileChangedCallback = undefined;
33836
+ this.triggerResponsivenessCallback = undefined;
33738
33837
  this.renderAs = this.getDesktopRenderAs();
33739
33838
  }
33740
33839
  };
@@ -38449,6 +38548,11 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38449
38548
  });
38450
38549
  }
38451
38550
  };
38551
+ QuestionCompositeModel.prototype.collectNestedQuestionsCore = function (questions, visibleOnly) {
38552
+ if (!this.contentPanel)
38553
+ return;
38554
+ this.contentPanel.questions.forEach(function (q) { return q.collectNestedQuestions(questions, visibleOnly); });
38555
+ };
38452
38556
  QuestionCompositeModel.prototype.convertDataValue = function (name, newValue) {
38453
38557
  var val = this.getValueForContentPanel(this.value);
38454
38558
  if (!val)
@@ -39135,7 +39239,7 @@ var QuestionExpressionModel = /** @class */ (function (_super) {
39135
39239
  this.expressionRunner = new _conditions__WEBPACK_IMPORTED_MODULE_4__["ExpressionRunner"](this.expression);
39136
39240
  }
39137
39241
  this.expressionRunner.onRunComplete = function (newValue) {
39138
- _this.value = newValue;
39242
+ _this.value = _this.roundValue(newValue);
39139
39243
  _this.unlocCalculation();
39140
39244
  };
39141
39245
  this.expressionRunner.run(values, properties);
@@ -39153,6 +39257,7 @@ var QuestionExpressionModel = /** @class */ (function (_super) {
39153
39257
  * Default value: -1
39154
39258
  * @see displayStyle
39155
39259
  * @see minimumFractionDigits
39260
+ * @see precision
39156
39261
  */
39157
39262
  get: function () {
39158
39263
  return this.getPropertyValue("maximumFractionDigits");
@@ -39286,6 +39391,29 @@ var QuestionExpressionModel = /** @class */ (function (_super) {
39286
39391
  enumerable: false,
39287
39392
  configurable: true
39288
39393
  });
39394
+ Object.defineProperty(QuestionExpressionModel.prototype, "precision", {
39395
+ /**
39396
+ * Specifies how many decimal digits to keep in the expression value.
39397
+ *
39398
+ * Default value: -1 (unlimited)
39399
+ * @see maximumFractionDigits
39400
+ */
39401
+ get: function () {
39402
+ return this.getPropertyValue("precision");
39403
+ },
39404
+ set: function (val) {
39405
+ this.setPropertyValue("precision", val);
39406
+ },
39407
+ enumerable: false,
39408
+ configurable: true
39409
+ });
39410
+ QuestionExpressionModel.prototype.roundValue = function (val) {
39411
+ if (this.precision < 0)
39412
+ return val;
39413
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(val))
39414
+ return val;
39415
+ return parseFloat(val.toFixed(this.precision));
39416
+ };
39289
39417
  QuestionExpressionModel.prototype.getValueAsStr = function (val) {
39290
39418
  if (this.displayStyle == "date") {
39291
39419
  var d = new Date(val);
@@ -39514,6 +39642,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("expression", [
39514
39642
  { name: "maximumFractionDigits:number", default: -1 },
39515
39643
  { name: "minimumFractionDigits:number", default: -1 },
39516
39644
  { name: "useGrouping:boolean", default: true },
39645
+ { name: "precision:number", default: -1, category: "data" },
39517
39646
  { name: "enableIf", visible: false },
39518
39647
  { name: "isRequired", visible: false },
39519
39648
  { name: "readOnly", visible: false },
@@ -40416,6 +40545,7 @@ __webpack_require__.r(__webpack_exports__);
40416
40545
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
40417
40546
  /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
40418
40547
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
40548
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
40419
40549
  var __extends = (undefined && undefined.__extends) || (function () {
40420
40550
  var extendStatics = function (d, b) {
40421
40551
  extendStatics = Object.setPrototypeOf ||
@@ -40441,6 +40571,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
40441
40571
 
40442
40572
 
40443
40573
 
40574
+
40444
40575
  var youtubeTags = ["youtube.com", "youtu.be"];
40445
40576
  var videoSuffics = [".mp4", ".mov", ".wmv", ".flv", ".avi", ".mkv"];
40446
40577
  var youtubeUrl = "https://www.youtube.com/";
@@ -40546,12 +40677,16 @@ var QuestionImageModel = /** @class */ (function (_super) {
40546
40677
  enumerable: false,
40547
40678
  configurable: true
40548
40679
  });
40549
- QuestionImageModel.prototype.getRenderedSize = function (val) {
40550
- return isNaN(Number(val)) ? val : val + "px";
40551
- };
40680
+ Object.defineProperty(QuestionImageModel.prototype, "renderedStyleHeight", {
40681
+ get: function () {
40682
+ return this.imageHeight ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__["getRenderedStyleSize"])(this.imageHeight) : undefined;
40683
+ },
40684
+ enumerable: false,
40685
+ configurable: true
40686
+ });
40552
40687
  Object.defineProperty(QuestionImageModel.prototype, "renderedHeight", {
40553
40688
  get: function () {
40554
- return this.imageHeight ? this.getRenderedSize(this.imageHeight) : undefined;
40689
+ return this.imageHeight ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__["getRenderedSize"])(this.imageHeight) : undefined;
40555
40690
  },
40556
40691
  enumerable: false,
40557
40692
  configurable: true
@@ -40575,9 +40710,16 @@ var QuestionImageModel = /** @class */ (function (_super) {
40575
40710
  enumerable: false,
40576
40711
  configurable: true
40577
40712
  });
40713
+ Object.defineProperty(QuestionImageModel.prototype, "renderedStyleWidth", {
40714
+ get: function () {
40715
+ return this.imageWidth ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__["getRenderedStyleSize"])(this.imageWidth) : undefined;
40716
+ },
40717
+ enumerable: false,
40718
+ configurable: true
40719
+ });
40578
40720
  Object.defineProperty(QuestionImageModel.prototype, "renderedWidth", {
40579
40721
  get: function () {
40580
- return this.imageWidth ? this.getRenderedSize(this.imageWidth) : undefined;
40722
+ return this.imageWidth ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_4__["getRenderedSize"])(this.imageWidth) : undefined;
40581
40723
  },
40582
40724
  enumerable: false,
40583
40725
  configurable: true
@@ -41054,8 +41196,8 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
41054
41196
  });
41055
41197
  Object.defineProperty(QuestionImagePickerModel.prototype, "renderedImageHeight", {
41056
41198
  get: function () {
41057
- var height = this.isResponsive ? this.responsiveImageHeight : this.imageHeight;
41058
- return (height ? height : 150) + "px";
41199
+ var height = this.isResponsive ? Math.floor(this.responsiveImageHeight) : this.imageHeight;
41200
+ return (height ? height : 150);
41059
41201
  },
41060
41202
  enumerable: false,
41061
41203
  configurable: true
@@ -41081,8 +41223,8 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
41081
41223
  });
41082
41224
  Object.defineProperty(QuestionImagePickerModel.prototype, "renderedImageWidth", {
41083
41225
  get: function () {
41084
- var width = this.isResponsive ? this.responsiveImageWidth : this.imageWidth;
41085
- return (width ? width : 200) + "px";
41226
+ var width = this.isResponsive ? Math.floor(this.responsiveImageWidth) : this.imageWidth;
41227
+ return (width ? width : 200);
41086
41228
  },
41087
41229
  enumerable: false,
41088
41230
  configurable: true
@@ -41233,11 +41375,21 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
41233
41375
  }
41234
41376
  return false;
41235
41377
  };
41378
+ QuestionImagePickerModel.prototype.triggerResponsiveness = function (hard) {
41379
+ if (hard === void 0) { hard = true; }
41380
+ if (hard && this.reCalcGapBetweenItemsCallback) {
41381
+ this.reCalcGapBetweenItemsCallback();
41382
+ }
41383
+ _super.prototype.triggerResponsiveness.call(this, hard);
41384
+ };
41236
41385
  QuestionImagePickerModel.prototype.afterRender = function (el) {
41386
+ var _this = this;
41237
41387
  _super.prototype.afterRender.call(this, el);
41238
- var variables = this.survey.getCss().variables;
41239
- if (!!variables) {
41240
- this.gapBetweenItems = Number.parseInt(window.getComputedStyle(el).getPropertyValue(variables.imagepickerGapBetweenItems)) || 0;
41388
+ if (el && el.querySelector(this.getObservedElementSelector())) {
41389
+ this.reCalcGapBetweenItemsCallback = function () {
41390
+ _this.gapBetweenItems = Math.ceil(Number.parseFloat(window.getComputedStyle(el.querySelector(_this.getObservedElementSelector())).gap)) || 16;
41391
+ };
41392
+ this.reCalcGapBetweenItemsCallback();
41241
41393
  }
41242
41394
  };
41243
41395
  __decorate([
@@ -44170,6 +44322,12 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
44170
44322
  }
44171
44323
  }
44172
44324
  };
44325
+ QuestionMatrixDropdownModelBase.prototype.collectNestedQuestionsCore = function (questions, visibleOnly) {
44326
+ var rows = this.visibleRows;
44327
+ rows.forEach(function (row) {
44328
+ row.questions.forEach(function (q) { return q.collectNestedQuestions(questions, visibleOnly); });
44329
+ });
44330
+ };
44173
44331
  QuestionMatrixDropdownModelBase.prototype.getConditionObjectRowName = function (index) {
44174
44332
  return "";
44175
44333
  };
@@ -46830,6 +46988,11 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46830
46988
  this.resetRenderedTable();
46831
46989
  }
46832
46990
  };
46991
+ QuestionMatrixDynamicModel.prototype.initDataUI = function () {
46992
+ if (!this.generatedVisibleRows) {
46993
+ this.visibleRows;
46994
+ }
46995
+ };
46833
46996
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "rowCount", {
46834
46997
  /**
46835
46998
  * The number of rows in the matrix.
@@ -48231,6 +48394,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
48231
48394
  });
48232
48395
  }
48233
48396
  };
48397
+ QuestionMultipleTextModel.prototype.collectNestedQuestionsCore = function (questions, visibleOnly) {
48398
+ this.items.forEach(function (item) { return item.editor.collectNestedQuestions(questions, visibleOnly); });
48399
+ };
48234
48400
  QuestionMultipleTextModel.prototype.getConditionJson = function (operator, path) {
48235
48401
  if (operator === void 0) { operator = null; }
48236
48402
  if (path === void 0) { path = null; }
@@ -50218,6 +50384,14 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50218
50384
  }
50219
50385
  }
50220
50386
  };
50387
+ QuestionPanelDynamicModel.prototype.collectNestedQuestionsCore = function (questions, visibleOnly) {
50388
+ var panels = visibleOnly ? this.visiblePanels : this.panels;
50389
+ if (!Array.isArray(panels))
50390
+ return;
50391
+ panels.forEach(function (panel) {
50392
+ panel.questions.forEach(function (q) { return q.collectNestedQuestions(questions, visibleOnly); });
50393
+ });
50394
+ };
50221
50395
  QuestionPanelDynamicModel.prototype.getConditionJson = function (operator, path) {
50222
50396
  if (operator === void 0) { operator = null; }
50223
50397
  if (path === void 0) { path = null; }
@@ -50627,6 +50801,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50627
50801
  var q = questions[i];
50628
50802
  q.updateValueFromSurvey(values[q.getValueName()]);
50629
50803
  q.updateCommentFromSurvey(values[q.getValueName() + _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].commentSuffix]);
50804
+ q.initDataUI();
50630
50805
  }
50631
50806
  };
50632
50807
  QuestionPanelDynamicModel.prototype.panelSurveyValueChanged = function (panel) {
@@ -55695,7 +55870,7 @@ var ListItem = /** @class */ (function (_super) {
55695
55870
  if (!this.item.component) {
55696
55871
  var text = this.renderLocString(this.item.locTitle, undefined, "locString");
55697
55872
  if (this.item.iconName) {
55698
- var icon = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { key: 1, className: this.model.cssClasses.itemIcon, iconName: this.item.iconName, size: 24, "aria-label": this.item.title });
55873
+ var icon = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { key: 1, className: this.model.cssClasses.itemIcon, iconName: this.item.iconName, size: this.item.iconSize, "aria-label": this.item.title });
55699
55874
  content.push(icon);
55700
55875
  content.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { key: 2 }, text));
55701
55876
  }
@@ -56741,17 +56916,18 @@ function showModal(componentName, data, onApply, onCancel, cssClass, title, disp
56741
56916
  var options = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createDialogOptions"])(componentName, data, onApply, onCancel, undefined, undefined, cssClass, title, displayMode);
56742
56917
  return showDialog(options);
56743
56918
  }
56744
- function showDialog(dialogOptions, container) {
56919
+ function showDialog(dialogOptions, rootElement) {
56745
56920
  dialogOptions.onHide = function () {
56746
56921
  react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
56747
56922
  popupViewModel.dispose();
56748
56923
  };
56749
- var popupViewModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupModalViewModel"])(dialogOptions, container);
56924
+ var popupViewModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupModalViewModel"])(dialogOptions, rootElement);
56750
56925
  react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.render(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: popupViewModel }), popupViewModel.container);
56751
56926
  popupViewModel.model.isVisible = true;
56752
56927
  return popupViewModel;
56753
56928
  }
56754
56929
  survey_core__WEBPACK_IMPORTED_MODULE_2__["settings"].showModal = showModal;
56930
+ survey_core__WEBPACK_IMPORTED_MODULE_2__["settings"].showDialog = showDialog;
56755
56931
 
56756
56932
 
56757
56933
  /***/ }),
@@ -57115,7 +57291,7 @@ var LogoImage = /** @class */ (function (_super) {
57115
57291
  LogoImage.prototype.render = function () {
57116
57292
  var content = [];
57117
57293
  content.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { key: "logo-image", className: this.survey.logoClassNames },
57118
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("img", { className: this.survey.css.logoImage, src: this.survey.locLogo.renderedHtml, alt: this.survey.locTitle.renderedHtml, width: this.survey.logoWidth ? this.survey.logoWidth : undefined, height: this.survey.logoHeight ? this.survey.logoHeight : undefined, style: { objectFit: this.survey.logoFit } })));
57294
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("img", { className: this.survey.css.logoImage, src: this.survey.locLogo.renderedHtml, alt: this.survey.locTitle.renderedHtml, width: this.survey.renderedLogoWidth, height: this.survey.renderedLogoHeight, style: { objectFit: this.survey.logoFit, width: this.survey.renderedStyleLogoWidth, height: this.survey.renderedStyleLogoHeight } })));
57119
57295
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, content);
57120
57296
  };
57121
57297
  return LogoImage;
@@ -57167,6 +57343,7 @@ var SurveyHeader = /** @class */ (function (_super) {
57167
57343
  function SurveyHeader(props) {
57168
57344
  var _this = _super.call(this, props) || this;
57169
57345
  _this.state = { changed: 0 };
57346
+ _this.rootRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
57170
57347
  return _this;
57171
57348
  }
57172
57349
  Object.defineProperty(SurveyHeader.prototype, "survey", {
@@ -57185,6 +57362,7 @@ var SurveyHeader = /** @class */ (function (_super) {
57185
57362
  });
57186
57363
  SurveyHeader.prototype.componentDidMount = function () {
57187
57364
  var self = this;
57365
+ this.survey.afterRenderHeader(this.rootRef.current);
57188
57366
  this.survey.locLogo.onChanged = function () {
57189
57367
  self.setState({ changed: self.state.changed + 1 });
57190
57368
  };
@@ -57212,7 +57390,7 @@ var SurveyHeader = /** @class */ (function (_super) {
57212
57390
  SurveyHeader.prototype.render = function () {
57213
57391
  if (!this.survey.renderedHasHeader)
57214
57392
  return null;
57215
- return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.css.header },
57393
+ return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.css.header, ref: this.rootRef },
57216
57394
  this.renderLogoImage(this.survey.isLogoBefore),
57217
57395
  this.renderTitle(),
57218
57396
  this.renderLogoImage(this.survey.isLogoAfter),
@@ -58282,7 +58460,7 @@ var SurveyQuestionImage = /** @class */ (function (_super) {
58282
58460
  SurveyQuestionImage.prototype.renderElement = function () {
58283
58461
  var _this = this;
58284
58462
  var cssClasses = this.question.getImageCss();
58285
- var style = { objectFit: this.question.imageFit };
58463
+ var style = { objectFit: this.question.imageFit, width: this.question.renderedStyleWidth, height: this.question.renderedStyleHeight };
58286
58464
  if (!this.question.imageLink || this.question.contentNotLoaded) {
58287
58465
  style["display"] = "none";
58288
58466
  }
@@ -58697,7 +58875,7 @@ var SurveyPanelBase = /** @class */ (function (_super) {
58697
58875
  if (!!prevProps.page &&
58698
58876
  !!this.survey &&
58699
58877
  !!this.survey.currentPage &&
58700
- prevProps.page.name === this.survey.currentPage.name)
58878
+ prevProps.page.id === this.survey.currentPage.id)
58701
58879
  return;
58702
58880
  this.doAfterRender();
58703
58881
  };
@@ -58943,6 +59121,7 @@ __webpack_require__.r(__webpack_exports__);
58943
59121
  /* harmony import */ var _reactSurvey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactSurvey */ "./src/react/reactSurvey.tsx");
58944
59122
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
58945
59123
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
59124
+ /* harmony import */ var _components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
58946
59125
  var __extends = (undefined && undefined.__extends) || (function () {
58947
59126
  var extendStatics = function (d, b) {
58948
59127
  extendStatics = Object.setPrototypeOf ||
@@ -58962,6 +59141,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
58962
59141
 
58963
59142
 
58964
59143
 
59144
+
58965
59145
  var PopupSurvey = /** @class */ (function (_super) {
58966
59146
  __extends(PopupSurvey, _super);
58967
59147
  function PopupSurvey(props) {
@@ -58995,6 +59175,7 @@ var PopupSurvey = /** @class */ (function (_super) {
58995
59175
  body));
58996
59176
  };
58997
59177
  PopupSurvey.prototype.renderWindowHeader = function () {
59178
+ var _this = this;
58998
59179
  var styleA = { width: "100%", cursor: "pointer" };
58999
59180
  var styleTitle = { paddingRight: "10px" };
59000
59181
  var glyphClassName = this.popup.cssButton;
@@ -59004,8 +59185,10 @@ var PopupSurvey = /** @class */ (function (_super) {
59004
59185
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { onClick: this.handleOnExpanded, style: styleA },
59005
59186
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.popup.cssHeaderTitle, style: styleTitle }, title),
59006
59187
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: glyphClassName, "aria-hidden": "true" })),
59007
- this.popup.isExpanded ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { onClick: this.handleOnExpanded, style: { float: "right", cursor: "pointer" } },
59008
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.popup.cssHeaderTitle, style: styleTitle }, "X"))) : null));
59188
+ this.popup.allowClose ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.popup.cssHeaderButton, onClick: function () { _this.popup.hide(); }, style: { transform: "rotate(45deg)", float: "right", cursor: "pointer", width: "24px", height: "24px" } },
59189
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { iconName: "icon-expanddetail", size: 16 }))) : null,
59190
+ this.popup.isExpanded ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: this.popup.cssHeaderButton, onClick: this.handleOnExpanded, style: { float: "right", cursor: "pointer", width: "24px", height: "24px" } },
59191
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_4__["SvgIcon"], { iconName: "icon-collapsedetail", size: 16 }))) : null));
59009
59192
  };
59010
59193
  PopupSurvey.prototype.renderBody = function () {
59011
59194
  var _this = this;
@@ -59019,6 +59202,7 @@ var PopupSurvey = /** @class */ (function (_super) {
59019
59202
  if (newProps.closeOnCompleteTimeout) {
59020
59203
  this.popup.closeOnCompleteTimeout = newProps.closeOnCompleteTimeout;
59021
59204
  }
59205
+ this.popup.allowClose = newProps.allowClose;
59022
59206
  this.popup.isShowing = true;
59023
59207
  if (!this.popup.isExpanded && (newProps.expanded || newProps.isExpanded))
59024
59208
  this.popup.expand();
@@ -64607,10 +64791,17 @@ var settings = {
64607
64791
  *
64608
64792
  * - `caseSensitive`: `Boolean`\
64609
64793
  * Specifies whether to differentiate between capital and lower-case letters. Default value: `false`.
64794
+ *
64795
+ * - `normalizedTextCallback`: `(str: string, reason: string) => string`
64796
+ * Use the following function { str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); }
64797
+ * If you want to 'Brouillé' to be equal to 'Brouille'.
64798
+ * Use the following function { return reason === "filter" ? str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""): ""; }
64799
+ * If you want to use this functionality during filtering only, for example in list.
64610
64800
  */
64611
64801
  comparator: {
64612
64802
  trimStrings: true,
64613
- caseSensitive: false
64803
+ caseSensitive: false,
64804
+ normalizeTextCallback: function (str, reason) { return str; }
64614
64805
  },
64615
64806
  expressionDisableConversionChar: "#",
64616
64807
  get commentPrefix() { return settings.commentSuffix; },
@@ -64715,6 +64906,7 @@ var settings = {
64715
64906
  */
64716
64907
  maxDate: "",
64717
64908
  showModal: undefined,
64909
+ showDialog: undefined,
64718
64910
  supportCreatorV2: false,
64719
64911
  showDefaultItemsInCreatorV2: true,
64720
64912
  /**
@@ -66668,6 +66860,7 @@ var SurveyModel = /** @class */ (function (_super) {
66668
66860
  var _this = _super.call(this) || this;
66669
66861
  _this.valuesHash = {};
66670
66862
  _this.variablesHash = {};
66863
+ _this.onThemeApplied = new _base__WEBPACK_IMPORTED_MODULE_2__["EventBase"]();
66671
66864
  //#region Event declarations
66672
66865
  /**
66673
66866
  * An event that is raised after a [trigger](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#triggers) is executed.
@@ -66957,34 +67150,34 @@ var SurveyModel = /** @class */ (function (_super) {
66957
67150
  */
66958
67151
  _this.onGetResult = _this.addEvent();
66959
67152
  /**
66960
- * An event that is raised on uploading the file in QuestionFile when `storeDataAsText` is set to `false`. Use this event to change the uploaded file name or to prevent a particular file from being uploaded.
67153
+ * An event that is raised when a File Upload question starts to upload a file. Applies only if [`storeDataAsText`](https://surveyjs.io/form-library/documentation/api-reference/file-model#storeDataAsText) is `false`. Use this event to upload files to your server.
66961
67154
  *
66962
67155
  * For information on event handler parameters, refer to descriptions within the interface.
66963
67156
  *
66964
67157
  * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
66965
67158
  * @see uploadFiles
66966
- * @see QuestionFileModel.storeDataAsText
66967
67159
  * @see onDownloadFile
66968
67160
  * @see onClearFiles
66969
67161
  */
66970
67162
  _this.onUploadFiles = _this.addEvent();
66971
67163
  /**
66972
- * An event that is raised on downloading a file in QuestionFile. Use this event to pass the file to a preview.
67164
+ * An event that is raised when a File Upload question starts to download a file. Use this event to implement file preview when your server stores only file names.
66973
67165
  *
66974
67166
  * For information on event handler parameters, refer to descriptions within the interface.
66975
67167
  *
66976
- * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
67168
+ * [View Demo](https://surveyjs.io/form-library/examples/store-file-names-in-survey-results/ (linkStyle))
66977
67169
  * @see downloadFile
66978
67170
  * @see onClearFiles
66979
67171
  * @see onUploadFiles
66980
67172
  */
66981
67173
  _this.onDownloadFile = _this.addEvent();
66982
67174
  /**
66983
- * This event is fired on clearing the value in a QuestionFile. Use this event to remove files stored on your server.
67175
+ * An event that is raised when users clear files in a [File Upload](https://surveyjs.io/form-library/documentation/api-reference/file-model) question. Use this event to delete files from your server.
66984
67176
  *
66985
67177
  * For information on event handler parameters, refer to descriptions within the interface.
66986
67178
  *
66987
67179
  * [View Demo](https://surveyjs.io/form-library/examples/file-delayed-upload/ (linkStyle))
67180
+ * @see clearFiles
66988
67181
  * @see onDownloadFile
66989
67182
  * @see onUploadFiles
66990
67183
  */
@@ -67337,8 +67530,8 @@ var SurveyModel = /** @class */ (function (_super) {
67337
67530
  }
67338
67531
  var htmlCallBack = function (str) { return "<h3>" + str + "</h3>"; };
67339
67532
  _this.createHtmlLocString("completedHtml", "completingSurvey", htmlCallBack);
67340
- _this.createHtmlLocString("completedBeforeHtml", "completingSurveyBefore", htmlCallBack);
67341
- _this.createHtmlLocString("loadingHtml", "loadingSurvey", htmlCallBack);
67533
+ _this.createHtmlLocString("completedBeforeHtml", "completingSurveyBefore", htmlCallBack, "completed-before");
67534
+ _this.createHtmlLocString("loadingHtml", "loadingSurvey", htmlCallBack, "loading");
67342
67535
  _this.createLocalizableString("logo", _this, false);
67343
67536
  _this.createLocalizableString("backgroundImage", _this, false);
67344
67537
  _this.createLocalizableString("startSurveyText", _this, false, true);
@@ -67551,8 +67744,13 @@ var SurveyModel = /** @class */ (function (_super) {
67551
67744
  }
67552
67745
  };
67553
67746
  };
67554
- SurveyModel.prototype.createHtmlLocString = function (name, locName, func) {
67555
- this.createLocalizableString(name, this, false, locName).onGetLocalizationTextCallback = func;
67747
+ SurveyModel.prototype.createHtmlLocString = function (name, locName, func, reason) {
67748
+ var _this = this;
67749
+ var res = this.createLocalizableString(name, this, false, locName);
67750
+ res.onGetLocalizationTextCallback = func;
67751
+ if (reason) {
67752
+ res.onGetTextCallback = function (str) { return _this.processHtml(str, reason); };
67753
+ }
67556
67754
  };
67557
67755
  SurveyModel.prototype.getType = function () {
67558
67756
  return "survey";
@@ -67862,7 +68060,7 @@ var SurveyModel = /** @class */ (function (_super) {
67862
68060
  /**
67863
68061
  * Specifies whether to save survey results when respondents switch between pages. Handle the [`onPartialSend`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onPartialSend) event to implement the save operation.
67864
68062
  *
67865
- * [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete (linkStyle)).
68063
+ * [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete (linkStyle))
67866
68064
  */
67867
68065
  get: function () {
67868
68066
  return this.getPropertyValue("sendResultOnPageNext");
@@ -67924,9 +68122,14 @@ var SurveyModel = /** @class */ (function (_super) {
67924
68122
  });
67925
68123
  Object.defineProperty(SurveyModel.prototype, "showNavigationButtons", {
67926
68124
  /**
67927
- * Gets or sets the navigation buttons position.
67928
- * Possible values: 'bottom' (default), 'top', 'both' and 'none'. Set it to 'none' to hide 'Prev', 'Next' and 'Complete' buttons.
67929
- * It makes sense if you are going to create a custom navigation, have only a single page, or the `goNextPageAutomatic` property is set to `true`.
68125
+ * Gets or sets the position of the Start, Next, Previous, and Complete navigation buttons and controls their visibility.
68126
+ *
68127
+ * Possible values:
68128
+ *
68129
+ * - `"bottom"` (default) - Displays the navigation buttons below survey content.
68130
+ * - `"top"` - Displays the navigation buttons above survey content.
68131
+ * - `"both"` - Displays the navigation buttons above and below survey content.
68132
+ * - `"none"` - Hides the navigation buttons. This setting may be useful if you [implement custom external navigation](https://surveyjs.io/form-library/examples/external-form-navigation-system/).
67930
68133
  * @see goNextPageAutomatic
67931
68134
  * @see showPrevButton
67932
68135
  */
@@ -67947,7 +68150,7 @@ var SurveyModel = /** @class */ (function (_super) {
67947
68150
  });
67948
68151
  Object.defineProperty(SurveyModel.prototype, "showPrevButton", {
67949
68152
  /**
67950
- * Gets or sets whether the Survey displays "Prev" button in its pages. Set it to `false` to prevent end-users from going back to their answers.
68153
+ * Specifies whether to display the Previous button. Set this property to `false` if respondents should not move backward along the survey.
67951
68154
  * @see showNavigationButtons
67952
68155
  */
67953
68156
  get: function () {
@@ -68000,10 +68203,10 @@ var SurveyModel = /** @class */ (function (_super) {
68000
68203
  });
68001
68204
  Object.defineProperty(SurveyModel.prototype, "showTitle", {
68002
68205
  /**
68003
- * Gets or sets whether the Survey displays survey title in its pages. Set it to `false` to hide a survey title.
68004
- * @see title
68206
+ * Specifies whether to display the [survey title](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title).
68005
68207
  *
68006
- * [View Demo](https://surveyjs.io/form-library/examples/survey-options/ (linkStyle))
68208
+ * [View Demo](https://surveyjs.io/form-library/examples/brand-your-survey-header/ (linkStyle))
68209
+ * @see title
68007
68210
  */
68008
68211
  get: function () {
68009
68212
  return this.getPropertyValue("showTitle");
@@ -68016,10 +68219,7 @@ var SurveyModel = /** @class */ (function (_super) {
68016
68219
  });
68017
68220
  Object.defineProperty(SurveyModel.prototype, "showPageTitles", {
68018
68221
  /**
68019
- * Gets or sets whether the Survey displays page titles. Set it to `false` to hide page titles.
68020
- * @see PageModel.title
68021
- *
68022
- * [View Demo](https://surveyjs.io/form-library/examples/survey-options/ (linkStyle))
68222
+ * Specifies whether to display [page titles](https://surveyjs.io/form-library/documentation/api-reference/page-model#title).
68023
68223
  */
68024
68224
  get: function () {
68025
68225
  return this.getPropertyValue("showPageTitles");
@@ -68032,12 +68232,9 @@ var SurveyModel = /** @class */ (function (_super) {
68032
68232
  });
68033
68233
  Object.defineProperty(SurveyModel.prototype, "showCompletedPage", {
68034
68234
  /**
68035
- * On finishing the survey the complete page is shown. Set the property to `false`, to hide the complete page.
68036
- * @see data
68235
+ * Specifies whether to show the [complete page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#complete-page).
68037
68236
  * @see onComplete
68038
68237
  * @see navigateToUrl
68039
- *
68040
- * [View Demo](https://surveyjs.io/form-library/examples/survey-options/ (linkStyle))
68041
68238
  */
68042
68239
  get: function () {
68043
68240
  return this.getPropertyValue("showCompletedPage");
@@ -68460,16 +68657,21 @@ var SurveyModel = /** @class */ (function (_super) {
68460
68657
  _super.prototype.locStrsChanged.call(this);
68461
68658
  if (!this.currentPage)
68462
68659
  return;
68463
- if (!this.isShowStartingPage) {
68464
- this.updateProgressText();
68660
+ if (this.isDesignMode) {
68661
+ this.pages.forEach(function (page) { return page.locStrsChanged(); });
68465
68662
  }
68466
- var page = this.activePage;
68467
- if (!!page) {
68468
- page.locStrsChanged();
68663
+ else {
68664
+ var page = this.activePage;
68665
+ if (!!page) {
68666
+ page.locStrsChanged();
68667
+ }
68668
+ var visPages = this.visiblePages;
68669
+ for (var i = 0; i < visPages.length; i++) {
68670
+ visPages[i].navigationLocStrChanged();
68671
+ }
68469
68672
  }
68470
- var visPages = this.visiblePages;
68471
- for (var i = 0; i < visPages.length; i++) {
68472
- visPages[i].navigationLocStrChanged();
68673
+ if (!this.isShowStartingPage) {
68674
+ this.updateProgressText();
68473
68675
  }
68474
68676
  this.navigationBar.locStrsChanged();
68475
68677
  };
@@ -68532,7 +68734,8 @@ var SurveyModel = /** @class */ (function (_super) {
68532
68734
  };
68533
68735
  Object.defineProperty(SurveyModel.prototype, "emptySurveyText", {
68534
68736
  /**
68535
- * Returns the text displayed when a survey has no visible pages and questions.
68737
+ * Returns a message that is displayed when a survey does not contain visible pages or questions.
68738
+ * @see [Localization & Globalization](https://surveyjs.io/form-library/documentation/survey-localization)
68536
68739
  */
68537
68740
  get: function () {
68538
68741
  return this.getLocalizationString("emptySurvey");
@@ -68578,8 +68781,7 @@ var SurveyModel = /** @class */ (function (_super) {
68578
68781
  * @see logoFit
68579
68782
  */
68580
68783
  get: function () {
68581
- var width = this.getPropertyValue("logoWidth");
68582
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["getSize"])(width);
68784
+ return this.getPropertyValue("logoWidth");
68583
68785
  },
68584
68786
  set: function (value) {
68585
68787
  this.setPropertyValue("logoWidth", value);
@@ -68587,6 +68789,20 @@ var SurveyModel = /** @class */ (function (_super) {
68587
68789
  enumerable: false,
68588
68790
  configurable: true
68589
68791
  });
68792
+ Object.defineProperty(SurveyModel.prototype, "renderedLogoWidth", {
68793
+ get: function () {
68794
+ return this.logoWidth ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["getRenderedSize"])(this.logoWidth) : undefined;
68795
+ },
68796
+ enumerable: false,
68797
+ configurable: true
68798
+ });
68799
+ Object.defineProperty(SurveyModel.prototype, "renderedStyleLogoWidth", {
68800
+ get: function () {
68801
+ return this.logoWidth ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["getRenderedStyleSize"])(this.logoWidth) : undefined;
68802
+ },
68803
+ enumerable: false,
68804
+ configurable: true
68805
+ });
68590
68806
  Object.defineProperty(SurveyModel.prototype, "logoHeight", {
68591
68807
  /**
68592
68808
  * A logo height in CSS-accepted values.
@@ -68600,8 +68816,7 @@ var SurveyModel = /** @class */ (function (_super) {
68600
68816
  * @see logoFit
68601
68817
  */
68602
68818
  get: function () {
68603
- var height = this.getPropertyValue("logoHeight");
68604
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["getSize"])(height);
68819
+ return this.getPropertyValue("logoHeight");
68605
68820
  },
68606
68821
  set: function (value) {
68607
68822
  this.setPropertyValue("logoHeight", value);
@@ -68609,6 +68824,20 @@ var SurveyModel = /** @class */ (function (_super) {
68609
68824
  enumerable: false,
68610
68825
  configurable: true
68611
68826
  });
68827
+ Object.defineProperty(SurveyModel.prototype, "renderedLogoHeight", {
68828
+ get: function () {
68829
+ return this.logoHeight ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["getRenderedSize"])(this.logoHeight) : undefined;
68830
+ },
68831
+ enumerable: false,
68832
+ configurable: true
68833
+ });
68834
+ Object.defineProperty(SurveyModel.prototype, "renderedStyleLogoHeight", {
68835
+ get: function () {
68836
+ return this.logoHeight ? Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["getRenderedStyleSize"])(this.logoHeight) : undefined;
68837
+ },
68838
+ enumerable: false,
68839
+ configurable: true
68840
+ });
68612
68841
  Object.defineProperty(SurveyModel.prototype, "logoPosition", {
68613
68842
  /**
68614
68843
  * A logo position relative to the [survey title](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title).
@@ -69014,10 +69243,9 @@ var SurveyModel = /** @class */ (function (_super) {
69014
69243
  };
69015
69244
  Object.defineProperty(SurveyModel.prototype, "startSurveyText", {
69016
69245
  /**
69017
- * Gets or sets the 'Start' button caption.
69018
- * The 'Start' button is shown on the started page. Set the `firstPageIsStarted` property to `true`, to display the started page.
69246
+ * Gets or sets a caption for the Start button.
69019
69247
  * @see firstPageIsStarted
69020
- * @see locale
69248
+ * @see [Localization & Globalization](https://surveyjs.io/form-library/documentation/survey-localization)
69021
69249
  */
69022
69250
  get: function () {
69023
69251
  return this.getLocalizableStringText("startSurveyText");
@@ -69037,8 +69265,8 @@ var SurveyModel = /** @class */ (function (_super) {
69037
69265
  });
69038
69266
  Object.defineProperty(SurveyModel.prototype, "pagePrevText", {
69039
69267
  /**
69040
- * Gets or sets the 'Prev' button caption.
69041
- * @see locale
69268
+ * Gets or sets a caption for the Previous button.
69269
+ * @see [Localization & Globalization](https://surveyjs.io/form-library/documentation/survey-localization)
69042
69270
  */
69043
69271
  get: function () {
69044
69272
  return this.getLocalizableStringText("pagePrevText");
@@ -69058,8 +69286,8 @@ var SurveyModel = /** @class */ (function (_super) {
69058
69286
  });
69059
69287
  Object.defineProperty(SurveyModel.prototype, "pageNextText", {
69060
69288
  /**
69061
- * Gets or sets the 'Next' button caption.
69062
- * @see locale
69289
+ * Gets or sets a caption for the Next button.
69290
+ * @see [Localization & Globalization](https://surveyjs.io/form-library/documentation/survey-localization)
69063
69291
  */
69064
69292
  get: function () {
69065
69293
  return this.getLocalizableStringText("pageNextText");
@@ -69079,8 +69307,8 @@ var SurveyModel = /** @class */ (function (_super) {
69079
69307
  });
69080
69308
  Object.defineProperty(SurveyModel.prototype, "completeText", {
69081
69309
  /**
69082
- * Gets or sets the 'Complete' button caption.
69083
- * @see locale
69310
+ * Gets or sets a caption for the Complete button.
69311
+ * @see [Localization & Globalization](https://surveyjs.io/form-library/documentation/survey-localization)
69084
69312
  */
69085
69313
  get: function () {
69086
69314
  return this.getLocalizableStringText("completeText");
@@ -69153,13 +69381,9 @@ var SurveyModel = /** @class */ (function (_super) {
69153
69381
  };
69154
69382
  Object.defineProperty(SurveyModel.prototype, "questionTitlePattern", {
69155
69383
  /**
69156
- * Set the pattern for question title. Default is "numTitleRequire", 1. What is your name? *,
69157
- * You can set it to numRequireTitle: 1. * What is your name?
69158
- * You can set it to requireNumTitle: * 1. What is your name?
69159
- * You can set it to numTitle (remove require symbol completely): 1. What is your name?
69160
- * @see QuestionModel.title
69384
+ * Specifies a pattern for question titles.
69161
69385
  *
69162
- * [View Demo](https://surveyjs.io/form-library/examples/survey-processtext/ (linkStyle))
69386
+ * Refer to the following help topic for more information: [Title Pattern](https://surveyjs.io/form-library/documentation/design-survey/configure-question-titles#title-pattern).
69163
69387
  */
69164
69388
  get: function () {
69165
69389
  return this.getPropertyValue("questionTitlePattern", "numTitleRequire");
@@ -69956,7 +70180,7 @@ var SurveyModel = /** @class */ (function (_super) {
69956
70180
  if (newPage == this.currentPage)
69957
70181
  return;
69958
70182
  var oldValue = this.currentPage;
69959
- if (!this.currentPageChanging(newPage, oldValue))
70183
+ if (!this.isShowingPreview && !this.currentPageChanging(newPage, oldValue))
69960
70184
  return;
69961
70185
  this.setPropertyValue("currentPage", newPage);
69962
70186
  if (!!newPage) {
@@ -69965,7 +70189,9 @@ var SurveyModel = /** @class */ (function (_super) {
69965
70189
  newPage.setWasShown(true);
69966
70190
  }
69967
70191
  this.locStrsChanged();
69968
- this.currentPageChanged(newPage, oldValue);
70192
+ if (!this.isShowingPreview) {
70193
+ this.currentPageChanged(newPage, oldValue);
70194
+ }
69969
70195
  },
69970
70196
  enumerable: false,
69971
70197
  configurable: true
@@ -70003,7 +70229,7 @@ var SurveyModel = /** @class */ (function (_super) {
70003
70229
  });
70004
70230
  Object.defineProperty(SurveyModel.prototype, "isShowStartingPage", {
70005
70231
  /**
70006
- * The started page is showing right now. survey state equals to "starting"
70232
+ * A Boolean value that indicates whether the [start page](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#start-page) is currently displayed.
70007
70233
  */
70008
70234
  get: function () {
70009
70235
  return this.state === "starting";
@@ -70328,7 +70554,8 @@ var SurveyModel = /** @class */ (function (_super) {
70328
70554
  isNextPage: diff === 1,
70329
70555
  isPrevPage: diff === -1,
70330
70556
  isGoingForward: diff > 0,
70331
- isGoingBackward: diff < 0
70557
+ isGoingBackward: diff < 0,
70558
+ isAfterPreview: this.changeCurrentPageFromPreview === true
70332
70559
  };
70333
70560
  };
70334
70561
  /**
@@ -70353,7 +70580,7 @@ var SurveyModel = /** @class */ (function (_super) {
70353
70580
  : 100;
70354
70581
  }
70355
70582
  var visPages = this.visiblePages;
70356
- var index = visPages.indexOf(this.currentPage) + 1;
70583
+ var index = visPages.indexOf(this.currentPage);
70357
70584
  return Math.ceil((index * 100) / visPages.length);
70358
70585
  };
70359
70586
  Object.defineProperty(SurveyModel.prototype, "progressValue", {
@@ -70523,11 +70750,9 @@ var SurveyModel = /** @class */ (function (_super) {
70523
70750
  });
70524
70751
  Object.defineProperty(SurveyModel.prototype, "hasCookie", {
70525
70752
  /**
70526
- * Returns `true`, if a user has already completed the survey in this browser and there is a cookie about it. Survey goes to `completedbefore` state if the function returns `true`.
70527
- * @see cookieName
70753
+ * Indicates whether the browser has a cookie with a specified [`cookieName`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#cookieName). If this property's value is `true`, the respondent has passed the survey previously.
70528
70754
  * @see setCookie
70529
70755
  * @see deleteCookie
70530
- * @see state
70531
70756
  */
70532
70757
  get: function () {
70533
70758
  if (!this.cookieName || typeof document === "undefined")
@@ -70539,8 +70764,7 @@ var SurveyModel = /** @class */ (function (_super) {
70539
70764
  configurable: true
70540
70765
  });
70541
70766
  /**
70542
- * Set the cookie with `cookieName` in user's browser. It is done automatically on survey complete if the `cookieName` property value is not empty.
70543
- * @see cookieName
70767
+ * Sets a cookie with a specified [`cookieName`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#cookieName) in the browser. If the `cookieName` property value is defined, this method is automatically called on survey completion.
70544
70768
  * @see hasCookie
70545
70769
  * @see deleteCookie
70546
70770
  */
@@ -70551,8 +70775,7 @@ var SurveyModel = /** @class */ (function (_super) {
70551
70775
  this.cookieName + "=true; expires=Fri, 31 Dec 9999 0:0:0 GMT";
70552
70776
  };
70553
70777
  /**
70554
- * Deletes the cookie with `cookieName` from the browser.
70555
- * @see cookieName
70778
+ * Deletes a cookie with a specified [`cookieName`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#cookieName) from the browser.
70556
70779
  * @see hasCookie
70557
70780
  * @see setCookie
70558
70781
  */
@@ -70938,23 +71161,18 @@ var SurveyModel = /** @class */ (function (_super) {
70938
71161
  this.isShowingPreview = options.allowShowPreview && options.allow;
70939
71162
  };
70940
71163
  /**
70941
- * Cancels a [preview of given answers](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page) and switches the survey to the page specified by the `curPage` parameter.
70942
- * @param curPage A new current page. If you do not specify this parameter, the survey displays the last page.
71164
+ * Cancels a [preview of given answers](https://surveyjs.io/form-library/documentation/design-survey/create-a-multi-page-survey#preview-page) and switches the survey to the page specified by the `currentPage` parameter.
71165
+ * @param currentPage A new current page. If you do not specify this parameter, the survey displays the last page.
70943
71166
  * @see showPreview
70944
71167
  * @see showPreviewBeforeComplete
70945
71168
  * @see state
70946
71169
  */
70947
- SurveyModel.prototype.cancelPreview = function (curPage) {
70948
- if (curPage === void 0) { curPage = null; }
71170
+ SurveyModel.prototype.cancelPreview = function (currentPage) {
71171
+ if (currentPage === void 0) { currentPage = null; }
70949
71172
  if (!this.isShowingPreview)
70950
71173
  return;
71174
+ this.gotoPageFromPreview = currentPage;
70951
71175
  this.isShowingPreview = false;
70952
- if (_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isValueEmpty(curPage) && this.visiblePageCount > 0) {
70953
- curPage = this.visiblePageCount - 1;
70954
- }
70955
- if (curPage !== null) {
70956
- this.currentPage = curPage;
70957
- }
70958
71176
  };
70959
71177
  SurveyModel.prototype.cancelPreviewByPage = function (panel) {
70960
71178
  this.cancelPreview(panel["originalPage"]);
@@ -71077,7 +71295,21 @@ var SurveyModel = /** @class */ (function (_super) {
71077
71295
  this.runConditions();
71078
71296
  this.updateAllElementsVisibility(this.pages);
71079
71297
  this.updateVisibleIndexes();
71080
- this.currentPageNo = 0;
71298
+ if (this.isShowingPreview) {
71299
+ this.currentPageNo = 0;
71300
+ }
71301
+ else {
71302
+ var curPage = this.gotoPageFromPreview;
71303
+ this.gotoPageFromPreview = null;
71304
+ if (_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isValueEmpty(curPage) && this.visiblePageCount > 0) {
71305
+ curPage = this.visiblePages[this.visiblePageCount - 1];
71306
+ }
71307
+ if (!!curPage) {
71308
+ this.changeCurrentPageFromPreview = true;
71309
+ this.currentPage = curPage;
71310
+ this.changeCurrentPageFromPreview = false;
71311
+ }
71312
+ }
71081
71313
  };
71082
71314
  SurveyModel.prototype.onQuestionsOnPageModeChanged = function (oldValue) {
71083
71315
  if (this.isShowingPreview)
@@ -71573,7 +71805,7 @@ var SurveyModel = /** @class */ (function (_super) {
71573
71805
  * @see cookieName
71574
71806
  */
71575
71807
  get: function () {
71576
- return this.processHtml(this.completedBeforeHtml, "completed-before");
71808
+ return this.locCompletedBeforeHtml.textOrHtml;
71577
71809
  },
71578
71810
  enumerable: false,
71579
71811
  configurable: true
@@ -71583,7 +71815,7 @@ var SurveyModel = /** @class */ (function (_super) {
71583
71815
  * Returns the HTML content, that is shows when a survey loads the survey JSON.
71584
71816
  */
71585
71817
  get: function () {
71586
- return this.processHtml(this.loadingHtml, "loading");
71818
+ return this.locLoadingHtml.textOrHtml;
71587
71819
  },
71588
71820
  enumerable: false,
71589
71821
  configurable: true
@@ -71708,6 +71940,11 @@ var SurveyModel = /** @class */ (function (_super) {
71708
71940
  return true;
71709
71941
  }
71710
71942
  };
71943
+ SurveyModel.prototype.triggerResponsiveness = function (hard) {
71944
+ this.getAllQuestions().forEach(function (question) {
71945
+ question.triggerResponsiveness(hard);
71946
+ });
71947
+ };
71711
71948
  SurveyModel.prototype.destroyResizeObserver = function () {
71712
71949
  if (!!this.resizeObserver) {
71713
71950
  this.resizeObserver.disconnect();
@@ -72023,32 +72260,77 @@ var SurveyModel = /** @class */ (function (_super) {
72023
72260
  };
72024
72261
  /**
72025
72262
  * Uploads a file to server.
72026
- * @param question a file question object
72027
- * @param name a question name
72028
- * @param files files to upload
72029
- * @param uploadingCallback a call back function to get the status on uploading the files
72263
+ *
72264
+ * The following code shows how to call this method:
72265
+ *
72266
+ * ```js
72267
+ * const question = survey.getQuestionByName("myFileQuestion");
72268
+ * survey.uploadFiles(
72269
+ * question,
72270
+ * question.name,
72271
+ * question.value,
72272
+ * (status, data) => {
72273
+ * if (status === "success") {
72274
+ * // Handle success
72275
+ * }
72276
+ * if (status === "error") {
72277
+ * // Handle error
72278
+ * }
72279
+ * }
72280
+ * );
72281
+ * ```
72282
+ * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model).
72283
+ * @param name The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name).
72284
+ * @param files An array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects that represent files to upload.
72285
+ * @param callback A callback function that allows you to get the upload status (`"success"` or `"error"`) and file data.
72286
+ * @see onUploadFiles
72287
+ * @see downloadFile
72030
72288
  */
72031
- SurveyModel.prototype.uploadFiles = function (question, name, files, uploadingCallback) {
72289
+ SurveyModel.prototype.uploadFiles = function (question, name, files, callback) {
72032
72290
  if (this.onUploadFiles.isEmpty) {
72033
- uploadingCallback("error", files);
72291
+ callback("error", files);
72034
72292
  }
72035
72293
  else {
72036
72294
  this.onUploadFiles.fire(this, {
72037
72295
  question: question,
72038
72296
  name: name,
72039
72297
  files: files || [],
72040
- callback: uploadingCallback,
72298
+ callback: callback,
72041
72299
  });
72042
72300
  }
72043
72301
  if (this.surveyPostId) {
72044
- this.uploadFilesCore(name, files, uploadingCallback);
72302
+ this.uploadFilesCore(name, files, callback);
72045
72303
  }
72046
72304
  };
72047
72305
  /**
72048
- * Downloads a file from server
72049
- * @param name a question name
72050
- * @param fileValue a single file question value
72051
- * @param callback a call back function to get the status on downloading the file and the downloaded file content
72306
+ * Downloads a file from a server.
72307
+ *
72308
+ * The following code shows how to call this method:
72309
+ *
72310
+ * ```js
72311
+ * const question = survey.getQuestionByName("myFileQuestion");
72312
+ * survey.downloadFile(
72313
+ * question,
72314
+ * question.name,
72315
+ * // Download the first uploaded file
72316
+ * question.value[0],
72317
+ * (status, data) => {
72318
+ * if (status === "success") {
72319
+ * // Use `data` to retrieve the file
72320
+ * }
72321
+ * if (status === "error") {
72322
+ * // Handle error
72323
+ * }
72324
+ * }
72325
+ * );
72326
+ * ```
72327
+ *
72328
+ * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model).
72329
+ * @param questionName The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name).
72330
+ * @param fileValue An object from File Upload's [`value`](https://surveyjs.io/form-library/documentation/api-reference/file-model#value) array. This object contains metadata about the file you want to download.
72331
+ * @param callback A callback function that allows you to get the download status (`"success"` or `"error"`) and the file identifier (URL, file name, etc.) that you can use to retrieve the file.
72332
+ * @see onDownloadFile
72333
+ * @see uploadFiles
72052
72334
  */
72053
72335
  SurveyModel.prototype.downloadFile = function (question, questionName, fileValue, callback) {
72054
72336
  if (this.onDownloadFile.isEmpty) {
@@ -72247,8 +72529,8 @@ var SurveyModel = /** @class */ (function (_super) {
72247
72529
  return result;
72248
72530
  };
72249
72531
  /**
72250
- * Returns a page on which an element (question or panel) is placed.
72251
- * @param element Question or Panel
72532
+ * Returns a page to which a specified survey element (question or panel) belongs.
72533
+ * @param element A question or panel instance.
72252
72534
  */
72253
72535
  SurveyModel.prototype.getPageByElement = function (element) {
72254
72536
  for (var i = 0; i < this.pages.length; i++) {
@@ -72259,15 +72541,15 @@ var SurveyModel = /** @class */ (function (_super) {
72259
72541
  return null;
72260
72542
  };
72261
72543
  /**
72262
- * Returns a page on which a question is located.
72263
- * @param question
72544
+ * Returns a page to which a specified question belongs.
72545
+ * @param question A question instance.
72264
72546
  */
72265
72547
  SurveyModel.prototype.getPageByQuestion = function (question) {
72266
72548
  return this.getPageByElement(question);
72267
72549
  };
72268
72550
  /**
72269
- * Returns a page by it's name.
72270
- * @param name
72551
+ * Returns a page with a specified name.
72552
+ * @param name A page [name](https://surveyjs.io/form-library/documentation/api-reference/page-model#name).
72271
72553
  */
72272
72554
  SurveyModel.prototype.getPageByName = function (name) {
72273
72555
  for (var i = 0; i < this.pages.length; i++) {
@@ -72277,8 +72559,8 @@ var SurveyModel = /** @class */ (function (_super) {
72277
72559
  return null;
72278
72560
  };
72279
72561
  /**
72280
- * Returns a list of pages by their names.
72281
- * @param names a list of page names
72562
+ * Returns an array of pages with specified names.
72563
+ * @param names An array of page names.
72282
72564
  */
72283
72565
  SurveyModel.prototype.getPagesByNames = function (names) {
72284
72566
  var result = [];
@@ -72294,17 +72576,27 @@ var SurveyModel = /** @class */ (function (_super) {
72294
72576
  return result;
72295
72577
  };
72296
72578
  /**
72297
- * Returns a list of all questions in a survey.
72298
- * @param visibleOnly set it `true`, if you want to get only visible questions
72579
+ * Returns a list of all questions in the survey.
72580
+ * @param visibleOnly A Boolean value that specifies whether to include only visible questions.
72581
+ * @param includeDesignTime For internal use.
72582
+ * @param includeNested A Boolean value that specifies whether to include nested questions, such as questions within matrix cells.
72299
72583
  */
72300
- SurveyModel.prototype.getAllQuestions = function (visibleOnly, includingDesignTime) {
72584
+ SurveyModel.prototype.getAllQuestions = function (visibleOnly, includeDesignTime, includeNested) {
72301
72585
  if (visibleOnly === void 0) { visibleOnly = false; }
72302
- if (includingDesignTime === void 0) { includingDesignTime = false; }
72303
- var result = new Array();
72586
+ if (includeDesignTime === void 0) { includeDesignTime = false; }
72587
+ if (includeNested === void 0) { includeNested = false; }
72588
+ var res = [];
72304
72589
  for (var i = 0; i < this.pages.length; i++) {
72305
- this.pages[i].addQuestionsToList(result, visibleOnly, includingDesignTime);
72590
+ this.pages[i].addQuestionsToList(res, visibleOnly, includeDesignTime);
72306
72591
  }
72307
- return result;
72592
+ if (!includeNested)
72593
+ return res;
72594
+ var res2 = [];
72595
+ res.forEach(function (q) {
72596
+ res2.push(q);
72597
+ q.getNestedQuestions(visibleOnly).forEach(function (nQ) { return res2.push(nQ); });
72598
+ });
72599
+ return res2;
72308
72600
  };
72309
72601
  /**
72310
72602
  * Returns quiz questions. All visible questions that has input(s) widgets.
@@ -72349,12 +72641,12 @@ var SurveyModel = /** @class */ (function (_super) {
72349
72641
  /**
72350
72642
  * Returns a list of all survey's panels.
72351
72643
  */
72352
- SurveyModel.prototype.getAllPanels = function (visibleOnly, includingDesignTime) {
72644
+ SurveyModel.prototype.getAllPanels = function (visibleOnly, includeDesignTime) {
72353
72645
  if (visibleOnly === void 0) { visibleOnly = false; }
72354
- if (includingDesignTime === void 0) { includingDesignTime = false; }
72646
+ if (includeDesignTime === void 0) { includeDesignTime = false; }
72355
72647
  var result = new Array();
72356
72648
  for (var i = 0; i < this.pages.length; i++) {
72357
- this.pages[i].addPanelsIntoList(result, visibleOnly, includingDesignTime);
72649
+ this.pages[i].addPanelsIntoList(result, visibleOnly, includeDesignTime);
72358
72650
  }
72359
72651
  return result;
72360
72652
  };
@@ -73176,6 +73468,8 @@ var SurveyModel = /** @class */ (function (_super) {
73176
73468
  page.name = this.generateNewName(this.pages, "page");
73177
73469
  this.questionHashesPanelAdded(page);
73178
73470
  this.updateVisibleIndexes();
73471
+ if (!!this.runningPages)
73472
+ return;
73179
73473
  if (!this.isLoadingFromJson) {
73180
73474
  this.updateProgressText();
73181
73475
  this.updateCurrentPage();
@@ -73185,6 +73479,8 @@ var SurveyModel = /** @class */ (function (_super) {
73185
73479
  };
73186
73480
  SurveyModel.prototype.doOnPageRemoved = function (page) {
73187
73481
  page.setSurveyImpl(null);
73482
+ if (!!this.runningPages)
73483
+ return;
73188
73484
  if (page === this.currentPage) {
73189
73485
  this.updateCurrentPage();
73190
73486
  }
@@ -74065,9 +74361,10 @@ var SurveyModel = /** @class */ (function (_super) {
74065
74361
  return true;
74066
74362
  };
74067
74363
  SurveyModel.prototype.questionEditFinishCallback = function (question, event) {
74068
- if (_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].enterKeyAction == "loseFocus")
74364
+ var enterKeyAction = this.enterKeyAction || _settings__WEBPACK_IMPORTED_MODULE_14__["settings"].enterKeyAction;
74365
+ if (enterKeyAction == "loseFocus")
74069
74366
  event.target.blur();
74070
- if (_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].enterKeyAction == "moveToNextEditor") {
74367
+ if (enterKeyAction == "moveToNextEditor") {
74071
74368
  var allQuestions = this.currentPage.questions;
74072
74369
  var questionIndex = allQuestions.indexOf(question);
74073
74370
  if (questionIndex > -1 && questionIndex < allQuestions.length - 1) {
@@ -74219,8 +74516,14 @@ var SurveyModel = /** @class */ (function (_super) {
74219
74516
  if (!theme)
74220
74517
  return;
74221
74518
  Object.keys(theme).forEach(function (key) {
74222
- _this[key] = theme[key];
74519
+ if (key === "isPanelless") {
74520
+ _this.isCompact = theme[key];
74521
+ }
74522
+ else {
74523
+ _this[key] = theme[key];
74524
+ }
74223
74525
  });
74526
+ this.onThemeApplied.fire(this, {});
74224
74527
  };
74225
74528
  /**
74226
74529
  * Use this method to dispose survey model properly.
@@ -74253,6 +74556,9 @@ var SurveyModel = /** @class */ (function (_super) {
74253
74556
  __decorate([
74254
74557
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
74255
74558
  ], SurveyModel.prototype, "showBrandInfo", void 0);
74559
+ __decorate([
74560
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
74561
+ ], SurveyModel.prototype, "enterKeyAction", void 0);
74256
74562
  __decorate([
74257
74563
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: {} })
74258
74564
  ], SurveyModel.prototype, "cssVariables", void 0);
@@ -74940,20 +75246,23 @@ var SurveyTimerModel = /** @class */ (function (_super) {
74940
75246
  /*!**************************!*\
74941
75247
  !*** ./src/surveyToc.ts ***!
74942
75248
  \**************************/
74943
- /*! exports provided: tryNavigateToPage, createTOCListModel, getTocRootCss, TOCModel */
75249
+ /*! exports provided: tryNavigateToPage, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel */
74944
75250
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
74945
75251
 
74946
75252
  "use strict";
74947
75253
  __webpack_require__.r(__webpack_exports__);
74948
75254
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryNavigateToPage", function() { return tryNavigateToPage; });
75255
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryFocusPage", function() { return tryFocusPage; });
74949
75256
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTOCListModel", function() { return createTOCListModel; });
74950
75257
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTocRootCss", function() { return getTocRootCss; });
74951
75258
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TOCModel", function() { return TOCModel; });
74952
75259
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
74953
75260
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ "./src/base.ts");
74954
75261
  /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./list */ "./src/list.ts");
74955
- /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./popup */ "./src/popup.ts");
74956
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
75262
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./page */ "./src/page.ts");
75263
+ /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popup */ "./src/popup.ts");
75264
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
75265
+
74957
75266
 
74958
75267
 
74959
75268
 
@@ -74974,26 +75283,37 @@ function tryNavigateToPage(survey, page) {
74974
75283
  }
74975
75284
  return true;
74976
75285
  }
75286
+ function tryFocusPage(survey, panel) {
75287
+ if (survey.isDesignMode)
75288
+ return true;
75289
+ panel.focusFirstQuestion();
75290
+ return true;
75291
+ }
74977
75292
  function createTOCListModel(survey, onAction) {
74978
- var items = survey.pages.map(function (page) {
75293
+ var _a;
75294
+ var pagesSource = survey.questionsOnPageMode === "singlePage" ? (_a = survey.pages[0]) === null || _a === void 0 ? void 0 : _a.elements : survey.pages;
75295
+ var items = (pagesSource || []).map(function (page) {
74979
75296
  return new _actions_action__WEBPACK_IMPORTED_MODULE_0__["Action"]({
74980
75297
  id: page.name,
74981
- title: page.navigationTitle || page.title || page.name,
75298
+ title: (page["navigationTitle"]) || page.title || page.name,
74982
75299
  action: function () {
74983
75300
  if (typeof document !== undefined && !!document.activeElement) {
74984
75301
  !!document.activeElement.blur && document.activeElement.blur();
74985
75302
  }
74986
75303
  !!onAction && onAction();
74987
- return tryNavigateToPage(survey, page);
75304
+ if (page instanceof _page__WEBPACK_IMPORTED_MODULE_3__["PageModel"]) {
75305
+ return tryNavigateToPage(survey, page);
75306
+ }
75307
+ return tryFocusPage(survey, page);
74988
75308
  },
74989
- visible: new _base__WEBPACK_IMPORTED_MODULE_1__["ComputedUpdater"](function () { return page.isVisible && !page.isStartPage; })
75309
+ visible: new _base__WEBPACK_IMPORTED_MODULE_1__["ComputedUpdater"](function () { return page.isVisible && !(page["isStartPage"]); })
74990
75310
  });
74991
75311
  });
74992
75312
  var listModel = new _list__WEBPACK_IMPORTED_MODULE_2__["ListModel"](items, function (item) {
74993
75313
  if (!!item.action()) {
74994
75314
  listModel.selectedItem = item;
74995
75315
  }
74996
- }, true, items.filter(function (i) { return i.id === survey.currentPage.name; })[0]);
75316
+ }, true, items.filter(function (i) { return i.id === survey.currentPage.name; })[0] || items.filter(function (i) { return i.id === pagesSource[0].name; })[0]);
74997
75317
  listModel.allowSelection = false;
74998
75318
  listModel.locOwner = survey;
74999
75319
  survey.onCurrentPageChanged.add(function (s, o) {
@@ -75012,13 +75332,14 @@ var TOCModel = /** @class */ (function () {
75012
75332
  function TOCModel(survey) {
75013
75333
  var _this = this;
75014
75334
  this.survey = survey;
75015
- this.isMobile = _utils_devices__WEBPACK_IMPORTED_MODULE_4__["IsTouch"];
75335
+ this.isMobile = _utils_devices__WEBPACK_IMPORTED_MODULE_5__["IsTouch"];
75016
75336
  this.icon = "icon-navmenu_24x24";
75017
75337
  this.togglePopup = function () {
75018
75338
  _this.popupModel.toggleVisibility();
75019
75339
  };
75020
75340
  this.listModel = createTOCListModel(survey, function () { _this.popupModel.isVisible = false; });
75021
- this.popupModel = new _popup__WEBPACK_IMPORTED_MODULE_3__["PopupModel"]("sv-list", { model: this.listModel });
75341
+ this.popupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: this.listModel });
75342
+ this.popupModel.displayMode = this.isMobile ? "overlay" : "popup";
75022
75343
  }
75023
75344
  Object.defineProperty(TOCModel.prototype, "containerCss", {
75024
75345
  get: function () {
@@ -76604,13 +76925,14 @@ var TooltipManager = /** @class */ (function () {
76604
76925
  /*!****************************!*\
76605
76926
  !*** ./src/utils/utils.ts ***!
76606
76927
  \****************************/
76607
- /*! exports provided: unwrap, getSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
76928
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
76608
76929
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
76609
76930
 
76610
76931
  "use strict";
76611
76932
  __webpack_require__.r(__webpack_exports__);
76612
76933
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unwrap", function() { return unwrap; });
76613
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSize", function() { return getSize; });
76934
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRenderedSize", function() { return getRenderedSize; });
76935
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRenderedStyleSize", function() { return getRenderedStyleSize; });
76614
76936
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickBlur", function() { return doKey2ClickBlur; });
76615
76937
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickUp", function() { return doKey2ClickUp; });
76616
76938
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doKey2ClickDown", function() { return doKey2ClickDown; });
@@ -76808,21 +77130,43 @@ function unwrap(value) {
76808
77130
  return value();
76809
77131
  }
76810
77132
  }
76811
- function getSize(value) {
76812
- if (typeof value === "number") {
76813
- return "" + value + "px";
76814
- }
76815
- if (!!value && typeof value === "string" && value.length > 0) {
76816
- var lastSymbol = value[value.length - 1];
76817
- if ((lastSymbol >= "0" && lastSymbol <= "9") || lastSymbol == ".") {
76818
- try {
76819
- var num = parseFloat(value);
76820
- return "" + num + "px";
76821
- }
76822
- catch (_a) { }
77133
+ // export function getSize(value: any): number {
77134
+ // if (typeof value === "number") {
77135
+ // return value;
77136
+ // }
77137
+ // if (typeof value === "string" && value.includes("px")) {
77138
+ // return parseInt(value);
77139
+ // }
77140
+ // if (!!value && typeof value === "string" && value.length > 0) {
77141
+ // const lastSymbol: string = value[value.length - 1];
77142
+ // if ((lastSymbol >= "0" && lastSymbol <= "9") || lastSymbol == ".") {
77143
+ // try {
77144
+ // const num: number = parseInt(value);
77145
+ // return num;
77146
+ // } catch { }
77147
+ // }
77148
+ // }
77149
+ // return value;
77150
+ // }
77151
+ function getRenderedSize(val) {
77152
+ if (typeof val == "string") {
77153
+ if (!isNaN(Number(val))) {
77154
+ return Number(val);
77155
+ }
77156
+ else if (val.includes("px")) {
77157
+ return parseFloat(val);
76823
77158
  }
76824
77159
  }
76825
- return value;
77160
+ if (typeof val == "number") {
77161
+ return val;
77162
+ }
77163
+ return undefined;
77164
+ }
77165
+ function getRenderedStyleSize(val) {
77166
+ if (getRenderedSize(val) !== undefined) {
77167
+ return undefined;
77168
+ }
77169
+ return val;
76826
77170
  }
76827
77171
  var keyFocusedClassName = "sv-focused--by-key";
76828
77172
  function doKey2ClickBlur(evt) {