survey-react 1.9.119 → 1.9.121

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.119
2
+ * surveyjs - Survey JavaScript library v1.9.121
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
  */
@@ -1326,8 +1326,8 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
1326
1326
  this.updateItemMode(dimension, maxSize);
1327
1327
  }
1328
1328
  };
1329
- AdaptiveActionContainer.prototype.initResponsivityManager = function (container) {
1330
- this.responsivityManager = new _utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__["ResponsivityManager"](container, this, ":scope > .sv-action:not(.sv-dots) > .sv-action__content");
1329
+ AdaptiveActionContainer.prototype.initResponsivityManager = function (container, delayedUpdateFunction) {
1330
+ this.responsivityManager = new _utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__["ResponsivityManager"](container, this, ":scope > .sv-action:not(.sv-dots) > .sv-action__content", null, delayedUpdateFunction);
1331
1331
  };
1332
1332
  AdaptiveActionContainer.prototype.resetResponsivityManager = function () {
1333
1333
  if (!!this.responsivityManager) {
@@ -1539,7 +1539,7 @@ var ActionContainer = /** @class */ (function (_super) {
1539
1539
  this.sortItems();
1540
1540
  }
1541
1541
  };
1542
- ActionContainer.prototype.initResponsivityManager = function (container) {
1542
+ ActionContainer.prototype.initResponsivityManager = function (container, delayedUpdateFunction) {
1543
1543
  return;
1544
1544
  };
1545
1545
  ActionContainer.prototype.resetResponsivityManager = function () { };
@@ -4428,7 +4428,7 @@ var modernCss = {
4428
4428
  header: "sv-title sv-container-modern__title",
4429
4429
  headerClose: "sv-container-modern__close",
4430
4430
  bodyContainer: "sv-components-row",
4431
- body: "sv-components-column sv-components-column--expandable sv-body",
4431
+ body: "sv-body",
4432
4432
  bodyEmpty: "sv-body sv-body--empty",
4433
4433
  footer: "sv-footer sv-body__footer sv-clearfix",
4434
4434
  title: "",
@@ -4883,7 +4883,7 @@ var defaultStandardCss = {
4883
4883
  container: "sv_container",
4884
4884
  header: "sv_header",
4885
4885
  bodyContainer: "sv-components-row",
4886
- body: "sv-components-column sv-components-column--expandable sv_body",
4886
+ body: "sv_body",
4887
4887
  bodyEmpty: "sv_body sv_body_empty",
4888
4888
  footer: "sv_nav",
4889
4889
  title: "",
@@ -5323,7 +5323,7 @@ var defaultV2Css = {
5323
5323
  container: "sd-container-modern",
5324
5324
  header: "sd-title sd-container-modern__title",
5325
5325
  bodyContainer: "sv-components-row",
5326
- body: "sv-components-column sv-components-column--expandable sd-body",
5326
+ body: "sd-body",
5327
5327
  bodyWithTimer: "sd-body--with-timer",
5328
5328
  clockTimerRoot: "sd-timer",
5329
5329
  clockTimerRootTop: "sd-timer--top",
@@ -5930,7 +5930,8 @@ var defaultV2Css = {
5930
5930
  canvas: "sjs_sp_canvas sd-signaturepad__canvas",
5931
5931
  backgroundImage: "sjs_sp__background-image sd-signaturepad__background-image",
5932
5932
  clearButton: "sjs_sp_clear sd-context-btn sd-context-btn--negative sd-signaturepad__clear",
5933
- clearButtonIconId: "icon-clear"
5933
+ clearButtonIconId: "icon-clear",
5934
+ loadingIndicator: "sd-signaturepad__loading-indicator"
5934
5935
  },
5935
5936
  saveData: {
5936
5937
  root: "sv-save-data_root",
@@ -8254,8 +8255,13 @@ var DropdownListModel = /** @class */ (function (_super) {
8254
8255
  this.popupModel.isVisible = false;
8255
8256
  }
8256
8257
  else if (!this.popupModel.isVisible && (event.keyCode === 13 || event.keyCode === 32)) {
8257
- this.popupModel.toggleVisibility();
8258
- this.changeSelectionWithKeyboard(false);
8258
+ if (event.keyCode === 32) {
8259
+ this.popupModel.toggleVisibility();
8260
+ this.changeSelectionWithKeyboard(false);
8261
+ }
8262
+ if (event.keyCode === 13) {
8263
+ this.question.survey.questionEditFinishCallback(this.question, event);
8264
+ }
8259
8265
  event.preventDefault();
8260
8266
  event.stopPropagation();
8261
8267
  }
@@ -8263,12 +8269,10 @@ var DropdownListModel = /** @class */ (function (_super) {
8263
8269
  if (event.keyCode === 13 && this.question.searchEnabled && !this.inputString && this.question instanceof _question_dropdown__WEBPACK_IMPORTED_MODULE_5__["QuestionDropdownModel"] && !this._markdownMode && this.question.value) {
8264
8270
  this._popupModel.isVisible = false;
8265
8271
  this.onClear(event);
8266
- this.question.survey.questionEditFinishCallback(this.question, event);
8267
8272
  }
8268
8273
  else {
8269
8274
  this.listModel.selectFocusedItem();
8270
8275
  this.onFocus(event);
8271
- this.question.survey.questionEditFinishCallback(this.question, event);
8272
8276
  }
8273
8277
  event.preventDefault();
8274
8278
  event.stopPropagation();
@@ -9419,8 +9423,8 @@ __webpack_require__.r(__webpack_exports__);
9419
9423
  //import "../../modern.scss";
9420
9424
  var Version;
9421
9425
  var ReleaseDate;
9422
- Version = "" + "1.9.119";
9423
- ReleaseDate = "" + "2023-11-28";
9426
+ Version = "" + "1.9.121";
9427
+ ReleaseDate = "" + "2023-12-12";
9424
9428
  function checkLibraryVersion(ver, libraryName) {
9425
9429
  if (Version != ver) {
9426
9430
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -10543,7 +10547,7 @@ var defaultBootstrapMaterialCss = _plugins_themes_bootstrapmaterial_cssbootstrap
10543
10547
  /*!***************************************!*\
10544
10548
  !*** ./src/entries/react-ui-model.ts ***!
10545
10549
  \***************************************/
10546
- /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent */
10550
+ /*! exports provided: Survey, attachKey2click, ReactSurveyElementsWrapper, SurveyNavigationBase, SurveyTimerPanel, SurveyPage, SurveyRow, SurveyPanel, SurveyFlowPanel, SurveyQuestion, SurveyElementErrors, SurveyQuestionAndErrorsCell, ReactSurveyElement, SurveyElementBase, SurveyQuestionElementBase, SurveyQuestionCommentItem, SurveyQuestionComment, SurveyQuestionCheckbox, SurveyQuestionCheckboxItem, SurveyQuestionRanking, SurveyQuestionRankingItem, RatingItem, RatingItemStar, RatingItemSmiley, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
10547
10551
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10548
10552
 
10549
10553
  "use strict";
@@ -10820,6 +10824,9 @@ __webpack_require__.r(__webpack_exports__);
10820
10824
  /* harmony import */ var _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../react/components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
10821
10825
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_components_loading_indicator__WEBPACK_IMPORTED_MODULE_79__["LoadingIndicatorComponent"]; });
10822
10826
 
10827
+ /* harmony import */ var _react_svgbundle__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../react/svgbundle */ "./src/react/svgbundle.tsx");
10828
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return _react_svgbundle__WEBPACK_IMPORTED_MODULE_80__["SvgBundleComponent"]; });
10829
+
10823
10830
  // react
10824
10831
 
10825
10832
 
@@ -10899,6 +10906,7 @@ __webpack_require__.r(__webpack_exports__);
10899
10906
 
10900
10907
 
10901
10908
 
10909
+
10902
10910
 
10903
10911
 
10904
10912
  //Uncomment to include the "date" question type.
@@ -10911,7 +10919,7 @@ __webpack_require__.r(__webpack_exports__);
10911
10919
  /*!******************************!*\
10912
10920
  !*** ./src/entries/react.ts ***!
10913
10921
  \******************************/
10914
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, 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, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, 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, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, 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, confirmActionAsync, 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, 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, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent */
10922
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, 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, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, 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, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, 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, confirmActionAsync, 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, 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, RatingDropdownItem, TagboxFilterString, SurveyQuestionOptionItem, SurveyQuestionDropdownBase, SurveyQuestionDropdown, SurveyQuestionTagboxItem, SurveyQuestionTagbox, SurveyQuestionDropdownSelect, SurveyQuestionMatrix, SurveyQuestionMatrixRow, SurveyQuestionHtml, SurveyQuestionFile, SurveyFileChooseButton, SurveyFilePreview, 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, HeaderMobile, HeaderCell, Header, SurveyLocStringViewer, SurveyLocStringEditor, LoadingIndicatorComponent, SvgBundleComponent */
10915
10923
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10916
10924
 
10917
10925
  "use strict";
@@ -11556,6 +11564,8 @@ __webpack_require__.r(__webpack_exports__);
11556
11564
 
11557
11565
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoadingIndicatorComponent", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["LoadingIndicatorComponent"]; });
11558
11566
 
11567
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return _react_ui_model__WEBPACK_IMPORTED_MODULE_3__["SvgBundleComponent"]; });
11568
+
11559
11569
 
11560
11570
  // themes settings
11561
11571
 
@@ -22558,7 +22568,7 @@ var englishStrings = {
22558
22568
  panelDynamicProgressText: "{0} of {1}",
22559
22569
  panelDynamicTabTextFormat: "Panel {panelIndex}",
22560
22570
  questionsProgressText: "Answered {0}/{1} questions",
22561
- emptySurvey: "The survey doesn't contain visible pages or questions.",
22571
+ emptySurvey: "The survey doesn't contain any visible elements.",
22562
22572
  completingSurvey: "Thank you for completing the survey",
22563
22573
  completingSurveyBefore: "Our records show that you have already completed this survey.",
22564
22574
  loadingSurvey: "Loading Survey...",
@@ -23785,7 +23795,7 @@ var hungarianSurveyStrings = {
23785
23795
  panelDynamicProgressText: "{0} / {1} rekord",
23786
23796
  panelDynamicTabTextFormat: "Panel {panelIndex}",
23787
23797
  questionsProgressText: "Válaszolt kérdések: {0} / {1}",
23788
- emptySurvey: "The survey doesn't contain visible pages or questions.",
23798
+ emptySurvey: "The survey doesn't contain any visible elements.",
23789
23799
  completingSurvey: "Köszönjük, hogy kitöltötte felmérésünket!",
23790
23800
  completingSurveyBefore: "Már kitöltötte a felmérést.",
23791
23801
  loadingSurvey: "Felmérés betöltése...",
@@ -30507,11 +30517,22 @@ var PanelModelBase = /** @class */ (function (_super) {
30507
30517
  }
30508
30518
  }
30509
30519
  };
30510
- PanelModelBase.prototype.notifyStateChanged = function () {
30511
- _super.prototype.notifyStateChanged.call(this);
30520
+ PanelModelBase.prototype.notifyStateChanged = function (prevState) {
30521
+ var _this = this;
30522
+ _super.prototype.notifyStateChanged.call(this, prevState);
30512
30523
  if (this.isCollapsed) {
30513
30524
  this.questions.forEach(function (q) { return q.onHidingContent(); });
30514
30525
  }
30526
+ if (this.survey != null && !this.isLoadingFromJson && this.isExpanded && prevState === "collapsed") {
30527
+ var q_1 = this.getFirstQuestionToFocus(false);
30528
+ if (!!q_1) {
30529
+ setTimeout(function () {
30530
+ if (!_this.isDisposed && !!_this.survey) {
30531
+ _this.survey.scrollElementToTop(q_1, q_1, null, q_1.inputId, false);
30532
+ }
30533
+ }, 15);
30534
+ }
30535
+ }
30515
30536
  };
30516
30537
  Object.defineProperty(PanelModelBase.prototype, "isVisible", {
30517
30538
  /**
@@ -31025,11 +31046,11 @@ var PanelModel = /** @class */ (function (_super) {
31025
31046
  PanelModel.prototype.setNo = function (visibleIndex) {
31026
31047
  this.setPropertyValue("no", _helpers__WEBPACK_IMPORTED_MODULE_1__["Helpers"].getNumberByIndex(this.visibleIndex, this.getStartIndex()));
31027
31048
  };
31028
- PanelModel.prototype.notifyStateChanged = function () {
31049
+ PanelModel.prototype.notifyStateChanged = function (prevState) {
31029
31050
  if (!this.isLoadingFromJson) {
31030
31051
  this.locTitle.strChanged();
31031
31052
  }
31032
- _super.prototype.notifyStateChanged.call(this);
31053
+ _super.prototype.notifyStateChanged.call(this, prevState);
31033
31054
  };
31034
31055
  PanelModel.prototype.createLocTitleProperty = function () {
31035
31056
  var _this = this;
@@ -32766,7 +32787,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
32766
32787
  };
32767
32788
  _this.resizeWindowCallback = function () {
32768
32789
  if (!_this.isOverlay) {
32769
- _this.updatePosition(true, _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue3");
32790
+ _this.updatePosition(true, _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue3" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform == "react");
32770
32791
  }
32771
32792
  };
32772
32793
  _this.clientY = 0;
@@ -34417,8 +34438,8 @@ var Question = /** @class */ (function (_super) {
34417
34438
  this.errors = [];
34418
34439
  }
34419
34440
  };
34420
- Question.prototype.notifyStateChanged = function () {
34421
- _super.prototype.notifyStateChanged.call(this);
34441
+ Question.prototype.notifyStateChanged = function (prevState) {
34442
+ _super.prototype.notifyStateChanged.call(this, prevState);
34422
34443
  if (this.isCollapsed) {
34423
34444
  this.onHidingContent();
34424
34445
  }
@@ -36757,8 +36778,9 @@ var Question = /** @class */ (function (_super) {
36757
36778
  return makeNameValid(name);
36758
36779
  };
36759
36780
  //IQuestion
36760
- Question.prototype.updateValueFromSurvey = function (newValue) {
36781
+ Question.prototype.updateValueFromSurvey = function (newValue, clearData) {
36761
36782
  var _this = this;
36783
+ if (clearData === void 0) { clearData = false; }
36762
36784
  newValue = this.getUnbindValue(newValue);
36763
36785
  if (!!this.valueFromDataCallback) {
36764
36786
  newValue = this.valueFromDataCallback(newValue);
@@ -36773,6 +36795,9 @@ var Question = /** @class */ (function (_super) {
36773
36795
  }
36774
36796
  else {
36775
36797
  this.updateValueFromSurveyCore(newValue, this.data !== this.getSurvey());
36798
+ if (clearData && isEmpty) {
36799
+ this.isValueChangedDirectly = false;
36800
+ }
36776
36801
  }
36777
36802
  this.updateDependedQuestions();
36778
36803
  this.updateIsAnswered();
@@ -38919,7 +38944,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38919
38944
  this.onVisibleChoicesChanged();
38920
38945
  }
38921
38946
  };
38922
- QuestionSelectBase.prototype.updateValueFromSurvey = function (newValue) {
38947
+ QuestionSelectBase.prototype.updateValueFromSurvey = function (newValue, clearData) {
38923
38948
  var newComment = "";
38924
38949
  if (this.hasOther &&
38925
38950
  !this.isRunningChoices &&
@@ -38933,7 +38958,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
38933
38958
  newComment = this.data.getComment(this.getValueName());
38934
38959
  }
38935
38960
  }
38936
- _super.prototype.updateValueFromSurvey.call(this, newValue);
38961
+ _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);
38937
38962
  if ((this.isRunningChoices || this.choicesByUrl.isRunning) && !this.isEmpty()) {
38938
38963
  this.cachedValueForUrlRequests = this.value;
38939
38964
  }
@@ -40500,23 +40525,25 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
40500
40525
  * @see showSelectAllItem
40501
40526
  */
40502
40527
  get: function () {
40528
+ if (this.isItemSelected(this.noneItem))
40529
+ return false;
40530
+ var items = this.getVisibleEnableItems();
40531
+ if (items.length === 0)
40532
+ return false;
40503
40533
  var val = this.value;
40504
- if (!val || !Array.isArray(val))
40534
+ if (!val || !Array.isArray(val) || val.length === 0)
40505
40535
  return false;
40506
- if (this.isItemSelected(this.noneItem))
40536
+ if (val.length < items.length)
40507
40537
  return false;
40508
- var allItemCount = this.visibleChoices.length;
40509
- var order = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder;
40510
- if (this.hasOther)
40511
- allItemCount -= order.otherItem.length;
40512
- if (this.hasNone)
40513
- allItemCount -= order.noneItem.length;
40514
- if (this.hasSelectAll)
40515
- allItemCount -= order.selectAllItem.length;
40516
- var selectedCount = val.length;
40517
- if (this.isOtherSelected)
40518
- selectedCount--;
40519
- return selectedCount === allItemCount;
40538
+ var rVal = [];
40539
+ for (var i = 0; i < val.length; i++) {
40540
+ rVal.push(this.getRealValue(val[i]));
40541
+ }
40542
+ for (var i = 0; i < items.length; i++) {
40543
+ if (rVal.indexOf(items[i].value) < 0)
40544
+ return false;
40545
+ }
40546
+ return true;
40520
40547
  },
40521
40548
  set: function (val) {
40522
40549
  if (val) {
@@ -40540,13 +40567,9 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
40540
40567
  */
40541
40568
  QuestionCheckboxModel.prototype.selectAll = function () {
40542
40569
  var val = [];
40543
- for (var i = 0; i < this.visibleChoices.length; i++) {
40544
- var item = this.visibleChoices[i];
40545
- if (item === this.noneItem ||
40546
- item === this.otherItem ||
40547
- item === this.selectAllItem)
40548
- continue;
40549
- val.push(item.value);
40570
+ var items = this.getVisibleEnableItems();
40571
+ for (var i = 0; i < items.length; i++) {
40572
+ val.push(items[i].value);
40550
40573
  }
40551
40574
  this.renderedValue = val;
40552
40575
  };
@@ -40675,24 +40698,51 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
40675
40698
  errors.push(minError);
40676
40699
  }
40677
40700
  };
40701
+ QuestionCheckboxModel.prototype.onVisibleChoicesChanged = function () {
40702
+ _super.prototype.onVisibleChoicesChanged.call(this);
40703
+ this.updateSelectAllItemProps();
40704
+ };
40678
40705
  QuestionCheckboxModel.prototype.onEnableItemCallBack = function (item) {
40679
40706
  if (!this.shouldCheckMaxSelectedChoices())
40680
40707
  return true;
40681
40708
  return this.isItemSelected(item);
40682
40709
  };
40683
40710
  QuestionCheckboxModel.prototype.onAfterRunItemsEnableCondition = function () {
40711
+ this.updateSelectAllItemProps();
40684
40712
  if (this.maxSelectedChoices < 1) {
40685
- this.selectAllItem.setIsEnabled(true);
40686
40713
  this.otherItem.setIsEnabled(true);
40687
40714
  return;
40688
40715
  }
40689
- if (this.hasSelectAll) {
40690
- this.selectAllItem.setIsEnabled(this.maxSelectedChoices >= this.activeChoices.length);
40691
- }
40692
40716
  if (this.hasOther) {
40693
40717
  this.otherItem.setIsEnabled(!this.shouldCheckMaxSelectedChoices() || this.isOtherSelected);
40694
40718
  }
40695
40719
  };
40720
+ QuestionCheckboxModel.prototype.updateSelectAllItemProps = function () {
40721
+ if (!this.hasSelectAll)
40722
+ return;
40723
+ this.selectAllItem.setIsEnabled(this.getSelectAllEnabled());
40724
+ };
40725
+ QuestionCheckboxModel.prototype.getSelectAllEnabled = function () {
40726
+ if (!this.hasSelectAll)
40727
+ return true;
40728
+ var items = this.activeChoices;
40729
+ var visCount = this.getVisibleEnableItems().length;
40730
+ var max = this.maxSelectedChoices;
40731
+ if (max > 0 && max < visCount)
40732
+ return false;
40733
+ return visCount > 0;
40734
+ };
40735
+ QuestionCheckboxModel.prototype.getVisibleEnableItems = function () {
40736
+ var res = new Array();
40737
+ var items = this.activeChoices;
40738
+ for (var i = 0; i < items.length; i++) {
40739
+ var item = items[i];
40740
+ if (item.isEnabled && item.isVisible) {
40741
+ res.push(item);
40742
+ }
40743
+ }
40744
+ return res;
40745
+ };
40696
40746
  QuestionCheckboxModel.prototype.shouldCheckMaxSelectedChoices = function () {
40697
40747
  if (this.maxSelectedChoices < 1)
40698
40748
  return false;
@@ -40715,8 +40765,8 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
40715
40765
  .append(this.cssClasses.itemSelectAll, options.isSelectAllItem)
40716
40766
  .toString();
40717
40767
  };
40718
- QuestionCheckboxModel.prototype.updateValueFromSurvey = function (newValue) {
40719
- _super.prototype.updateValueFromSurvey.call(this, newValue);
40768
+ QuestionCheckboxModel.prototype.updateValueFromSurvey = function (newValue, clearData) {
40769
+ _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);
40720
40770
  this.invisibleOldValues = {};
40721
40771
  };
40722
40772
  QuestionCheckboxModel.prototype.setDefaultValue = function () {
@@ -41517,6 +41567,12 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
41517
41567
  this.getElement().locStrsChanged();
41518
41568
  }
41519
41569
  };
41570
+ QuestionCustomModelBase.prototype.localeChanged = function () {
41571
+ _super.prototype.locStrsChanged.call(this);
41572
+ if (!!this.getElement()) {
41573
+ this.getElement().localeChanged();
41574
+ }
41575
+ };
41520
41576
  QuestionCustomModelBase.prototype.createWrapper = function () { };
41521
41577
  QuestionCustomModelBase.prototype.onPropertyValueChanged = function (name, oldValue, newValue) {
41522
41578
  _super.prototype.onPropertyValueChanged.call(this, name, oldValue, newValue);
@@ -42601,7 +42657,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
42601
42657
  };
42602
42658
  QuestionDropdownModel.prototype.onVisibleChoicesChanged = function () {
42603
42659
  _super.prototype.onVisibleChoicesChanged.call(this);
42604
- if (this.popupModel) {
42660
+ if (!this.isLoadingFromJson && this.popupModel) {
42605
42661
  this.dropdownListModel.updateItems();
42606
42662
  }
42607
42663
  };
@@ -42934,8 +42990,8 @@ var QuestionExpressionModel = /** @class */ (function (_super) {
42934
42990
  QuestionExpressionModel.prototype.onValueChanged = function () {
42935
42991
  this.updateFormatedValue();
42936
42992
  };
42937
- QuestionExpressionModel.prototype.updateValueFromSurvey = function (newValue) {
42938
- _super.prototype.updateValueFromSurvey.call(this, newValue);
42993
+ QuestionExpressionModel.prototype.updateValueFromSurvey = function (newValue, clearData) {
42994
+ _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);
42939
42995
  this.updateFormatedValue();
42940
42996
  };
42941
42997
  QuestionExpressionModel.prototype.getDisplayValueCore = function (keysAsText, value) {
@@ -43289,11 +43345,13 @@ _questionfactory__WEBPACK_IMPORTED_MODULE_3__["QuestionFactory"].Instance.regist
43289
43345
  /*!******************************!*\
43290
43346
  !*** ./src/question_file.ts ***!
43291
43347
  \******************************/
43292
- /*! exports provided: QuestionFileModel, FileLoader */
43348
+ /*! exports provided: dataUrl2File, QuestionFileModelBase, QuestionFileModel, FileLoader */
43293
43349
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
43294
43350
 
43295
43351
  "use strict";
43296
43352
  __webpack_require__.r(__webpack_exports__);
43353
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dataUrl2File", function() { return dataUrl2File; });
43354
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionFileModelBase", function() { return QuestionFileModelBase; });
43297
43355
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionFileModel", function() { return QuestionFileModel; });
43298
43356
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FileLoader", function() { return FileLoader; });
43299
43357
  /* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./question */ "./src/question.ts");
@@ -43342,17 +43400,16 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
43342
43400
 
43343
43401
 
43344
43402
 
43345
- /**
43346
- * A class that describes the File Upload question type.
43347
- *
43348
- * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
43349
- */
43350
- var QuestionFileModel = /** @class */ (function (_super) {
43351
- __extends(QuestionFileModel, _super);
43352
- function QuestionFileModel(name) {
43353
- var _this = _super.call(this, name) || this;
43403
+ function dataUrl2File(dataUrl, fileName, type) {
43404
+ var str = atob(dataUrl.split(",")[1]);
43405
+ var buffer = new Uint8Array(str.split("").map(function (c) { return c.charCodeAt(0); })).buffer;
43406
+ return new File([buffer], fileName, { type: type });
43407
+ }
43408
+ var QuestionFileModelBase = /** @class */ (function (_super) {
43409
+ __extends(QuestionFileModelBase, _super);
43410
+ function QuestionFileModelBase() {
43411
+ var _this = _super !== null && _super.apply(this, arguments) || this;
43354
43412
  _this.isUploading = false;
43355
- _this.isDragging = false;
43356
43413
  /**
43357
43414
  * An event that is raised after the upload state has changed.
43358
43415
  *
@@ -43365,6 +43422,124 @@ var QuestionFileModel = /** @class */ (function (_super) {
43365
43422
  */
43366
43423
  _this.onUploadStateChanged = _this.addEvent();
43367
43424
  _this.onStateChanged = _this.addEvent();
43425
+ return _this;
43426
+ }
43427
+ QuestionFileModelBase.prototype.stateChanged = function (state) {
43428
+ if (this.currentState == state) {
43429
+ return;
43430
+ }
43431
+ if (state === "loading") {
43432
+ this.isUploading = true;
43433
+ }
43434
+ if (state === "loaded") {
43435
+ this.isUploading = false;
43436
+ }
43437
+ if (state === "error") {
43438
+ this.isUploading = false;
43439
+ }
43440
+ this.currentState = state;
43441
+ this.onStateChanged.fire(this, { state: state });
43442
+ this.onUploadStateChanged.fire(this, { state: state });
43443
+ };
43444
+ Object.defineProperty(QuestionFileModelBase.prototype, "showLoadingIndicator", {
43445
+ get: function () {
43446
+ return this.isUploading && this.isDefaultV2Theme;
43447
+ },
43448
+ enumerable: false,
43449
+ configurable: true
43450
+ });
43451
+ Object.defineProperty(QuestionFileModelBase.prototype, "storeDataAsText", {
43452
+ /**
43453
+ * Specifies whether to store file or signature content as text in `SurveyModel`'s [`data`](https://surveyjs.io/form-library/documentation/surveymodel#data) property.
43454
+ *
43455
+ * If you disable this property, implement `SurveyModel`'s [`onUploadFiles`](https://surveyjs.io/form-library/documentation/surveymodel#onUploadFiles) event handler to specify how to store file content.
43456
+ */
43457
+ get: function () {
43458
+ return this.getPropertyValue("storeDataAsText");
43459
+ },
43460
+ set: function (val) {
43461
+ this.setPropertyValue("storeDataAsText", val);
43462
+ },
43463
+ enumerable: false,
43464
+ configurable: true
43465
+ });
43466
+ Object.defineProperty(QuestionFileModelBase.prototype, "waitForUpload", {
43467
+ /**
43468
+ * Enable this property if you want to wait until files are uploaded to complete the survey.
43469
+ *
43470
+ * Default value: `false`
43471
+ */
43472
+ get: function () {
43473
+ return this.getPropertyValue("waitForUpload");
43474
+ },
43475
+ set: function (val) {
43476
+ this.setPropertyValue("waitForUpload", val);
43477
+ },
43478
+ enumerable: false,
43479
+ configurable: true
43480
+ });
43481
+ QuestionFileModelBase.prototype.clearValue = function () {
43482
+ this.clearOnDeletingContainer();
43483
+ _super.prototype.clearValue.call(this);
43484
+ };
43485
+ QuestionFileModelBase.prototype.clearOnDeletingContainer = function () {
43486
+ if (!this.survey)
43487
+ return;
43488
+ this.survey.clearFiles(this, this.name, this.value, null, function () { });
43489
+ };
43490
+ QuestionFileModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
43491
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
43492
+ if (this.isUploading && this.waitForUpload) {
43493
+ errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](this.getLocalizationString("uploadingFile"), this));
43494
+ }
43495
+ };
43496
+ QuestionFileModelBase.prototype.uploadFiles = function (files) {
43497
+ var _this = this;
43498
+ if (this.survey) {
43499
+ this.stateChanged("loading");
43500
+ this.survey.uploadFiles(this, this.name, files, function (arg1, arg2) {
43501
+ if (Array.isArray(arg1)) {
43502
+ _this.setValueFromResult(arg1);
43503
+ if (Array.isArray(arg2)) {
43504
+ arg2.forEach(function (error) { return _this.errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](error, _this)); });
43505
+ _this.stateChanged("error");
43506
+ }
43507
+ }
43508
+ if (arg1 === "success" && Array.isArray(arg2)) {
43509
+ _this.setValueFromResult(arg2);
43510
+ }
43511
+ if (arg1 === "error") {
43512
+ if (typeof (arg2) === "string") {
43513
+ _this.errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](arg2, _this));
43514
+ }
43515
+ if (Array.isArray(arg2) && arg2.length > 0) {
43516
+ arg2.forEach(function (error) { return _this.errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](error, _this)); });
43517
+ }
43518
+ _this.stateChanged("error");
43519
+ }
43520
+ _this.stateChanged("loaded");
43521
+ });
43522
+ }
43523
+ };
43524
+ __decorate([
43525
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
43526
+ ], QuestionFileModelBase.prototype, "isUploading", void 0);
43527
+ __decorate([
43528
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "empty" })
43529
+ ], QuestionFileModelBase.prototype, "currentState", void 0);
43530
+ return QuestionFileModelBase;
43531
+ }(_question__WEBPACK_IMPORTED_MODULE_0__["Question"]));
43532
+
43533
+ /**
43534
+ * A class that describes the File Upload question type.
43535
+ *
43536
+ * [View Demo](https://surveyjs.io/form-library/examples/file-upload/ (linkStyle))
43537
+ */
43538
+ var QuestionFileModel = /** @class */ (function (_super) {
43539
+ __extends(QuestionFileModel, _super);
43540
+ function QuestionFileModel(name) {
43541
+ var _this = _super.call(this, name) || this;
43542
+ _this.isDragging = false;
43368
43543
  _this.fileNavigator = new _actions_container__WEBPACK_IMPORTED_MODULE_7__["ActionContainer"]();
43369
43544
  _this.canFlipCameraValue = undefined;
43370
43545
  _this.prevPreviewLength = 0;
@@ -43669,15 +43844,6 @@ var QuestionFileModel = /** @class */ (function (_super) {
43669
43844
  QuestionFileModel.prototype.getType = function () {
43670
43845
  return "file";
43671
43846
  };
43672
- QuestionFileModel.prototype.clearValue = function () {
43673
- this.clearOnDeletingContainer();
43674
- _super.prototype.clearValue.call(this);
43675
- };
43676
- QuestionFileModel.prototype.clearOnDeletingContainer = function () {
43677
- if (!this.survey)
43678
- return;
43679
- this.survey.clearFiles(this, this.name, this.value, null, function () { });
43680
- };
43681
43847
  Object.defineProperty(QuestionFileModel.prototype, "showPreview", {
43682
43848
  /**
43683
43849
  * Disable this property only to implement a custom preview.
@@ -43748,36 +43914,6 @@ var QuestionFileModel = /** @class */ (function (_super) {
43748
43914
  enumerable: false,
43749
43915
  configurable: true
43750
43916
  });
43751
- Object.defineProperty(QuestionFileModel.prototype, "storeDataAsText", {
43752
- /**
43753
- * Specifies whether to store file content as text in `SurveyModel`'s [`data`](https://surveyjs.io/form-library/documentation/surveymodel#data) property.
43754
- *
43755
- * If you disable this property, implement `SurveyModel`'s [`onUploadFiles`](https://surveyjs.io/form-library/documentation/surveymodel#onUploadFiles) event handler to specify how to store file content.
43756
- */
43757
- get: function () {
43758
- return this.getPropertyValue("storeDataAsText");
43759
- },
43760
- set: function (val) {
43761
- this.setPropertyValue("storeDataAsText", val);
43762
- },
43763
- enumerable: false,
43764
- configurable: true
43765
- });
43766
- Object.defineProperty(QuestionFileModel.prototype, "waitForUpload", {
43767
- /**
43768
- * Enable this property if you want to wait until files are uploaded to complete the survey.
43769
- *
43770
- * Default value: `false`
43771
- */
43772
- get: function () {
43773
- return this.getPropertyValue("waitForUpload");
43774
- },
43775
- set: function (val) {
43776
- this.setPropertyValue("waitForUpload", val);
43777
- },
43778
- enumerable: false,
43779
- configurable: true
43780
- });
43781
43917
  Object.defineProperty(QuestionFileModel.prototype, "allowImagesPreview", {
43782
43918
  /**
43783
43919
  * Specifies whether to show a preview of image files.
@@ -43965,13 +44101,6 @@ var QuestionFileModel = /** @class */ (function (_super) {
43965
44101
  enumerable: false,
43966
44102
  configurable: true
43967
44103
  });
43968
- Object.defineProperty(QuestionFileModel.prototype, "showLoadingIndicator", {
43969
- get: function () {
43970
- return this.isUploading && this.isDefaultV2Theme;
43971
- },
43972
- enumerable: false,
43973
- configurable: true
43974
- });
43975
44104
  Object.defineProperty(QuestionFileModel.prototype, "allowShowPreview", {
43976
44105
  get: function () {
43977
44106
  var isShowLoadingIndicator = this.showLoadingIndicator;
@@ -44040,6 +44169,15 @@ var QuestionFileModel = /** @class */ (function (_super) {
44040
44169
  }
44041
44170
  });
44042
44171
  };
44172
+ QuestionFileModel.prototype.setValueFromResult = function (arg) {
44173
+ this.value = (this.value || []).concat(arg.map(function (r) {
44174
+ return {
44175
+ name: r.file.name,
44176
+ type: r.file.type,
44177
+ content: r.content,
44178
+ };
44179
+ }));
44180
+ };
44043
44181
  /**
44044
44182
  * Loads multiple files into the question.
44045
44183
  * @param files An array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects.
@@ -44071,42 +44209,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
44071
44209
  });
44072
44210
  }
44073
44211
  else {
44074
- if (_this.survey) {
44075
- _this.survey.uploadFiles(_this, _this.name, files, function (arg1, arg2) {
44076
- if (Array.isArray(arg1)) {
44077
- _this.value = (_this.value || []).concat(arg1.map(function (r) {
44078
- return {
44079
- name: r.file.name,
44080
- type: r.file.type,
44081
- content: r.content,
44082
- };
44083
- }));
44084
- if (Array.isArray(arg2)) {
44085
- arg2.forEach(function (error) { return _this.errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](error, _this)); });
44086
- _this.stateChanged("error");
44087
- }
44088
- }
44089
- if (arg1 === "success" && Array.isArray(arg2)) {
44090
- _this.value = (_this.value || []).concat(arg2.map(function (r) {
44091
- return {
44092
- name: r.file.name,
44093
- type: r.file.type,
44094
- content: r.content,
44095
- };
44096
- }));
44097
- }
44098
- if (arg1 === "error") {
44099
- if (typeof (arg2) === "string") {
44100
- _this.errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](arg2, _this));
44101
- }
44102
- if (Array.isArray(arg2) && arg2.length > 0) {
44103
- arg2.forEach(function (error) { return _this.errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](error, _this)); });
44104
- }
44105
- _this.stateChanged("error");
44106
- }
44107
- _this.stateChanged("loaded");
44108
- });
44109
- }
44212
+ _this.uploadFiles(files);
44110
44213
  }
44111
44214
  };
44112
44215
  if (this.allowMultiple) {
@@ -44181,29 +44284,6 @@ var QuestionFileModel = /** @class */ (function (_super) {
44181
44284
  QuestionFileModel.prototype.getIsQuestionReady = function () {
44182
44285
  return _super.prototype.getIsQuestionReady.call(this) && !this.isFileLoading;
44183
44286
  };
44184
- QuestionFileModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
44185
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
44186
- if (this.isUploading && this.waitForUpload) {
44187
- errors.push(new _error__WEBPACK_IMPORTED_MODULE_4__["UploadingFileError"](this.getLocalizationString("uploadingFile"), this));
44188
- }
44189
- };
44190
- QuestionFileModel.prototype.stateChanged = function (state) {
44191
- if (this.currentState == state) {
44192
- return;
44193
- }
44194
- if (state === "loading") {
44195
- this.isUploading = true;
44196
- }
44197
- if (state === "loaded") {
44198
- this.isUploading = false;
44199
- }
44200
- if (state === "error") {
44201
- this.isUploading = false;
44202
- }
44203
- this.currentState = state;
44204
- this.onStateChanged.fire(this, { state: state });
44205
- this.onUploadStateChanged.fire(this, { state: state });
44206
- };
44207
44287
  QuestionFileModel.prototype.allFilesOk = function (files) {
44208
44288
  var _this = this;
44209
44289
  var errorLength = this.errors ? this.errors.length : 0;
@@ -44413,18 +44493,12 @@ var QuestionFileModel = /** @class */ (function (_super) {
44413
44493
  this.closeVideoStream();
44414
44494
  _super.prototype.dispose.call(this);
44415
44495
  };
44416
- __decorate([
44417
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44418
- ], QuestionFileModel.prototype, "isUploading", void 0);
44419
44496
  __decorate([
44420
44497
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44421
44498
  ], QuestionFileModel.prototype, "isDragging", void 0);
44422
44499
  __decorate([
44423
44500
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["propertyArray"])({})
44424
44501
  ], QuestionFileModel.prototype, "previewValue", void 0);
44425
- __decorate([
44426
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "empty" })
44427
- ], QuestionFileModel.prototype, "currentState", void 0);
44428
44502
  __decorate([
44429
44503
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 0 })
44430
44504
  ], QuestionFileModel.prototype, "indexToShow", void 0);
@@ -44489,7 +44563,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
44489
44563
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
44490
44564
  ], QuestionFileModel.prototype, "locRenderedPlaceholderValue", void 0);
44491
44565
  return QuestionFileModel;
44492
- }(_question__WEBPACK_IMPORTED_MODULE_0__["Question"]));
44566
+ }(QuestionFileModelBase));
44493
44567
 
44494
44568
  _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("file", [
44495
44569
  { name: "showCommentArea:switch", layout: "row", visible: true, category: "general" },
@@ -47016,8 +47090,9 @@ var MatrixDropdownRowModelBase = /** @class */ (function () {
47016
47090
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(value)) {
47017
47091
  for (var i = 0; i < questions.length; i++) {
47018
47092
  var key = questions[i].getValueName();
47019
- if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(value[key])) {
47020
- questions[i].value = value[key];
47093
+ var val = !!this.editingObj ? _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].getObjPropertyValue(this.editingObj, key) : value[key];
47094
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(val)) {
47095
+ questions[i].value = val;
47021
47096
  }
47022
47097
  }
47023
47098
  }
@@ -48548,6 +48623,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
48548
48623
  var questionPlainData = _super.prototype.getPlainData.call(this, options);
48549
48624
  if (!!questionPlainData) {
48550
48625
  questionPlainData.isNode = true;
48626
+ var prevData = Array.isArray(questionPlainData.data) ? [].concat(questionPlainData.data) : [];
48551
48627
  questionPlainData.data = this.visibleRows.map(function (row) {
48552
48628
  var rowDataItem = {
48553
48629
  name: row.dataName,
@@ -48569,6 +48645,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
48569
48645
  });
48570
48646
  return rowDataItem;
48571
48647
  });
48648
+ questionPlainData.data = questionPlainData.data.concat(prevData);
48572
48649
  }
48573
48650
  return questionPlainData;
48574
48651
  };
@@ -48980,7 +49057,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
48980
49057
  columnValue = newRowValue[columnName];
48981
49058
  }
48982
49059
  this.isRowChanging = true;
48983
- rowObj[columnName] = columnValue;
49060
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].setObjPropertyValue(rowObj, columnName, columnValue);
48984
49061
  this.isRowChanging = false;
48985
49062
  this.onCellValueChanged(row, columnName, rowObj);
48986
49063
  }
@@ -53075,7 +53152,8 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
53075
53152
  * }
53076
53153
  * ```
53077
53154
  *
53078
- * To enable Markdown support for the `title` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
53155
+ * To enable Markdown support for the `title` property, implement Markdown-to-HTML conversion in the [`onTextMarkdown`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
53156
+ * @see itemTitleWidth
53079
53157
  * @see addItem
53080
53158
  */
53081
53159
  get: function () {
@@ -53089,8 +53167,8 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
53089
53167
  });
53090
53168
  /**
53091
53169
  * Adds a new input item.
53092
- * @param name An item name
53093
- * @param title (Optional) An item title
53170
+ * @param name An item name.
53171
+ * @param title (Optional) An item title.
53094
53172
  * @see items
53095
53173
  */
53096
53174
  QuestionMultipleTextModel.prototype.addItem = function (name, title) {
@@ -53224,6 +53302,23 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
53224
53302
  enumerable: false,
53225
53303
  configurable: true
53226
53304
  });
53305
+ Object.defineProperty(QuestionMultipleTextModel.prototype, "itemTitleWidth", {
53306
+ /**
53307
+ * Specifies a uniform width for all text box titles. Accepts CSS values.
53308
+ *
53309
+ * Default value: `""` (the width of each title depends on the title length)
53310
+ * @see items
53311
+ * @see itemErrorLocation
53312
+ */
53313
+ get: function () {
53314
+ return this.getPropertyValue("itemTitleWidth") || "";
53315
+ },
53316
+ set: function (val) {
53317
+ this.setPropertyValue("itemTitleWidth", val);
53318
+ },
53319
+ enumerable: false,
53320
+ configurable: true
53321
+ });
53227
53322
  QuestionMultipleTextModel.prototype.onRowCreated = function (row) {
53228
53323
  return row;
53229
53324
  };
@@ -53578,7 +53673,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletext",
53578
53673
  { name: "!items:textitems", className: "multipletextitem", isArray: true },
53579
53674
  { name: "itemSize:number", minValue: 0 },
53580
53675
  { name: "colCount:number", default: 1, choices: [1, 2, 3, 4, 5] },
53581
- { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false }
53676
+ { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false },
53677
+ { name: "itemTitleWidth", category: "layout" }
53582
53678
  ], function () {
53583
53679
  return new QuestionMultipleTextModel("");
53584
53680
  }, "question");
@@ -55870,6 +55966,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55870
55966
  var questionPlainData = _super.prototype.getPlainData.call(this, options);
55871
55967
  if (!!questionPlainData) {
55872
55968
  questionPlainData.isNode = true;
55969
+ var prevData = Array.isArray(questionPlainData.data) ? [].concat(questionPlainData.data) : [];
55873
55970
  questionPlainData.data = this.panels.map(function (panel, index) {
55874
55971
  var panelDataItem = {
55875
55972
  name: panel.name || index,
@@ -55889,6 +55986,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55889
55986
  });
55890
55987
  return panelDataItem;
55891
55988
  });
55989
+ questionPlainData.data = questionPlainData.data.concat(prevData);
55892
55990
  }
55893
55991
  return questionPlainData;
55894
55992
  };
@@ -57059,6 +57157,24 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_3__["Serializer"].addClass("ranking", [
57059
57157
  visible: true,
57060
57158
  isSerializable: true,
57061
57159
  },
57160
+ {
57161
+ name: "selectToRankEmptyRankedAreaText:text",
57162
+ serializationProperty: "locSelectToRankEmptyRankedAreaText",
57163
+ category: "general",
57164
+ dependsOn: "selectToRankEnabled",
57165
+ visibleIf: function (obj) {
57166
+ return !!obj.selectToRankEnabled;
57167
+ },
57168
+ },
57169
+ {
57170
+ name: "selectToRankEmptyUnrankedAreaText:text",
57171
+ serializationProperty: "locSelectToRankEmptyUnrankedAreaText",
57172
+ category: "general",
57173
+ dependsOn: "selectToRankEnabled",
57174
+ visibleIf: function (obj) {
57175
+ return !!obj.selectToRankEnabled;
57176
+ },
57177
+ },
57062
57178
  {
57063
57179
  name: "maxSelectedChoices:number",
57064
57180
  visible: true,
@@ -58210,10 +58326,10 @@ __webpack_require__.r(__webpack_exports__);
58210
58326
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionSignaturePadModel", function() { return QuestionSignaturePadModel; });
58211
58327
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
58212
58328
  /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
58213
- /* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./question */ "./src/question.ts");
58214
- /* harmony import */ var signature_pad__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! signature_pad */ "./node_modules/signature_pad/dist/signature_pad.js");
58215
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
58216
- /* harmony import */ var _console_warnings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./console-warnings */ "./src/console-warnings.ts");
58329
+ /* harmony import */ var signature_pad__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! signature_pad */ "./node_modules/signature_pad/dist/signature_pad.js");
58330
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
58331
+ /* harmony import */ var _console_warnings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./console-warnings */ "./src/console-warnings.ts");
58332
+ /* harmony import */ var _question_file__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./question_file */ "./src/question_file.ts");
58217
58333
  var __extends = (undefined && undefined.__extends) || (function () {
58218
58334
  var extendStatics = function (d, b) {
58219
58335
  extendStatics = Object.setPrototypeOf ||
@@ -58257,6 +58373,16 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58257
58373
  _this.scaleCanvas(false, true);
58258
58374
  _this.refreshCanvas();
58259
58375
  };
58376
+ _this.onBlur = function (event) {
58377
+ if (!_this.storeDataAsText) {
58378
+ if (!_this.element.contains(event.relatedTarget)) {
58379
+ if (!_this.valueWasChangedFromLastUpload)
58380
+ return;
58381
+ _this.uploadFiles([Object(_question_file__WEBPACK_IMPORTED_MODULE_5__["dataUrl2File"])(_this.signaturePad.toDataURL(_this.getFormat()), _this.name + "." + correctFormatData(_this.dataFormat), _this.getFormat())]);
58382
+ _this.valueWasChangedFromLastUpload = false;
58383
+ }
58384
+ }
58385
+ };
58260
58386
  return _this;
58261
58387
  }
58262
58388
  QuestionSignaturePadModel.prototype.getPenColorFromTheme = function () {
@@ -58273,16 +58399,18 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58273
58399
  signaturePad.backgroundColor = background || backgroundColorFromTheme || backgroundColorProperty.defaultValue || "#ffffff";
58274
58400
  };
58275
58401
  QuestionSignaturePadModel.prototype.getCssRoot = function (cssClasses) {
58276
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_4__["CssClassBuilder"]()
58402
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
58277
58403
  .append(_super.prototype.getCssRoot.call(this, cssClasses))
58278
58404
  .append(cssClasses.small, this.signatureWidth.toString() === "300")
58279
58405
  .toString();
58280
58406
  };
58407
+ QuestionSignaturePadModel.prototype.getFormat = function () {
58408
+ return this.dataFormat === "jpeg" ? "image/jpeg" :
58409
+ (this.dataFormat === "svg" ? "image/svg+xml" : "");
58410
+ };
58281
58411
  QuestionSignaturePadModel.prototype.updateValue = function () {
58282
58412
  if (this.signaturePad) {
58283
- var format = this.dataFormat === "jpeg" ? "image/jpeg" :
58284
- (this.dataFormat === "svg" ? "image/svg+xml" : "");
58285
- var data = this.signaturePad.toDataURL(format);
58413
+ var data = this.signaturePad.toDataURL(this.getFormat());
58286
58414
  this.valueIsUpdatingInternally = true;
58287
58415
  this.value = data;
58288
58416
  this.valueIsUpdatingInternally = false;
@@ -58294,6 +58422,7 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58294
58422
  QuestionSignaturePadModel.prototype.afterRenderQuestionElement = function (el) {
58295
58423
  if (!!el) {
58296
58424
  this.initSignaturePad(el);
58425
+ this.element = el;
58297
58426
  }
58298
58427
  _super.prototype.afterRenderQuestionElement.call(this, el);
58299
58428
  };
@@ -58327,15 +58456,36 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58327
58456
  this.refreshCanvas();
58328
58457
  }
58329
58458
  };
58459
+ QuestionSignaturePadModel.prototype.fromDataUrl = function (data) {
58460
+ this.signaturePad.fromDataURL(data, { width: this.canvas.width * this.scale, height: this.canvas.height * this.scale });
58461
+ };
58462
+ QuestionSignaturePadModel.prototype.fromUrl = function (url) {
58463
+ var _this = this;
58464
+ var img = document.createElement("img");
58465
+ img.crossOrigin = "anonymous";
58466
+ img.src = url;
58467
+ img.onload = function () {
58468
+ var ctx = _this.canvas.getContext("2d");
58469
+ ctx.drawImage(img, 0, 0);
58470
+ var dataURL = _this.canvas.toDataURL(_this.getFormat());
58471
+ _this.fromDataUrl(dataURL);
58472
+ };
58473
+ };
58330
58474
  QuestionSignaturePadModel.prototype.refreshCanvas = function () {
58331
- var data = this.value;
58332
- var canvas = this.canvas;
58333
- if (!data) {
58334
- canvas.getContext("2d").clearRect(0, 0, canvas.width * this.scale, canvas.height * this.scale);
58475
+ if (!this.canvas)
58476
+ return;
58477
+ if (!this.value) {
58478
+ this.canvas.getContext("2d").clearRect(0, 0, this.canvas.width * this.scale, this.canvas.height * this.scale);
58335
58479
  this.signaturePad.clear();
58480
+ this.valueWasChangedFromLastUpload = false;
58336
58481
  }
58337
58482
  else {
58338
- this.signaturePad.fromDataURL(data, { width: canvas.width * this.scale, height: canvas.height * this.scale });
58483
+ if (this.storeDataAsText) {
58484
+ this.fromDataUrl(this.value);
58485
+ }
58486
+ else {
58487
+ this.fromUrl(this.value);
58488
+ }
58339
58489
  }
58340
58490
  };
58341
58491
  QuestionSignaturePadModel.prototype.initSignaturePad = function (el) {
@@ -58343,7 +58493,7 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58343
58493
  var canvas = el.getElementsByTagName("canvas")[0];
58344
58494
  this.canvas = canvas;
58345
58495
  this.resizeCanvas();
58346
- var signaturePad = new signature_pad__WEBPACK_IMPORTED_MODULE_3__["default"](canvas, { backgroundColor: "#ffffff" });
58496
+ var signaturePad = new signature_pad__WEBPACK_IMPORTED_MODULE_2__["default"](canvas, { backgroundColor: "#ffffff" });
58347
58497
  this.signaturePad = signaturePad;
58348
58498
  if (this.isInputReadOnly) {
58349
58499
  signaturePad.off();
@@ -58364,7 +58514,12 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58364
58514
  }, { once: false });
58365
58515
  signaturePad.addEventListener("endStroke", function () {
58366
58516
  _this.isDrawingValue = false;
58367
- _this.updateValue();
58517
+ if (_this.storeDataAsText) {
58518
+ _this.updateValue();
58519
+ }
58520
+ else {
58521
+ _this.valueWasChangedFromLastUpload = true;
58522
+ }
58368
58523
  }, { once: false });
58369
58524
  this.updateValueHandler();
58370
58525
  this.readOnlyChangedCallback();
@@ -58479,7 +58634,9 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58479
58634
  });
58480
58635
  Object.defineProperty(QuestionSignaturePadModel.prototype, "canShowClearButton", {
58481
58636
  get: function () {
58482
- return !this.isInputReadOnly && this.allowClear;
58637
+ var hasSignature = !this.nothingIsDrawn();
58638
+ var isUploading = this.isUploading;
58639
+ return !this.isInputReadOnly && this.allowClear && hasSignature && !isUploading;
58483
58640
  },
58484
58641
  enumerable: false,
58485
58642
  configurable: true
@@ -58548,22 +58705,39 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58548
58705
  enumerable: false,
58549
58706
  configurable: true
58550
58707
  });
58551
- QuestionSignaturePadModel.prototype.needShowPlaceholder = function () {
58552
- var showPlaceholder = this.showPlaceholder;
58708
+ QuestionSignaturePadModel.prototype.nothingIsDrawn = function () {
58553
58709
  var isDrawing = this.isDrawingValue;
58554
58710
  var isEmpty = this.isEmpty();
58555
- return showPlaceholder && !isDrawing && isEmpty;
58711
+ var isUploading = this.isUploading;
58712
+ var valueWasChangedFromLastUpload = this.valueWasChangedFromLastUpload;
58713
+ return !isDrawing && isEmpty && !isUploading && !valueWasChangedFromLastUpload;
58714
+ };
58715
+ QuestionSignaturePadModel.prototype.needShowPlaceholder = function () {
58716
+ return this.showPlaceholder && this.nothingIsDrawn();
58717
+ };
58718
+ QuestionSignaturePadModel.prototype.uploadResultItemToValue = function (r) {
58719
+ return r.content;
58720
+ };
58721
+ QuestionSignaturePadModel.prototype.setValueFromResult = function (arg) {
58722
+ this.valueIsUpdatingInternally = true;
58723
+ this.value = (arg === null || arg === void 0 ? void 0 : arg.length) ? arg.map(function (r) { return r.content; })[0] : undefined;
58724
+ this.valueIsUpdatingInternally = false;
58725
+ };
58726
+ QuestionSignaturePadModel.prototype.clearValue = function () {
58727
+ this.valueWasChangedFromLastUpload = false;
58728
+ _super.prototype.clearValue.call(this);
58729
+ this.refreshCanvas();
58556
58730
  };
58557
58731
  QuestionSignaturePadModel.prototype.endLoadingFromJson = function () {
58558
58732
  _super.prototype.endLoadingFromJson.call(this);
58559
58733
  //todo: need to remove this code
58560
58734
  if (this.signatureWidth === 300 && !!this.width && typeof this.width === "number" && this.width) {
58561
- _console_warnings__WEBPACK_IMPORTED_MODULE_5__["ConsoleWarnings"].warn("Use signatureWidth property to set width for the signature pad");
58735
+ _console_warnings__WEBPACK_IMPORTED_MODULE_4__["ConsoleWarnings"].warn("Use signatureWidth property to set width for the signature pad");
58562
58736
  this.signatureWidth = this.width;
58563
58737
  this.width = undefined;
58564
58738
  }
58565
58739
  if (this.signatureHeight === 200 && !!this.height) {
58566
- _console_warnings__WEBPACK_IMPORTED_MODULE_5__["ConsoleWarnings"].warn("Use signatureHeight property to set width for the signature pad");
58740
+ _console_warnings__WEBPACK_IMPORTED_MODULE_4__["ConsoleWarnings"].warn("Use signatureHeight property to set width for the signature pad");
58567
58741
  this.signatureHeight = this.height;
58568
58742
  this.height = undefined;
58569
58743
  }
@@ -58571,6 +58745,12 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58571
58745
  __decorate([
58572
58746
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
58573
58747
  ], QuestionSignaturePadModel.prototype, "isDrawingValue", void 0);
58748
+ __decorate([
58749
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
58750
+ ], QuestionSignaturePadModel.prototype, "isReadyForUpload", void 0);
58751
+ __decorate([
58752
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
58753
+ ], QuestionSignaturePadModel.prototype, "valueWasChangedFromLastUpload", void 0);
58574
58754
  __decorate([
58575
58755
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
58576
58756
  ], QuestionSignaturePadModel.prototype, "signatureAutoScaleEnabled", void 0);
@@ -58587,7 +58767,7 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
58587
58767
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ localizable: { defaultStr: "signaturePlaceHolder" } })
58588
58768
  ], QuestionSignaturePadModel.prototype, "placeholder", void 0);
58589
58769
  return QuestionSignaturePadModel;
58590
- }(_question__WEBPACK_IMPORTED_MODULE_2__["Question"]));
58770
+ }(_question_file__WEBPACK_IMPORTED_MODULE_5__["QuestionFileModelBase"]));
58591
58771
 
58592
58772
  function correctFormatData(val) {
58593
58773
  if (!val)
@@ -58669,6 +58849,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("signaturepad",
58669
58849
  },
58670
58850
  { name: "defaultValue", visible: false },
58671
58851
  { name: "correctAnswer", visible: false },
58852
+ { name: "storeDataAsText:boolean", default: true },
58853
+ { name: "waitForUpload:boolean", default: false },
58672
58854
  ], function () {
58673
58855
  return new QuestionSignaturePadModel("");
58674
58856
  }, "question");
@@ -60783,7 +60965,7 @@ var SurveyActionBar = /** @class */ (function (_super) {
60783
60965
  return;
60784
60966
  var container = this.rootRef.current;
60785
60967
  if (!!container) {
60786
- this.model.initResponsivityManager(container);
60968
+ this.model.initResponsivityManager(container, function (callback) { setTimeout(callback); });
60787
60969
  }
60788
60970
  };
60789
60971
  SurveyActionBar.prototype.componentWillUnmount = function () {
@@ -61191,7 +61373,7 @@ var HeaderMobile = /** @class */ (function (_super) {
61191
61373
  this.model.survey.hasTitle ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "sv-header__title", style: { maxWidth: this.model.textAreaWidth } },
61192
61374
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_title_title_element__WEBPACK_IMPORTED_MODULE_3__["TitleElement"], { element: this.model.survey }))) : null,
61193
61375
  this.model.survey.renderedHasDescription ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "sv-header__description", style: { maxWidth: this.model.textAreaWidth } },
61194
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h5", { className: this.model.survey.css.description }, _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"].renderLocString(this.model.survey.locDescription)))) : null));
61376
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.survey.css.description }, _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"].renderLocString(this.model.survey.locDescription)))) : null));
61195
61377
  };
61196
61378
  return HeaderMobile;
61197
61379
  }(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component));
@@ -61222,7 +61404,7 @@ var HeaderCell = /** @class */ (function (_super) {
61222
61404
  this.model.showTitle ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "sv-header__title", style: { maxWidth: this.model.textAreaWidth } },
61223
61405
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_title_title_element__WEBPACK_IMPORTED_MODULE_3__["TitleElement"], { element: this.model.survey }))) : null,
61224
61406
  this.model.showDescription ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "sv-header__description", style: { maxWidth: this.model.textAreaWidth } },
61225
- react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h5", { className: this.model.survey.css.description }, _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"].renderLocString(this.model.survey.locDescription)))) : null)));
61407
+ react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.model.survey.css.description }, _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"].renderLocString(this.model.survey.locDescription)))) : null)));
61226
61408
  };
61227
61409
  return HeaderCell;
61228
61410
  }(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component));
@@ -62977,7 +63159,7 @@ var SurveyHeader = /** @class */ (function (_super) {
62977
63159
  var description = _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElementBase"].renderLocString(this.survey.locDescription);
62978
63160
  return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.css.headerText, style: { maxWidth: this.survey.titleMaxWidth } },
62979
63161
  react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_title_title_element__WEBPACK_IMPORTED_MODULE_3__["TitleElement"], { element: this.survey }),
62980
- this.survey.renderedHasDescription ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h5", { className: this.css.description }, description) : null));
63162
+ this.survey.renderedHasDescription ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: this.css.description }, description) : null));
62981
63163
  };
62982
63164
  SurveyHeader.prototype.renderLogoImage = function (isRender) {
62983
63165
  if (!isRender)
@@ -63545,7 +63727,7 @@ var SurveyQuestionDropdownBase = /** @class */ (function (_super) {
63545
63727
  if (!this.question.allowClear || !this.question.cssClasses.cleanButtonIconId)
63546
63728
  return null;
63547
63729
  var style = { display: !this.question.showClearButton ? "none" : "" };
63548
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.cleanButton, style: style, onClick: this.clear, tabIndex: this.question.showClearButton ? 0 : -1 },
63730
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.cleanButton, style: style, onClick: this.clear, "aria-hidden": "true" },
63549
63731
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__["SvgIcon"], { className: this.question.cssClasses.cleanButtonSvg, iconName: this.question.cssClasses.cleanButtonIconId, title: this.question.clearCaption, size: "auto" })));
63550
63732
  };
63551
63733
  SurveyQuestionDropdownBase.prototype.createChevronButton = function () {
@@ -64984,6 +65166,7 @@ __webpack_require__.r(__webpack_exports__);
64984
65166
  /* harmony import */ var _components_brand_info__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/brand-info */ "./src/react/components/brand-info.tsx");
64985
65167
  /* harmony import */ var _components_notifier__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/notifier */ "./src/react/components/notifier.tsx");
64986
65168
  /* harmony import */ var _components_components_container__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/components-container */ "./src/react/components/components-container.tsx");
65169
+ /* harmony import */ var _svgbundle__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./svgbundle */ "./src/react/svgbundle.tsx");
64987
65170
  var __extends = (undefined && undefined.__extends) || (function () {
64988
65171
  var extendStatics = function (d, b) {
64989
65172
  extendStatics = Object.setPrototypeOf ||
@@ -65021,6 +65204,7 @@ var __assign = (undefined && undefined.__assign) || function () {
65021
65204
 
65022
65205
 
65023
65206
 
65207
+
65024
65208
  var Survey = /** @class */ (function (_super) {
65025
65209
  __extends(Survey, _super);
65026
65210
  function Survey(props) {
@@ -65091,9 +65275,6 @@ var Survey = /** @class */ (function (_super) {
65091
65275
  this.destroySurvey();
65092
65276
  };
65093
65277
  Survey.prototype.doRender = function () {
65094
- if (this.survey["needRenderIcons"]) {
65095
- survey_core__WEBPACK_IMPORTED_MODULE_1__["SvgRegistry"].renderIcons();
65096
- }
65097
65278
  var renderResult;
65098
65279
  if (this.survey.state == "completed") {
65099
65280
  renderResult = this.renderCompleted();
@@ -65122,6 +65303,7 @@ var Survey = /** @class */ (function (_super) {
65122
65303
  var rootCss = this.survey.getRootCss();
65123
65304
  var cssClasses = this.rootNodeClassName ? this.rootNodeClassName + " " + rootCss : rootCss;
65124
65305
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: this.rootNodeId, ref: this.rootRef, className: cssClasses, style: this.survey.themeVariables },
65306
+ this.survey.needRenderIcons ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svgbundle__WEBPACK_IMPORTED_MODULE_11__["SvgBundleComponent"], null) : null,
65125
65307
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.wrapperFormCss },
65126
65308
  backgroundImage,
65127
65309
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("form", { onSubmit: onSubmit },
@@ -65176,10 +65358,12 @@ var Survey = /** @class */ (function (_super) {
65176
65358
  }
65177
65359
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.survey.bodyContainerCss },
65178
65360
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "left" }),
65179
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: pageId, className: className, style: style },
65180
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "contentTop" }),
65181
- activePage,
65182
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "contentBottom" })),
65361
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "sv-components-column sv-components-column--expandable" },
65362
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "center" }),
65363
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: pageId, className: className, style: style },
65364
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "contentTop" }),
65365
+ activePage,
65366
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "contentBottom" }))),
65183
65367
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_components_container__WEBPACK_IMPORTED_MODULE_10__["ComponentsContainer"], { survey: this.survey, container: "right" })));
65184
65368
  };
65185
65369
  Survey.prototype.renderPage = function (page) {
@@ -68345,8 +68529,13 @@ var SurveyMultipleTextItem = /** @class */ (function (_super) {
68345
68529
  SurveyMultipleTextItem.prototype.renderElement = function () {
68346
68530
  var item = this.item;
68347
68531
  var cssClasses = this.cssClasses;
68532
+ var titleStyle = {};
68533
+ if (!!this.question.itemTitleWidth) {
68534
+ titleStyle.minWidth = this.question.itemTitleWidth;
68535
+ titleStyle.width = this.question.itemTitleWidth;
68536
+ }
68348
68537
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("label", { className: this.question.getItemLabelCss(item) },
68349
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.itemTitle },
68538
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", { className: cssClasses.itemTitle, style: titleStyle },
68350
68539
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_title_title_content__WEBPACK_IMPORTED_MODULE_4__["TitleContent"], { element: item.editor, cssClasses: item.editor.cssClasses })),
68351
68540
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SurveyMultipleTextItemEditor, { cssClasses: cssClasses, itemCss: this.question.getItemCss(), question: item.editor, creator: this.creator })));
68352
68541
  };
@@ -68908,12 +69097,15 @@ var SurveyQuestionRanking = /** @class */ (function (_super) {
68908
69097
  this.getItems(this.question.unRankingChoices, unrankedItem),
68909
69098
  this.question.unRankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
68910
69099
  " ",
68911
- this.question.selectToRankEmptyRankedAreaText,
69100
+ this.renderLocString(this.question.locSelectToRankEmptyRankedAreaText),
68912
69101
  " ") : null),
68913
69102
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containersDivider }),
68914
69103
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getContainerClasses("to"), "data-ranking": "to-container" },
68915
69104
  this.getItems(),
68916
- this.question.rankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder }, this.question.selectToRankEmptyUnrankedAreaText) : null)));
69105
+ this.question.rankingChoices.length === 0 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.containerPlaceholder },
69106
+ " ",
69107
+ this.renderLocString(this.question.locSelectToRankEmptyUnrankedAreaText),
69108
+ " ") : null)));
68917
69109
  }
68918
69110
  };
68919
69111
  SurveyQuestionRanking.prototype.getItems = function (choices, unrankedItem) {
@@ -69630,6 +69822,7 @@ __webpack_require__.r(__webpack_exports__);
69630
69822
  /* harmony import */ var _reactquestion_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactquestion_element */ "./src/react/reactquestion_element.tsx");
69631
69823
  /* harmony import */ var _reactquestion_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reactquestion_factory */ "./src/react/reactquestion_factory.tsx");
69632
69824
  /* harmony import */ var _components_svg_icon_svg_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/svg-icon/svg-icon */ "./src/react/components/svg-icon/svg-icon.tsx");
69825
+ /* harmony import */ var _components_loading_indicator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/loading-indicator */ "./src/react/components/loading-indicator.tsx");
69633
69826
  var __extends = (undefined && undefined.__extends) || (function () {
69634
69827
  var extendStatics = function (d, b) {
69635
69828
  extendStatics = Object.setPrototypeOf ||
@@ -69649,6 +69842,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
69649
69842
 
69650
69843
 
69651
69844
 
69845
+
69652
69846
  var SurveyQuestionSignaturePad = /** @class */ (function (_super) {
69653
69847
  __extends(SurveyQuestionSignaturePad, _super);
69654
69848
  function SurveyQuestionSignaturePad(props) {
@@ -69666,19 +69860,25 @@ var SurveyQuestionSignaturePad = /** @class */ (function (_super) {
69666
69860
  SurveyQuestionSignaturePad.prototype.renderElement = function () {
69667
69861
  var _this = this;
69668
69862
  var cssClasses = this.question.cssClasses;
69863
+ var loadingIndicator = this.question.showLoadingIndicator ? this.renderLoadingIndicator() : null;
69669
69864
  var clearButton = this.renderCleanButton();
69670
69865
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.root, ref: function (root) { return (_this.setControl(root)); }, style: { width: this.question.renderedCanvasWidth } },
69671
69866
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.placeholder, style: { display: this.question.needShowPlaceholder() ? "" : "none" } }, this.renderLocString(this.question.locPlaceholder)),
69672
69867
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null,
69673
69868
  this.renderBackgroundImage(),
69674
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("canvas", { tabIndex: 0, className: this.question.cssClasses.canvas })),
69675
- clearButton));
69869
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("canvas", { tabIndex: 0, className: this.question.cssClasses.canvas, onBlur: this.question.onBlur })),
69870
+ clearButton,
69871
+ loadingIndicator));
69676
69872
  };
69677
69873
  SurveyQuestionSignaturePad.prototype.renderBackgroundImage = function () {
69678
69874
  if (!this.question.backgroundImage)
69679
69875
  return null;
69680
69876
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("img", { className: this.question.cssClasses.backgroundImage, src: this.question.backgroundImage, style: { width: this.question.renderedCanvasWidth } });
69681
69877
  };
69878
+ SurveyQuestionSignaturePad.prototype.renderLoadingIndicator = function () {
69879
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.cssClasses.loadingIndicator },
69880
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_loading_indicator__WEBPACK_IMPORTED_MODULE_4__["LoadingIndicatorComponent"], null));
69881
+ };
69682
69882
  SurveyQuestionSignaturePad.prototype.renderCleanButton = function () {
69683
69883
  var _this = this;
69684
69884
  if (!this.question.canShowClearButton)
@@ -69890,6 +70090,61 @@ _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.re
69890
70090
  });
69891
70091
 
69892
70092
 
70093
+ /***/ }),
70094
+
70095
+ /***/ "./src/react/svgbundle.tsx":
70096
+ /*!*********************************!*\
70097
+ !*** ./src/react/svgbundle.tsx ***!
70098
+ \*********************************/
70099
+ /*! exports provided: SvgBundleComponent */
70100
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
70101
+
70102
+ "use strict";
70103
+ __webpack_require__.r(__webpack_exports__);
70104
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgBundleComponent", function() { return SvgBundleComponent; });
70105
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
70106
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
70107
+ /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "./src/entries/core.ts");
70108
+ var __extends = (undefined && undefined.__extends) || (function () {
70109
+ var extendStatics = function (d, b) {
70110
+ extendStatics = Object.setPrototypeOf ||
70111
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
70112
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
70113
+ return extendStatics(d, b);
70114
+ };
70115
+ return function (d, b) {
70116
+ if (typeof b !== "function" && b !== null)
70117
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
70118
+ extendStatics(d, b);
70119
+ function __() { this.constructor = d; }
70120
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
70121
+ };
70122
+ })();
70123
+
70124
+
70125
+ var SvgBundleComponent = /** @class */ (function (_super) {
70126
+ __extends(SvgBundleComponent, _super);
70127
+ function SvgBundleComponent(props) {
70128
+ var _this = _super.call(this, props) || this;
70129
+ _this.containerRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
70130
+ return _this;
70131
+ }
70132
+ SvgBundleComponent.prototype.componentDidMount = function () {
70133
+ if (!!this.containerRef.current) {
70134
+ this.containerRef.current.innerHTML = survey_core__WEBPACK_IMPORTED_MODULE_1__["SvgRegistry"].iconsRenderedHtml();
70135
+ }
70136
+ };
70137
+ SvgBundleComponent.prototype.render = function () {
70138
+ var svgStyle = {
70139
+ display: "none"
70140
+ };
70141
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { style: svgStyle, id: "sv-icon-holder-global-container", ref: this.containerRef });
70142
+ };
70143
+ return SvgBundleComponent;
70144
+ }(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component));
70145
+
70146
+
70147
+
69893
70148
  /***/ }),
69894
70149
 
69895
70150
  /***/ "./src/react/tagbox-filter.tsx":
@@ -71509,9 +71764,15 @@ var SurveyElement = /** @class */ (function (_super) {
71509
71764
  if (!el || !el.scrollIntoView)
71510
71765
  return false;
71511
71766
  var elemTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
71512
- if (elemTop < 0)
71767
+ var needScroll = elemTop < 0;
71768
+ if (!needScroll && !!window) {
71769
+ var height = window.innerHeight;
71770
+ needScroll = height > 0 && height < elemTop;
71771
+ }
71772
+ if (needScroll) {
71513
71773
  el.scrollIntoView();
71514
- return elemTop < 0;
71774
+ }
71775
+ return needScroll;
71515
71776
  };
71516
71777
  SurveyElement.GetFirstNonTextElement = function (elements, removeSpaces) {
71517
71778
  if (removeSpaces === void 0) { removeSpaces = false; }
@@ -71558,6 +71819,7 @@ var SurveyElement = /** @class */ (function (_super) {
71558
71819
  _super.prototype.onPropertyValueChanged.call(this, name, oldValue, newValue);
71559
71820
  if (name === "state") {
71560
71821
  this.updateElementCss(false);
71822
+ this.notifyStateChanged(oldValue);
71561
71823
  if (this.stateChangedCallback)
71562
71824
  this.stateChangedCallback();
71563
71825
  }
@@ -71613,12 +71875,11 @@ var SurveyElement = /** @class */ (function (_super) {
71613
71875
  },
71614
71876
  set: function (val) {
71615
71877
  this.setPropertyValue("state", val);
71616
- this.notifyStateChanged();
71617
71878
  },
71618
71879
  enumerable: false,
71619
71880
  configurable: true
71620
71881
  });
71621
- SurveyElement.prototype.notifyStateChanged = function () {
71882
+ SurveyElement.prototype.notifyStateChanged = function (prevState) {
71622
71883
  if (this.survey) {
71623
71884
  this.survey.elementContentVisibilityChanged(this);
71624
71885
  }
@@ -72653,6 +72914,7 @@ __webpack_require__.r(__webpack_exports__);
72653
72914
  /* harmony import */ var _notifier__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./notifier */ "./src/notifier.ts");
72654
72915
  /* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./header */ "./src/header.ts");
72655
72916
  /* harmony import */ var _surveytimer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./surveytimer */ "./src/surveytimer.ts");
72917
+ /* harmony import */ var _surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./surveyTaskManager */ "./src/surveyTaskManager.ts");
72656
72918
  var __extends = (undefined && undefined.__extends) || (function () {
72657
72919
  var extendStatics = function (d, b) {
72658
72920
  extendStatics = Object.setPrototypeOf ||
@@ -72694,6 +72956,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
72694
72956
 
72695
72957
 
72696
72958
 
72959
+
72697
72960
 
72698
72961
 
72699
72962
  /**
@@ -72970,6 +73233,8 @@ var SurveyModel = /** @class */ (function (_super) {
72970
73233
  * For information on event handler parameters, refer to descriptions within the interface.
72971
73234
  *
72972
73235
  * If you want to specify heading levels for all titles, use the [`titleTags`](https://surveyjs.io/form-library/documentation/api-reference/settings#titleTags) object in [global settings](https://surveyjs.io/form-library/documentation/api-reference/settings).
73236
+ *
73237
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-titletagnames/ (linkStyle))
72973
73238
  * @see onGetQuestionTitle
72974
73239
  * @see onGetQuestionNo
72975
73240
  */
@@ -73009,7 +73274,7 @@ var SurveyModel = /** @class */ (function (_super) {
73009
73274
  */
73010
73275
  _this.onGetResult = _this.addEvent();
73011
73276
  /**
73012
- * 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.
73277
+ * An event that is raised when a File Upload or Signature Pad 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.
73013
73278
  *
73014
73279
  * For information on event handler parameters, refer to descriptions within the interface.
73015
73280
  *
@@ -73031,7 +73296,7 @@ var SurveyModel = /** @class */ (function (_super) {
73031
73296
  */
73032
73297
  _this.onDownloadFile = _this.addEvent();
73033
73298
  /**
73034
- * 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.
73299
+ * An event that is raised when users clear files in a [File Upload](https://surveyjs.io/form-library/documentation/api-reference/file-model) question or clear signature in a [Signature Pad](https://surveyjs.io/form-library/documentation/api-reference/signature-pad-model) question. Use this event to delete files from your server.
73035
73300
  *
73036
73301
  * For information on event handler parameters, refer to descriptions within the interface.
73037
73302
  *
@@ -73407,6 +73672,7 @@ var SurveyModel = /** @class */ (function (_super) {
73407
73672
  _this.needRenderIcons = true;
73408
73673
  _this.skippedPages = [];
73409
73674
  _this.skeletonComponentName = "sv-skeleton";
73675
+ _this.taskManager = new _surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__["SurveyTaskManagerModel"]();
73410
73676
  if (typeof document !== "undefined") {
73411
73677
  SurveyModel.stylesManager = new _stylesmanager__WEBPACK_IMPORTED_MODULE_11__["StylesManager"]();
73412
73678
  }
@@ -73414,6 +73680,7 @@ var SurveyModel = /** @class */ (function (_super) {
73414
73680
  _this.createHtmlLocString("completedHtml", "completingSurvey", htmlCallBack);
73415
73681
  _this.createHtmlLocString("completedBeforeHtml", "completingSurveyBefore", htmlCallBack, "completed-before");
73416
73682
  _this.createHtmlLocString("loadingHtml", "loadingSurvey", htmlCallBack, "loading");
73683
+ _this.createLocalizableString("emptySurveyText", _this, true, "emptySurvey");
73417
73684
  _this.createLocalizableString("logo", _this, false);
73418
73685
  _this.createLocalizableString("startSurveyText", _this, false, true);
73419
73686
  _this.createLocalizableString("pagePrevText", _this, false, true);
@@ -74657,11 +74924,14 @@ var SurveyModel = /** @class */ (function (_super) {
74657
74924
  };
74658
74925
  Object.defineProperty(SurveyModel.prototype, "emptySurveyText", {
74659
74926
  /**
74660
- * Returns a message that is displayed when a survey does not contain visible pages or questions.
74927
+ * A message that is displayed when a survey does not contain visible pages or questions.
74661
74928
  * @see [Localization & Globalization](https://surveyjs.io/form-library/documentation/survey-localization)
74662
74929
  */
74663
74930
  get: function () {
74664
- return this.getLocalizationString("emptySurvey");
74931
+ return this.getLocalizableStringText("emptySurveyText");
74932
+ },
74933
+ set: function (val) {
74934
+ this.setLocalizableStringText("emptySurveyText", val);
74665
74935
  },
74666
74936
  enumerable: false,
74667
74937
  configurable: true
@@ -75700,7 +75970,7 @@ var SurveyModel = /** @class */ (function (_super) {
75700
75970
  },
75701
75971
  set: function (data) {
75702
75972
  this.valuesHash = {};
75703
- this.setDataCore(data);
75973
+ this.setDataCore(data, !data);
75704
75974
  },
75705
75975
  enumerable: false,
75706
75976
  configurable: true
@@ -75720,17 +75990,21 @@ var SurveyModel = /** @class */ (function (_super) {
75720
75990
  this.mergeValues(data, newData);
75721
75991
  this.setDataCore(newData);
75722
75992
  };
75723
- SurveyModel.prototype.setDataCore = function (data) {
75993
+ SurveyModel.prototype.setDataCore = function (data, clearData) {
75994
+ if (clearData === void 0) { clearData = false; }
75995
+ if (clearData) {
75996
+ this.valuesHash = {};
75997
+ }
75724
75998
  if (data) {
75725
75999
  for (var key in data) {
75726
76000
  this.setDataValueCore(this.valuesHash, key, data[key]);
75727
76001
  }
75728
76002
  }
75729
- this.updateAllQuestionsValue();
76003
+ this.updateAllQuestionsValue(clearData);
75730
76004
  this.notifyAllQuestionsOnValueChanged();
75731
76005
  this.notifyElementsOnAnyValueOrVariableChanged("");
75732
76006
  this.runConditions();
75733
- this.updateAllQuestionsValue();
76007
+ this.updateAllQuestionsValue(clearData);
75734
76008
  };
75735
76009
  SurveyModel.prototype.getStructuredData = function (includePages, level) {
75736
76010
  if (includePages === void 0) { includePages = true; }
@@ -76425,8 +76699,7 @@ var SurveyModel = /** @class */ (function (_super) {
76425
76699
  this.isLoading = false;
76426
76700
  this.completedByTriggers = undefined;
76427
76701
  if (clearData) {
76428
- this.data = null;
76429
- this.variablesHash = {};
76702
+ this.setDataCore(null, true);
76430
76703
  }
76431
76704
  this.timerModel.spent = 0;
76432
76705
  for (var i = 0; i < this.pages.length; i++) {
@@ -78242,23 +78515,29 @@ var SurveyModel = /** @class */ (function (_super) {
78242
78515
  * }
78243
78516
  * );
78244
78517
  * ```
78245
- * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model).
78246
- * @param name The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name).
78518
+ * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model) or [Signature Pad question instance](https://surveyjs.io/form-library/documentation/api-reference/signature-pad-model).
78519
+ * @param name The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name) or Signature Pad question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/signature-pad-model#name).
78247
78520
  * @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.
78248
78521
  * @param callback A callback function that allows you to access successfully uploaded files as the first argument. If any files fail to upload, the second argument contains an array of error messages.
78249
78522
  * @see onUploadFiles
78250
78523
  * @see downloadFile
78251
78524
  */
78252
78525
  SurveyModel.prototype.uploadFiles = function (question, name, files, callback) {
78526
+ var _this = this;
78253
78527
  if (this.onUploadFiles.isEmpty) {
78254
78528
  callback("error", this.getLocString("noUploadFilesHandler"));
78255
78529
  }
78256
78530
  else {
78257
- this.onUploadFiles.fire(this, {
78258
- question: question,
78259
- name: name,
78260
- files: files || [],
78261
- callback: callback,
78531
+ this.taskManager.runTask("file", function (done) {
78532
+ _this.onUploadFiles.fire(_this, {
78533
+ question: question,
78534
+ name: name,
78535
+ files: files || [],
78536
+ callback: function (status, data) {
78537
+ callback(status, data);
78538
+ done();
78539
+ },
78540
+ });
78262
78541
  });
78263
78542
  }
78264
78543
  if (this.surveyPostId) {
@@ -78677,7 +78956,7 @@ var SurveyModel = /** @class */ (function (_super) {
78677
78956
  var qValue = questions[i].value;
78678
78957
  if ((qValue === newValue && Array.isArray(qValue) && !!this.editingObj) ||
78679
78958
  !this.isTwoValueEquals(qValue, newValue)) {
78680
- questions[i].updateValueFromSurvey(newValue);
78959
+ questions[i].updateValueFromSurvey(newValue, false);
78681
78960
  }
78682
78961
  }
78683
78962
  }
@@ -78772,12 +79051,12 @@ var SurveyModel = /** @class */ (function (_super) {
78772
79051
  this.locStrsChanged();
78773
79052
  }
78774
79053
  };
78775
- SurveyModel.prototype.updateAllQuestionsValue = function () {
79054
+ SurveyModel.prototype.updateAllQuestionsValue = function (clearData) {
78776
79055
  var questions = this.getAllQuestions();
78777
79056
  for (var i = 0; i < questions.length; i++) {
78778
79057
  var q = questions[i];
78779
79058
  var valName = q.getValueName();
78780
- q.updateValueFromSurvey(this.getValue(valName));
79059
+ q.updateValueFromSurvey(this.getValue(valName), clearData);
78781
79060
  if (q.requireUpdateCommentValue) {
78782
79061
  q.updateCommentFromSurvey(this.getComment(valName));
78783
79062
  }
@@ -79196,7 +79475,7 @@ var SurveyModel = /** @class */ (function (_super) {
79196
79475
  mouseDown: function () { return _this.navigationMouseDown(); },
79197
79476
  },
79198
79477
  locTitle: this.locCompleteText,
79199
- action: function () { return _this.completeLastPage(); },
79478
+ action: function () { return _this.taskManager.waitAndExecute(function () { return _this.completeLastPage(); }); },
79200
79479
  component: defaultComponent
79201
79480
  });
79202
79481
  this.updateNavigationItemCssCallback = function () {
@@ -80524,7 +80803,7 @@ var SurveyModel = /** @class */ (function (_super) {
80524
80803
  }
80525
80804
  }
80526
80805
  else if (this.state === "running" && isStrCiEqual(layoutElement.id, "progress-" + this.progressBarType)) {
80527
- if (container === "header") {
80806
+ if (container === "center") {
80528
80807
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
80529
80808
  containerLayoutElements.push(layoutElement);
80530
80809
  }
@@ -80592,7 +80871,6 @@ var SurveyModel = /** @class */ (function (_super) {
80592
80871
  var advHeader = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
80593
80872
  advHeader.fromTheme(theme);
80594
80873
  _this.insertAdvancedHeader(advHeader);
80595
- _this.headerView = "advanced";
80596
80874
  }
80597
80875
  if (key === "isPanelless") {
80598
80876
  _this.isCompact = theme[key];
@@ -81201,6 +81479,91 @@ surveyLocalization.locales["en"] = _localization_english__WEBPACK_IMPORTED_MODUL
81201
81479
  surveyLocalization.localeNames["en"] = "english";
81202
81480
 
81203
81481
 
81482
+ /***/ }),
81483
+
81484
+ /***/ "./src/surveyTaskManager.ts":
81485
+ /*!**********************************!*\
81486
+ !*** ./src/surveyTaskManager.ts ***!
81487
+ \**********************************/
81488
+ /*! exports provided: SurveyTaskManagerModel */
81489
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
81490
+
81491
+ "use strict";
81492
+ __webpack_require__.r(__webpack_exports__);
81493
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyTaskManagerModel", function() { return SurveyTaskManagerModel; });
81494
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./src/base.ts");
81495
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
81496
+ var __extends = (undefined && undefined.__extends) || (function () {
81497
+ var extendStatics = function (d, b) {
81498
+ extendStatics = Object.setPrototypeOf ||
81499
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
81500
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
81501
+ return extendStatics(d, b);
81502
+ };
81503
+ return function (d, b) {
81504
+ if (typeof b !== "function" && b !== null)
81505
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
81506
+ extendStatics(d, b);
81507
+ function __() { this.constructor = d; }
81508
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
81509
+ };
81510
+ })();
81511
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
81512
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
81513
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
81514
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
81515
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
81516
+ };
81517
+
81518
+
81519
+ var SurveyTaskModel = /** @class */ (function () {
81520
+ function SurveyTaskModel(type) {
81521
+ this.type = type;
81522
+ this.timestamp = new Date();
81523
+ }
81524
+ return SurveyTaskModel;
81525
+ }());
81526
+ var SurveyTaskManagerModel = /** @class */ (function (_super) {
81527
+ __extends(SurveyTaskManagerModel, _super);
81528
+ function SurveyTaskManagerModel() {
81529
+ var _this = _super.call(this) || this;
81530
+ _this.taskList = [];
81531
+ _this.onAllTasksCompleted = _this.addEvent();
81532
+ return _this;
81533
+ }
81534
+ SurveyTaskManagerModel.prototype.runTask = function (type, func) {
81535
+ var _this = this;
81536
+ var task = new SurveyTaskModel(type);
81537
+ this.taskList.push(task);
81538
+ this.hasActiveTasks = true;
81539
+ func(function () { return _this.taskFinished(task); });
81540
+ return task;
81541
+ };
81542
+ SurveyTaskManagerModel.prototype.waitAndExecute = function (action) {
81543
+ if (!this.hasActiveTasks) {
81544
+ action();
81545
+ return;
81546
+ }
81547
+ this.onAllTasksCompleted.add(function () { action(); });
81548
+ };
81549
+ SurveyTaskManagerModel.prototype.taskFinished = function (task) {
81550
+ var index = this.taskList.indexOf(task);
81551
+ if (index > -1) {
81552
+ this.taskList.splice(index, 1);
81553
+ }
81554
+ if (this.hasActiveTasks && this.taskList.length == 0) {
81555
+ this.hasActiveTasks = false;
81556
+ this.onAllTasksCompleted.fire(this, {});
81557
+ }
81558
+ };
81559
+ __decorate([
81560
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
81561
+ ], SurveyTaskManagerModel.prototype, "hasActiveTasks", void 0);
81562
+ return SurveyTaskManagerModel;
81563
+ }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
81564
+
81565
+
81566
+
81204
81567
  /***/ }),
81205
81568
 
81206
81569
  /***/ "./src/surveyTimerModel.ts":
@@ -81474,6 +81837,7 @@ function createTOCListModel(survey, onAction) {
81474
81837
  }, true, items.filter(function (i) { return i.id === survey.currentPage.name; })[0] || items.filter(function (i) { return i.id === pagesSource[0].name; })[0]);
81475
81838
  listModel.allowSelection = false;
81476
81839
  listModel.locOwner = survey;
81840
+ listModel.searchEnabled = false;
81477
81841
  survey.onCurrentPageChanged.add(function (s, o) {
81478
81842
  listModel.selectedItem = items.filter(function (i) { return i.id === survey.currentPage.name; })[0];
81479
81843
  });
@@ -81633,10 +81997,6 @@ __webpack_require__.r(__webpack_exports__);
81633
81997
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgIconRegistry", function() { return SvgIconRegistry; });
81634
81998
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgRegistry", function() { return SvgRegistry; });
81635
81999
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgBundleViewModel", function() { return SvgBundleViewModel; });
81636
- /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
81637
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
81638
-
81639
-
81640
82000
  var SvgIconData = /** @class */ (function () {
81641
82001
  function SvgIconData() {
81642
82002
  }
@@ -81698,16 +82058,6 @@ var SvgIconRegistry = /** @class */ (function () {
81698
82058
  var _this = this;
81699
82059
  return Object.keys(this.icons).map(function (icon) { return _this.icons[icon]; }).join("");
81700
82060
  };
81701
- SvgIconRegistry.prototype.renderIcons = function () {
81702
- var containerId = "sv-icon-holder-global-container";
81703
- if (!!_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment && !_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.root.getElementById(containerId)) {
81704
- var iconsDiv = document.createElement("div");
81705
- iconsDiv.id = containerId;
81706
- iconsDiv.innerHTML = "<svg>" + this.iconsRenderedHtml() + "</svg>";
81707
- iconsDiv.style.display = "none";
81708
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.svgMountContainer).appendChild(iconsDiv);
81709
- }
81710
- };
81711
82061
  return SvgIconRegistry;
81712
82062
  }());
81713
82063
 
@@ -83160,13 +83510,14 @@ var __extends = (undefined && undefined.__extends) || (function () {
83160
83510
  })();
83161
83511
 
83162
83512
  var ResponsivityManager = /** @class */ (function () {
83163
- function ResponsivityManager(container, model, itemsSelector, dotsItemSize) {
83513
+ function ResponsivityManager(container, model, itemsSelector, dotsItemSize, delayedUpdateFunction) {
83164
83514
  var _this = this;
83165
83515
  if (dotsItemSize === void 0) { dotsItemSize = null; }
83166
83516
  this.container = container;
83167
83517
  this.model = model;
83168
83518
  this.itemsSelector = itemsSelector;
83169
83519
  this.dotsItemSize = dotsItemSize;
83520
+ this.delayedUpdateFunction = delayedUpdateFunction;
83170
83521
  this.resizeObserver = undefined;
83171
83522
  this.isInitialized = false;
83172
83523
  this.minDimensionConst = 56;
@@ -83217,6 +83568,16 @@ var ResponsivityManager = /** @class */ (function () {
83217
83568
  (currentAction.needSeparator ? this.separatorSize : 0)
83218
83569
  : currentAction.maxDimension;
83219
83570
  };
83571
+ ResponsivityManager.prototype.getRenderedVisibleActionsCount = function () {
83572
+ var _this = this;
83573
+ var count = 0;
83574
+ this.container.querySelectorAll(this.itemsSelector).forEach(function (item) {
83575
+ if (_this.calcItemSize(item) > 0) {
83576
+ count++;
83577
+ }
83578
+ });
83579
+ return count;
83580
+ };
83220
83581
  ResponsivityManager.prototype.calcItemsSizes = function () {
83221
83582
  var _this = this;
83222
83583
  var actions = this.model.actions;
@@ -83242,18 +83603,8 @@ var ResponsivityManager = /** @class */ (function () {
83242
83603
  if (this.isContainerVisible && !this.model.isResponsivenessDisabled) {
83243
83604
  if (!this.isInitialized) {
83244
83605
  this.model.setActionsMode("large");
83245
- var recalcItemSizes = function () {
83246
- _this.calcItemsSizes();
83247
- _this.isInitialized = true;
83248
- };
83249
- if (queueMicrotask) {
83250
- queueMicrotask(recalcItemSizes);
83251
- }
83252
- else {
83253
- recalcItemSizes();
83254
- }
83255
83606
  }
83256
- var processResponsiveness = function () {
83607
+ var processResponsiveness_1 = function () {
83257
83608
  var _a;
83258
83609
  var dotsItemSize = _this.dotsItemSize;
83259
83610
  if (!_this.dotsItemSize) {
@@ -83262,11 +83613,29 @@ var ResponsivityManager = /** @class */ (function () {
83262
83613
  }
83263
83614
  _this.model.fit(_this.getAvailableSpace(), dotsItemSize);
83264
83615
  };
83265
- if (queueMicrotask) {
83266
- queueMicrotask(processResponsiveness);
83616
+ if (!this.isInitialized) {
83617
+ var callback = function () {
83618
+ _this.calcItemsSizes();
83619
+ _this.isInitialized = true;
83620
+ processResponsiveness_1();
83621
+ };
83622
+ if (this.getRenderedVisibleActionsCount() < this.model.visibleActions.length) {
83623
+ if (this.delayedUpdateFunction) {
83624
+ this.delayedUpdateFunction(callback);
83625
+ }
83626
+ else if (queueMicrotask) {
83627
+ queueMicrotask(callback);
83628
+ }
83629
+ else {
83630
+ callback();
83631
+ }
83632
+ }
83633
+ else {
83634
+ callback();
83635
+ }
83267
83636
  }
83268
83637
  else {
83269
- processResponsiveness();
83638
+ processResponsiveness_1();
83270
83639
  }
83271
83640
  }
83272
83641
  };
@@ -83281,9 +83650,9 @@ var ResponsivityManager = /** @class */ (function () {
83281
83650
 
83282
83651
  var VerticalResponsivityManager = /** @class */ (function (_super) {
83283
83652
  __extends(VerticalResponsivityManager, _super);
83284
- function VerticalResponsivityManager(container, model, itemsSelector, dotsItemSize, minDimension) {
83653
+ function VerticalResponsivityManager(container, model, itemsSelector, dotsItemSize, minDimension, delayedUpdateFunction) {
83285
83654
  if (minDimension === void 0) { minDimension = 40; }
83286
- var _this = _super.call(this, container, model, itemsSelector, dotsItemSize) || this;
83655
+ var _this = _super.call(this, container, model, itemsSelector, dotsItemSize, delayedUpdateFunction) || this;
83287
83656
  _this.minDimensionConst = minDimension;
83288
83657
  _this.recalcMinDimensionConst = false;
83289
83658
  return _this;