survey-react 1.9.135 → 1.9.137

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.135
2
+ * surveyjs - Survey JavaScript library v1.9.137
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -2222,6 +2222,8 @@ var Base = /** @class */ (function () {
2222
2222
  * @param val A new value for the property.
2223
2223
  */
2224
2224
  Base.prototype.setPropertyValue = function (name, val) {
2225
+ if (name) {
2226
+ }
2225
2227
  if (!this.isLoadingFromJson) {
2226
2228
  var prop = this.getPropertyByName(name);
2227
2229
  if (!!prop) {
@@ -2283,7 +2285,7 @@ var Base = /** @class */ (function () {
2283
2285
  return;
2284
2286
  for (var i = 0; i < this.onPropChangeFunctions.length; i++) {
2285
2287
  if (this.onPropChangeFunctions[i].name == name)
2286
- this.onPropChangeFunctions[i].func(newValue);
2288
+ this.onPropChangeFunctions[i].func(newValue, arrayChanges);
2287
2289
  }
2288
2290
  };
2289
2291
  Base.prototype.onBindingChanged = function (oldValue, newValue) {
@@ -5419,9 +5421,13 @@ var defaultV2Css = {
5419
5421
  next: "sd-navigation__next-btn",
5420
5422
  start: "sd-navigation__start-btn",
5421
5423
  preview: "sd-navigation__preview-btn",
5422
- edit: "",
5424
+ edit: "sd-btn sd-btn--small",
5423
5425
  },
5424
5426
  panel: {
5427
+ contentFadeIn: "sd-element__content--fade-in",
5428
+ contentFadeOut: "sd-element__content--fade-out",
5429
+ fadeIn: "sd-element-wrapper--fade-in",
5430
+ fadeOut: "sd-element-wrapper--fade-out",
5425
5431
  asPage: "sd-panel--as-page",
5426
5432
  number: "sd-element__num",
5427
5433
  title: "sd-title sd-element__title sd-panel__title",
@@ -5436,7 +5442,7 @@ var defaultV2Css = {
5436
5442
  description: "sd-description sd-panel__description",
5437
5443
  container: "sd-element sd-element--complex sd-panel sd-row__panel",
5438
5444
  withFrame: "sd-element--with-frame",
5439
- content: "sd-panel__content",
5445
+ content: "sd-element__content sd-panel__content",
5440
5446
  icon: "sd-panel__icon",
5441
5447
  iconExpanded: "sd-panel__icon--expanded",
5442
5448
  footer: "sd-panel__footer",
@@ -5444,6 +5450,8 @@ var defaultV2Css = {
5444
5450
  header: "sd-panel__header sd-element__header sd-element__header--location-top",
5445
5451
  collapsed: "sd-element--collapsed",
5446
5452
  expanded: "sd-element--expanded",
5453
+ expandable: "sd-element--expandable",
5454
+ expandableAnimating: "sd-elemenet--expandable--animating",
5447
5455
  nested: "sd-element--nested sd-element--nested-with-borders",
5448
5456
  invisible: "sd-element--invisible",
5449
5457
  navigationButton: "",
@@ -5503,6 +5511,9 @@ var defaultV2Css = {
5503
5511
  progressButtonsContainerCenter: "sd-progress-buttons__container-center",
5504
5512
  progressButtonsContainer: "sd-progress-buttons__container",
5505
5513
  progressButtonsConnector: "sd-progress-buttons__connector",
5514
+ progressButtonsButton: "sd-progress-buttons__button",
5515
+ progressButtonsButtonBackground: "sd-progress-buttons__button-background",
5516
+ progressButtonsButtonContent: "sd-progress-buttons__button-content",
5506
5517
  progressButtonsHeader: "sd-progress-buttons__header",
5507
5518
  progressButtonsFooter: "sd-progress-buttons__footer",
5508
5519
  progressButtonsImageButtonLeft: "sd-progress-buttons__image-button-left",
@@ -5528,8 +5539,14 @@ var defaultV2Css = {
5528
5539
  row: "sd-row sd-clearfix",
5529
5540
  rowMultiple: "sd-row--multiple",
5530
5541
  rowCompact: "sd-row--compact",
5542
+ rowFadeIn: "sd-row--fade-in",
5543
+ rowFadeOut: "sd-row--fade-out",
5531
5544
  pageRow: "sd-page__row",
5532
5545
  question: {
5546
+ contentFadeIn: "sd-element__content--fade-in",
5547
+ contentFadeOut: "sd-element__content--fade-out",
5548
+ fadeIn: "sd-element-wrapper--fade-in",
5549
+ fadeOut: "sd-element-wrapper--fade-out",
5533
5550
  mainRoot: "sd-element sd-question sd-row__question",
5534
5551
  flowRoot: "sd-element sd-question sd-row__question sd-row__question--flow",
5535
5552
  withFrame: "sd-element--with-frame",
@@ -5539,7 +5556,7 @@ var defaultV2Css = {
5539
5556
  headerLeft: "sd-question__header--location--left",
5540
5557
  headerTop: "sd-question__header--location-top sd-element__header--location-top",
5541
5558
  headerBottom: "sd-question__header--location--bottom",
5542
- content: "sd-question__content",
5559
+ content: "sd-element__content sd-question__content",
5543
5560
  contentSupportContainerQueries: "sd-question__content--support-container-queries",
5544
5561
  contentLeft: "sd-question__content--left",
5545
5562
  titleNumInline: "sd-element__title--num-inline",
@@ -5572,6 +5589,8 @@ var defaultV2Css = {
5572
5589
  hasErrorTop: "sd-question--error-top",
5573
5590
  hasErrorBottom: "sd-question--error-bottom",
5574
5591
  collapsed: "sd-element--collapsed",
5592
+ expandable: "sd-element--expandable",
5593
+ expandableAnimating: "sd-elemenet--expandable--animating",
5575
5594
  expanded: "sd-element--expanded",
5576
5595
  nested: "sd-element--nested",
5577
5596
  invisible: "sd-element--invisible",
@@ -6768,8 +6787,6 @@ var DragDropChoices = /** @class */ (function (_super) {
6768
6787
  DragDropChoices.prototype.afterDragOver = function (dropTargetNode) {
6769
6788
  if (this.isDropTargetDoesntChanged(this.isBottom))
6770
6789
  return;
6771
- if (this.dropTarget === this.draggedElement)
6772
- return;
6773
6790
  var choices = this.getVisibleChoices();
6774
6791
  var dropTargetIndex = choices.indexOf(this.dropTarget);
6775
6792
  var draggedElementIndex = choices.indexOf(this.draggedElement);
@@ -6937,7 +6954,7 @@ var DragDropCore = /** @class */ (function () {
6937
6954
  this.domAdapter.draggedElementShortcut.style.display = "none";
6938
6955
  if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomDocumentHelper"].isAvailable())
6939
6956
  return null;
6940
- var dragOverNode = _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomDocumentHelper"].getDocument().elementFromPoint(clientX, clientY);
6957
+ var dragOverNode = this.domAdapter.documentOrShadowRoot.elementFromPoint(clientX, clientY);
6941
6958
  // this.domAdapter.draggedElementShortcut.hidden = false;
6942
6959
  this.domAdapter.draggedElementShortcut.style.display = displayProp || "block";
6943
6960
  if (!dragOverNode)
@@ -6994,7 +7011,9 @@ var DragDropCore = /** @class */ (function () {
6994
7011
  return;
6995
7012
  this.isBottom = null; //TODO need for property change trigger with guarantee but it would be better not to watch on isBottom property but have some event like onValidTargetDragOver
6996
7013
  this.isBottom = isBottom;
6997
- this.afterDragOver(dropTargetNode);
7014
+ if (this.draggedElement != this.dropTarget) {
7015
+ this.afterDragOver(dropTargetNode);
7016
+ }
6998
7017
  this.prevDropTarget = this.dropTarget;
6999
7018
  };
7000
7019
  DragDropCore.prototype.drop = function () {
@@ -7124,10 +7143,17 @@ var DragDropDOMAdapter = /** @class */ (function () {
7124
7143
  };
7125
7144
  this.draggedElementShortcut = null;
7126
7145
  }
7146
+ Object.defineProperty(DragDropDOMAdapter.prototype, "documentOrShadowRoot", {
7147
+ get: function () {
7148
+ return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root;
7149
+ },
7150
+ enumerable: false,
7151
+ configurable: true
7152
+ });
7127
7153
  Object.defineProperty(DragDropDOMAdapter.prototype, "rootElement", {
7128
7154
  get: function () {
7129
7155
  if (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["isShadowDOM"])(_settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root)) {
7130
- return _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.host;
7156
+ return this.rootContainer || _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.host;
7131
7157
  }
7132
7158
  else {
7133
7159
  return this.rootContainer || _settings__WEBPACK_IMPORTED_MODULE_2__["settings"].environment.root.documentElement || document.body;
@@ -7252,7 +7278,7 @@ var DragDropDOMAdapter = /** @class */ (function () {
7252
7278
  var displayProp = this.draggedElementShortcut.style.display;
7253
7279
  //this.draggedElementShortcut.hidden = true;
7254
7280
  this.draggedElementShortcut.style.display = "none";
7255
- var dragOverNode = document.elementFromPoint(clientX, clientY);
7281
+ var dragOverNode = this.documentOrShadowRoot.elementFromPoint(clientX, clientY);
7256
7282
  //this.draggedElementShortcut.hidden = false;
7257
7283
  this.draggedElementShortcut.style.display = displayProp || "block";
7258
7284
  var scrollableParentNode = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["findScrollableParent"])(dragOverNode);
@@ -7456,8 +7482,6 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7456
7482
  var _this = this;
7457
7483
  if (this.isDropTargetDoesntChanged(this.isBottom))
7458
7484
  return;
7459
- if (this.dropTarget === this.draggedElement)
7460
- return;
7461
7485
  var dropTargetIndex;
7462
7486
  var draggedElementIndex;
7463
7487
  var draggedRenderedRow;
@@ -7565,10 +7589,6 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7565
7589
  var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7566
7590
  node.style.cursor = "not-allowed";
7567
7591
  };
7568
- _this.doDrop = function () {
7569
- _this.parentElement.setValue();
7570
- return _this.parentElement;
7571
- };
7572
7592
  return _this;
7573
7593
  }
7574
7594
  Object.defineProperty(DragDropRankingChoices.prototype, "draggedElementType", {
@@ -7671,6 +7691,10 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7671
7691
  this.parentElement.currentDropTarget = this.draggedElement;
7672
7692
  _super.prototype.ghostPositionChanged.call(this);
7673
7693
  };
7694
+ DragDropRankingChoices.prototype.doDrop = function () {
7695
+ this.parentElement.setValue();
7696
+ return this.parentElement;
7697
+ };
7674
7698
  DragDropRankingChoices.prototype.clear = function () {
7675
7699
  if (!!this.parentElement) {
7676
7700
  this.parentElement.dropTargetNodeMove = null;
@@ -7695,7 +7719,8 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7695
7719
  "use strict";
7696
7720
  __webpack_require__.r(__webpack_exports__);
7697
7721
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return DragDropRankingSelectToRank; });
7698
- /* harmony import */ var _ranking_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ranking-choices */ "./src/dragdrop/ranking-choices.ts");
7722
+ /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../itemvalue */ "./src/itemvalue.ts");
7723
+ /* harmony import */ var _ranking_choices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ranking-choices */ "./src/dragdrop/ranking-choices.ts");
7699
7724
  var __extends = (undefined && undefined.__extends) || (function () {
7700
7725
  var extendStatics = function (d, b) {
7701
7726
  extendStatics = Object.setPrototypeOf ||
@@ -7712,10 +7737,37 @@ var __extends = (undefined && undefined.__extends) || (function () {
7712
7737
  };
7713
7738
  })();
7714
7739
 
7740
+
7715
7741
  var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7716
7742
  __extends(DragDropRankingSelectToRank, _super);
7717
7743
  function DragDropRankingSelectToRank() {
7718
- return _super !== null && _super.apply(this, arguments) || this;
7744
+ var _this = _super !== null && _super.apply(this, arguments) || this;
7745
+ _this.selectToRank = function (questionModel, fromIndex, toIndex) {
7746
+ var rankingChoices = [].concat(questionModel.rankingChoices);
7747
+ var unRankingChoices = questionModel.unRankingChoices;
7748
+ var item = unRankingChoices[fromIndex];
7749
+ rankingChoices.splice(toIndex, 0, item);
7750
+ _this.updateChoices(questionModel, rankingChoices);
7751
+ };
7752
+ _this.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7753
+ var rankingChoices = [].concat(questionModel.rankingChoices);
7754
+ rankingChoices.splice(fromIndex, 1);
7755
+ _this.updateChoices(questionModel, rankingChoices);
7756
+ };
7757
+ _this.reorderRankedItem = function (questionModel, fromIndex, toIndex, dropTargetNode) {
7758
+ var rankingChoices = questionModel.rankingChoices;
7759
+ var item = rankingChoices[fromIndex];
7760
+ if (fromIndex == toIndex)
7761
+ return;
7762
+ questionModel.isValueSetByUser = true;
7763
+ rankingChoices.splice(fromIndex, 1);
7764
+ rankingChoices.splice(toIndex, 0, item);
7765
+ questionModel.setPropertyValue("rankingChoices", rankingChoices);
7766
+ if (dropTargetNode) {
7767
+ _this.doUIEffects(dropTargetNode, fromIndex, toIndex);
7768
+ }
7769
+ };
7770
+ return _this;
7719
7771
  }
7720
7772
  DragDropRankingSelectToRank.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7721
7773
  if (dragOverNode.dataset.ranking === "from-container" || dragOverNode.dataset.ranking === "to-container") {
@@ -7769,18 +7821,34 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7769
7821
  DragDropRankingSelectToRank.prototype.doRankBetween = function (dropTargetNode, fromChoicesArray, toChoicesArray, rankFunction) {
7770
7822
  var questionModel = this.parentElement;
7771
7823
  var _a = this.getIndixies(questionModel, fromChoicesArray, toChoicesArray), fromIndex = _a.fromIndex, toIndex = _a.toIndex;
7772
- rankFunction(questionModel, fromIndex, toIndex);
7773
- this.doUIEffects(dropTargetNode, fromIndex, toIndex);
7824
+ rankFunction(questionModel, fromIndex, toIndex, dropTargetNode);
7774
7825
  };
7775
7826
  DragDropRankingSelectToRank.prototype.getIndixies = function (model, fromChoicesArray, toChoicesArray) {
7776
7827
  var fromIndex = fromChoicesArray.indexOf(this.draggedElement);
7777
7828
  var toIndex = toChoicesArray.indexOf(this.dropTarget);
7778
7829
  if (toIndex === -1) {
7779
7830
  var length_1 = model.value.length;
7780
- toIndex = fromChoicesArray === toChoicesArray ? length_1 - 1 : length_1;
7831
+ toIndex = length_1;
7832
+ }
7833
+ else if (fromChoicesArray == toChoicesArray) {
7834
+ if (!this.isBottom && fromIndex < toIndex)
7835
+ toIndex--;
7836
+ if (this.isBottom && fromIndex > toIndex)
7837
+ toIndex++;
7838
+ }
7839
+ else if (fromChoicesArray != toChoicesArray) {
7840
+ if (this.isBottom)
7841
+ toIndex++;
7781
7842
  }
7782
7843
  return { fromIndex: fromIndex, toIndex: toIndex };
7783
7844
  };
7845
+ DragDropRankingSelectToRank.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
7846
+ if (this.dropTarget instanceof _itemvalue__WEBPACK_IMPORTED_MODULE_0__["ItemValue"] && this.draggedElement !== this.dropTarget) {
7847
+ var rect = dropTargetNode.getBoundingClientRect();
7848
+ return clientY >= rect.y + rect.height / 2;
7849
+ }
7850
+ return _super.prototype.calculateIsBottom.call(this, clientY);
7851
+ };
7784
7852
  DragDropRankingSelectToRank.prototype.doUIEffects = function (dropTargetNode, fromIndex, toIndex) {
7785
7853
  var questionModel = this.parentElement;
7786
7854
  var isDropToEmptyRankedContainer = this.dropTarget === "to-container" && questionModel.isEmpty();
@@ -7829,30 +7897,21 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7829
7897
  enumerable: false,
7830
7898
  configurable: true
7831
7899
  });
7832
- DragDropRankingSelectToRank.prototype.selectToRank = function (questionModel, fromIndex, toIndex) {
7833
- var rankingChoices = questionModel.rankingChoices;
7834
- var unRankingChoices = questionModel.unRankingChoices;
7835
- var item = unRankingChoices[fromIndex];
7900
+ DragDropRankingSelectToRank.prototype.updateChoices = function (questionModel, rankingChoices) {
7836
7901
  questionModel.isValueSetByUser = true;
7837
- rankingChoices.splice(toIndex, 0, item);
7838
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7902
+ questionModel.rankingChoices = rankingChoices;
7903
+ questionModel.updateUnRankingChoices(rankingChoices);
7839
7904
  };
7840
- DragDropRankingSelectToRank.prototype.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7841
- var rankingChoices = questionModel.rankingChoices;
7842
- questionModel.isValueSetByUser = true;
7843
- rankingChoices.splice(fromIndex, 1);
7844
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7845
- };
7846
- DragDropRankingSelectToRank.prototype.reorderRankedItem = function (questionModel, fromIndex, toIndex) {
7847
- var rankingChoices = questionModel.rankingChoices;
7848
- var item = rankingChoices[fromIndex];
7849
- questionModel.isValueSetByUser = true;
7850
- rankingChoices.splice(fromIndex, 1);
7851
- rankingChoices.splice(toIndex, 0, item);
7852
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7905
+ DragDropRankingSelectToRank.prototype.clear = function () {
7906
+ var questionModel = this.parentElement;
7907
+ if (!!questionModel) {
7908
+ questionModel.rankingChoicesAnimation.cancel();
7909
+ questionModel.unRankingChoicesAnimation.cancel();
7910
+ }
7911
+ _super.prototype.clear.call(this);
7853
7912
  };
7854
7913
  return DragDropRankingSelectToRank;
7855
- }(_ranking_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingChoices"]));
7914
+ }(_ranking_choices__WEBPACK_IMPORTED_MODULE_1__["DragDropRankingChoices"]));
7856
7915
 
7857
7916
 
7858
7917
 
@@ -9611,8 +9670,8 @@ __webpack_require__.r(__webpack_exports__);
9611
9670
 
9612
9671
  var Version;
9613
9672
  var ReleaseDate;
9614
- Version = "" + "1.9.135";
9615
- ReleaseDate = "" + "2024-03-19";
9673
+ Version = "" + "1.9.137";
9674
+ ReleaseDate = "" + "2024-04-02";
9616
9675
  function checkLibraryVersion(ver, libraryName) {
9617
9676
  if (Version != ver) {
9618
9677
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9793,7 +9852,7 @@ function checkPrefix(prefix) {
9793
9852
  /*!**************************************!*\
9794
9853
  !*** ./src/entries/core-wo-model.ts ***!
9795
9854
  \**************************************/
9796
- /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, 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, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, 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 */
9855
+ /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, 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, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9797
9856
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9798
9857
 
9799
9858
  "use strict";
@@ -10238,16 +10297,27 @@ __webpack_require__.r(__webpack_exports__);
10238
10297
 
10239
10298
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["ActionDropdownViewModel"]; });
10240
10299
 
10241
- /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../actions/adaptive-container */ "./src/actions/adaptive-container.ts");
10242
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_8__["AdaptiveActionContainer"]; });
10300
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/animation */ "./src/utils/animation.ts");
10301
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationUtils"]; });
10302
+
10303
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationPropertyUtils"]; });
10243
10304
 
10244
- /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../actions/container */ "./src/actions/container.ts");
10245
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_9__["defaultActionBarCss"]; });
10305
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroupUtils"]; });
10246
10306
 
10247
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_9__["ActionContainer"]; });
10307
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationBoolean"]; });
10248
10308
 
10249
- /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
10250
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_10__["DragOrClickHelper"]; });
10309
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroup"]; });
10310
+
10311
+ /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../actions/adaptive-container */ "./src/actions/adaptive-container.ts");
10312
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__["AdaptiveActionContainer"]; });
10313
+
10314
+ /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../actions/container */ "./src/actions/container.ts");
10315
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_10__["defaultActionBarCss"]; });
10316
+
10317
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_10__["ActionContainer"]; });
10318
+
10319
+ /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
10320
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__["DragOrClickHelper"]; });
10251
10321
 
10252
10322
  // model
10253
10323
 
@@ -10266,13 +10336,14 @@ __webpack_require__.r(__webpack_exports__);
10266
10336
 
10267
10337
 
10268
10338
 
10339
+
10269
10340
  /***/ }),
10270
10341
 
10271
10342
  /***/ "./src/entries/core.ts":
10272
10343
  /*!*****************************!*\
10273
10344
  !*** ./src/entries/core.ts ***!
10274
10345
  \*****************************/
10275
- /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, 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, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, 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 */
10346
+ /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, 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, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10276
10347
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10277
10348
 
10278
10349
  "use strict";
@@ -10710,6 +10781,16 @@ __webpack_require__.r(__webpack_exports__);
10710
10781
 
10711
10782
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ActionDropdownViewModel"]; });
10712
10783
 
10784
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationUtils"]; });
10785
+
10786
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationPropertyUtils"]; });
10787
+
10788
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationGroupUtils"]; });
10789
+
10790
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationBoolean"]; });
10791
+
10792
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationGroup"]; });
10793
+
10713
10794
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
10714
10795
 
10715
10796
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -11143,7 +11224,7 @@ __webpack_require__.r(__webpack_exports__);
11143
11224
  /*!******************************!*\
11144
11225
  !*** ./src/entries/react.ts ***!
11145
11226
  \******************************/
11146
- /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, 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, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, 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, SurveyQuestionMatrixCell, 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 */
11227
+ /*! 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, QuestionMatrixDropdownRenderedErrorRow, 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, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, 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, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup, 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, SurveyQuestionMatrixCell, 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 */
11147
11228
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11148
11229
 
11149
11230
  "use strict";
@@ -11581,6 +11662,16 @@ __webpack_require__.r(__webpack_exports__);
11581
11662
 
11582
11663
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ActionDropdownViewModel"]; });
11583
11664
 
11665
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationUtils"]; });
11666
+
11667
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationPropertyUtils"]; });
11668
+
11669
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationGroupUtils"]; });
11670
+
11671
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationBoolean"]; });
11672
+
11673
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationGroup"]; });
11674
+
11584
11675
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
11585
11676
 
11586
11677
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -24150,7 +24241,7 @@ var germanSurveyStrings = {
24150
24241
  questionsProgressText: "{0}/{1} Fragen beantwortet",
24151
24242
  emptySurvey: "Es sind keine Fragen vorhanden.",
24152
24243
  completingSurvey: "Vielen Dank, dass Sie die Umfrage abgeschlossen haben!",
24153
- completingSurveyBefore: "Wir haben festgestellt, dass Sie diese Umfrage bereits abgeschlossen haben.",
24244
+ completingSurveyBefore: "Aus unseren Unterlagen geht hervor, dass Sie diese Umfrage bereits abgeschlossen haben.",
24154
24245
  loadingSurvey: "Umfrage wird geladen...",
24155
24246
  placeholder: "Bitte auswählen...",
24156
24247
  ratingOptionsCaption: "Tippen Sie hier, um zu bewerten...",
@@ -24486,7 +24577,7 @@ var hebrewSurveyStrings = {
24486
24577
  timerLimitAll: "הוצאת {0} מתוך {1} בדף זה ו- {2} מתוך {3} בסך הכל.",
24487
24578
  timerLimitPage: "הוצאת {0} מתוך {1} בדף זה.",
24488
24579
  timerLimitSurvey: "הוצאת סכום כולל של {0} מתוך {1}.",
24489
- clearCaption: "ברור",
24580
+ clearCaption: "לנקות",
24490
24581
  signaturePlaceHolder: "חתום כאן",
24491
24582
  chooseFileCaption: "בחר קובץ",
24492
24583
  takePhotoCaption: "צלם תמונה",
@@ -29936,7 +30027,6 @@ __webpack_require__.r(__webpack_exports__);
29936
30027
  var InputElementAdapter = /** @class */ (function () {
29937
30028
  function InputElementAdapter(inputMaskInstance, inputElement, value) {
29938
30029
  var _this = this;
29939
- if (value === void 0) { value = ""; }
29940
30030
  this.inputMaskInstance = inputMaskInstance;
29941
30031
  this.inputElement = inputElement;
29942
30032
  this.prevUnmaskedValue = undefined;
@@ -29955,8 +30045,15 @@ var InputElementAdapter = /** @class */ (function () {
29955
30045
  event.preventDefault();
29956
30046
  }
29957
30047
  };
29958
- this.inputElement.value = inputMaskInstance.getMaskedValue(value);
29959
- this.prevUnmaskedValue = value;
30048
+ var _value = value;
30049
+ if (_value === null || _value === undefined) {
30050
+ _value = "";
30051
+ }
30052
+ else if (typeof _value !== "string") {
30053
+ _value = _value.toString();
30054
+ }
30055
+ this.inputElement.value = inputMaskInstance.getMaskedValue(_value);
30056
+ this.prevUnmaskedValue = _value;
29960
30057
  inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);
29961
30058
  this.addInputEventListener();
29962
30059
  }
@@ -31606,7 +31703,7 @@ var PageModel = /** @class */ (function (_super) {
31606
31703
  configurable: true
31607
31704
  });
31608
31705
  PageModel.prototype.calcCssClasses = function (css) {
31609
- var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "" };
31706
+ var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "", rowFadeIn: "", rowFadeOut: "", rowFadeOutActive: "" };
31610
31707
  this.copyCssClasses(classes.page, css.page);
31611
31708
  this.copyCssClasses(classes.error, css.error);
31612
31709
  if (!!css.pageTitle) {
@@ -31627,6 +31724,15 @@ var PageModel = /** @class */ (function (_super) {
31627
31724
  if (!!css.rowCompact) {
31628
31725
  classes.rowCompact = css.rowCompact;
31629
31726
  }
31727
+ if (!!css.rowFadeIn) {
31728
+ classes.rowFadeIn = css.rowFadeIn;
31729
+ }
31730
+ if (!!css.rowFadeOut) {
31731
+ classes.rowFadeOut = css.rowFadeOut;
31732
+ }
31733
+ if (!!css.rowFadeOutActive) {
31734
+ classes.rowFadeOutActive = css.rowFadeOutActive;
31735
+ }
31630
31736
  if (this.survey) {
31631
31737
  this.survey.updatePageCssClasses(this, classes);
31632
31738
  }
@@ -31852,7 +31958,8 @@ __webpack_require__.r(__webpack_exports__);
31852
31958
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
31853
31959
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
31854
31960
  /* harmony import */ var _drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./drag-drop-panel-helper-v1 */ "./src/drag-drop-panel-helper-v1.ts");
31855
- /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
31961
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
31962
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
31856
31963
  var __extends = (undefined && undefined.__extends) || (function () {
31857
31964
  var extendStatics = function (d, b) {
31858
31965
  extendStatics = Object.setPrototypeOf ||
@@ -31891,6 +31998,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
31891
31998
 
31892
31999
 
31893
32000
 
32001
+
31894
32002
  var QuestionRowModel = /** @class */ (function (_super) {
31895
32003
  __extends(QuestionRowModel, _super);
31896
32004
  function QuestionRowModel(panel) {
@@ -31898,6 +32006,10 @@ var QuestionRowModel = /** @class */ (function (_super) {
31898
32006
  _this.panel = panel;
31899
32007
  _this._scrollableParent = undefined;
31900
32008
  _this._updateVisibility = undefined;
32009
+ _this.visibleElementsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__["AnimationGroup"](_this.getVisibleElementsAnimationOptions(), function (value) {
32010
+ _this.setPropertyValue("visibleElements", value);
32011
+ _this.setWidth();
32012
+ }, function () { return _this.visibleElements; });
31901
32013
  _this.idValue = QuestionRowModel.getRowId();
31902
32014
  _this.visible = panel.areInvisibleElementsShowing;
31903
32015
  _this.createNewArray("elements");
@@ -31910,12 +32022,12 @@ var QuestionRowModel = /** @class */ (function (_super) {
31910
32022
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
31911
32023
  var _this = this;
31912
32024
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
31913
- if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_11__["DomDocumentHelper"].isAvailable())
32025
+ if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomDocumentHelper"].isAvailable())
31914
32026
  return;
31915
32027
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
31916
32028
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
31917
- if (this._scrollableParent === _global_variables_utils__WEBPACK_IMPORTED_MODULE_11__["DomDocumentHelper"].getDocumentElement()) {
31918
- this._scrollableParent = _global_variables_utils__WEBPACK_IMPORTED_MODULE_11__["DomWindowHelper"].getWindow();
32029
+ if (this._scrollableParent === _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomDocumentHelper"].getDocumentElement()) {
32030
+ this._scrollableParent = _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomWindowHelper"].getWindow();
31919
32031
  }
31920
32032
  var hasScroll = this._scrollableParent.scrollHeight > this._scrollableParent.clientHeight;
31921
32033
  this.isNeedRender = !hasScroll;
@@ -31964,6 +32076,9 @@ var QuestionRowModel = /** @class */ (function (_super) {
31964
32076
  enumerable: false,
31965
32077
  configurable: true
31966
32078
  });
32079
+ QuestionRowModel.prototype.equalsCore = function (obj) {
32080
+ return this == obj;
32081
+ };
31967
32082
  Object.defineProperty(QuestionRowModel.prototype, "elements", {
31968
32083
  get: function () {
31969
32084
  return this.getPropertyValue("elements");
@@ -31971,10 +32086,48 @@ var QuestionRowModel = /** @class */ (function (_super) {
31971
32086
  enumerable: false,
31972
32087
  configurable: true
31973
32088
  });
32089
+ QuestionRowModel.prototype.getVisibleElementsAnimationOptions = function () {
32090
+ var _this = this;
32091
+ var beforeRunAnimation = function (el) {
32092
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
32093
+ el.style.setProperty("--animation-width", Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["getElementWidth"])(el) + "px");
32094
+ };
32095
+ return {
32096
+ isAnimationEnabled: function () { var _a; return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].animationEnabled && ((_a = _this.panel) === null || _a === void 0 ? void 0 : _a.animationAllowed) && _this.visible; },
32097
+ getAnimatedElement: function (element) { return element.getWrapperElement(); },
32098
+ getLeaveOptions: function (element) {
32099
+ var surveyElement = element;
32100
+ var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;
32101
+ return {
32102
+ cssClass: cssClasses.fadeOut,
32103
+ onBeforeRunAnimation: beforeRunAnimation
32104
+ };
32105
+ },
32106
+ getEnterOptions: function (element) {
32107
+ var surveyElement = element;
32108
+ var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;
32109
+ return {
32110
+ cssClass: cssClasses.fadeIn,
32111
+ onBeforeRunAnimation: beforeRunAnimation
32112
+ };
32113
+ }
32114
+ };
32115
+ };
31974
32116
  Object.defineProperty(QuestionRowModel.prototype, "visibleElements", {
31975
32117
  get: function () {
31976
32118
  return this.getPropertyValue("visibleElements");
31977
32119
  },
32120
+ set: function (val) {
32121
+ if (!val.length) {
32122
+ this.visible = false;
32123
+ this.visibleElementsAnimation.cancel();
32124
+ return;
32125
+ }
32126
+ else {
32127
+ this.visible = true;
32128
+ }
32129
+ this.visibleElementsAnimation.sync(val);
32130
+ },
31978
32131
  enumerable: false,
31979
32132
  configurable: true
31980
32133
  });
@@ -31984,6 +32137,7 @@ var QuestionRowModel = /** @class */ (function (_super) {
31984
32137
  },
31985
32138
  set: function (val) {
31986
32139
  this.setPropertyValue("visible", val);
32140
+ this.onVisibleChangedCallback && this.onVisibleChangedCallback();
31987
32141
  },
31988
32142
  enumerable: false,
31989
32143
  configurable: true
@@ -31999,9 +32153,14 @@ var QuestionRowModel = /** @class */ (function (_super) {
31999
32153
  configurable: true
32000
32154
  });
32001
32155
  QuestionRowModel.prototype.updateVisible = function () {
32002
- var isVisible = this.calcVisible();
32003
- this.setWidth();
32004
- this.visible = isVisible;
32156
+ var visElements = [];
32157
+ for (var i = 0; i < this.elements.length; i++) {
32158
+ if (this.elements[i].isVisible) {
32159
+ visElements.push(this.elements[i]);
32160
+ }
32161
+ }
32162
+ this.visibleElements = visElements;
32163
+ return;
32005
32164
  };
32006
32165
  QuestionRowModel.prototype.addElement = function (q) {
32007
32166
  this.elements.push(q);
@@ -32075,27 +32234,6 @@ var QuestionRowModel = /** @class */ (function (_super) {
32075
32234
  QuestionRowModel.prototype.getRenderedWidthFromWidth = function (width) {
32076
32235
  return _helpers__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isNumber(width) ? width + "px" : width;
32077
32236
  };
32078
- QuestionRowModel.prototype.calcVisible = function () {
32079
- var visElements = [];
32080
- for (var i = 0; i < this.elements.length; i++) {
32081
- if (this.elements[i].isVisible) {
32082
- visElements.push(this.elements[i]);
32083
- }
32084
- }
32085
- if (this.needToUpdateVisibleElements(visElements)) {
32086
- this.setPropertyValue("visibleElements", visElements);
32087
- }
32088
- return visElements.length > 0;
32089
- };
32090
- QuestionRowModel.prototype.needToUpdateVisibleElements = function (visElements) {
32091
- if (visElements.length !== this.visibleElements.length)
32092
- return true;
32093
- for (var i = 0; i < visElements.length; i++) {
32094
- if (visElements[i] !== this.visibleElements[i])
32095
- return true;
32096
- }
32097
- return false;
32098
- };
32099
32237
  QuestionRowModel.prototype.dispose = function () {
32100
32238
  _super.prototype.dispose.call(this);
32101
32239
  this.stopLazyRendering();
@@ -32104,10 +32242,16 @@ var QuestionRowModel = /** @class */ (function (_super) {
32104
32242
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
32105
32243
  .append(this.panel.cssClasses.row)
32106
32244
  .append(this.panel.cssClasses.rowCompact, this.panel["isCompact"])
32107
- .append(this.panel.cssClasses.pageRow, this.panel.isPage || (!!this.panel.originalPage && !this.panel.survey.isShowingPreview))
32245
+ .append(this.panel.cssClasses.pageRow, this.panel.isPage || (!!this.panel.originalPage))
32108
32246
  .append(this.panel.cssClasses.rowMultiple, this.visibleElements.length > 1)
32109
32247
  .toString();
32110
32248
  };
32249
+ QuestionRowModel.prototype.setRootElement = function (element) {
32250
+ this.rootElement = element;
32251
+ };
32252
+ QuestionRowModel.prototype.getRootElement = function () {
32253
+ return this.rootElement;
32254
+ };
32111
32255
  QuestionRowModel.rowCounter = 100;
32112
32256
  __decorate([
32113
32257
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: null })
@@ -32125,9 +32269,13 @@ var PanelModelBase = /** @class */ (function (_super) {
32125
32269
  var _this = _super.call(this, name) || this;
32126
32270
  _this.isQuestionsReady = false;
32127
32271
  _this.questionsValue = new Array();
32272
+ _this.rowsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__["AnimationGroup"](_this.getRowsAnimationOptions(), function (value) {
32273
+ _this.setPropertyValue("visibleRows", value);
32274
+ }, function () { return _this.visibleRows; });
32128
32275
  _this.isRandomizing = false;
32129
32276
  _this.locCountRowUpdates = 0;
32130
- _this.createNewArray("rows");
32277
+ _this.createNewArray("rows", function (el, index) { _this.onAddRow(el); }, function (el) { _this.onRemoveRow(el); });
32278
+ _this.createNewArray("visibleRows");
32131
32279
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
32132
32280
  _this.id = PanelModelBase.getPanelId();
32133
32281
  _this.addExpressionProperty("visibleIf", function (obj, res) { _this.visible = res === true; }, function (obj) { return !_this.areInvisibleElementsShowing; });
@@ -32147,16 +32295,62 @@ var PanelModelBase = /** @class */ (function (_super) {
32147
32295
  PanelModelBase.getPanelId = function () {
32148
32296
  return "sp_" + PanelModelBase.panelCounter++;
32149
32297
  };
32298
+ PanelModelBase.prototype.onAddRow = function (row) {
32299
+ var _this = this;
32300
+ this.onRowVisibleChanged();
32301
+ row.onVisibleChangedCallback = function () { return _this.onRowVisibleChanged(); };
32302
+ };
32303
+ PanelModelBase.prototype.getRowsAnimationOptions = function () {
32304
+ var _this = this;
32305
+ var beforeRunAnimation = function (el) {
32306
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
32307
+ };
32308
+ return {
32309
+ isAnimationEnabled: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].animationEnabled && _this.animationAllowed; },
32310
+ getAnimatedElement: function (row) { return row.getRootElement(); },
32311
+ getLeaveOptions: function (_) {
32312
+ return { cssClass: _this.cssClasses.rowFadeOut,
32313
+ onBeforeRunAnimation: beforeRunAnimation
32314
+ };
32315
+ },
32316
+ getEnterOptions: function (_) {
32317
+ return {
32318
+ cssClass: _this.cssClasses.rowFadeIn,
32319
+ onBeforeRunAnimation: beforeRunAnimation
32320
+ };
32321
+ }
32322
+ };
32323
+ };
32324
+ Object.defineProperty(PanelModelBase.prototype, "visibleRows", {
32325
+ get: function () {
32326
+ return this.getPropertyValue("visibleRows");
32327
+ },
32328
+ set: function (val) {
32329
+ this.rowsAnimation.sync(val);
32330
+ },
32331
+ enumerable: false,
32332
+ configurable: true
32333
+ });
32334
+ PanelModelBase.prototype.onRemoveRow = function (row) {
32335
+ row.visibleElementsAnimation.cancel();
32336
+ this.visibleRows = this.rows.filter(function (row) { return row.visible; });
32337
+ row.onVisibleChangedCallback = undefined;
32338
+ };
32339
+ PanelModelBase.prototype.onRowVisibleChanged = function () {
32340
+ this.visibleRows = this.rows.filter(function (row) { return row.visible; });
32341
+ };
32150
32342
  PanelModelBase.prototype.getType = function () {
32151
32343
  return "panelbase";
32152
32344
  };
32153
32345
  PanelModelBase.prototype.setSurveyImpl = function (value, isLight) {
32346
+ this.animationAllowed = false;
32154
32347
  _super.prototype.setSurveyImpl.call(this, value, isLight);
32155
32348
  if (this.isDesignMode)
32156
32349
  this.onVisibleChanged();
32157
32350
  for (var i = 0; i < this.elements.length; i++) {
32158
32351
  this.elements[i].setSurveyImpl(value, isLight);
32159
32352
  }
32353
+ this.animationAllowed = true;
32160
32354
  };
32161
32355
  PanelModelBase.prototype.endLoadingFromJson = function () {
32162
32356
  _super.prototype.endLoadingFromJson.call(this);
@@ -32372,7 +32566,7 @@ var PanelModelBase = /** @class */ (function (_super) {
32372
32566
  configurable: true
32373
32567
  });
32374
32568
  PanelModelBase.prototype.calcCssClasses = function (css) {
32375
- var classes = { panel: {}, error: {}, row: "", rowMultiple: "", pageRow: "", rowCompact: "" };
32569
+ var classes = { panel: {}, error: {}, row: "", rowFadeIn: "", rowFadeOut: "", rowFadeOutActive: "", rowMultiple: "", pageRow: "", rowCompact: "" };
32376
32570
  this.copyCssClasses(classes.panel, css.panel);
32377
32571
  this.copyCssClasses(classes.error, css.error);
32378
32572
  if (!!css.pageRow) {
@@ -32384,6 +32578,15 @@ var PanelModelBase = /** @class */ (function (_super) {
32384
32578
  if (!!css.row) {
32385
32579
  classes.row = css.row;
32386
32580
  }
32581
+ if (!!css.rowFadeIn) {
32582
+ classes.rowFadeIn = css.rowFadeIn;
32583
+ }
32584
+ if (!!css.rowFadeOut) {
32585
+ classes.rowFadeOut = css.rowFadeOut;
32586
+ }
32587
+ if (!!css.rowFadeOutActive) {
32588
+ classes.rowFadeOutActive = css.rowFadeOutActive;
32589
+ }
32387
32590
  if (!!css.rowMultiple) {
32388
32591
  classes.rowMultiple = css.rowMultiple;
32389
32592
  }
@@ -32962,10 +33165,13 @@ var PanelModelBase = /** @class */ (function (_super) {
32962
33165
  return new QuestionRowModel(this);
32963
33166
  };
32964
33167
  PanelModelBase.prototype.onSurveyLoad = function () {
33168
+ this.animationAllowed = false;
33169
+ _super.prototype.onSurveyLoad.call(this);
32965
33170
  for (var i = 0; i < this.elements.length; i++) {
32966
33171
  this.elements[i].onSurveyLoad();
32967
33172
  }
32968
33173
  this.onElementVisibilityChanged(this);
33174
+ this.animationAllowed = true;
32969
33175
  };
32970
33176
  PanelModelBase.prototype.onFirstRendering = function () {
32971
33177
  _super.prototype.onFirstRendering.call(this);
@@ -32999,7 +33205,9 @@ var PanelModelBase = /** @class */ (function (_super) {
32999
33205
  PanelModelBase.prototype.onRowsChanged = function () {
33000
33206
  if (this.isLoadingFromJson)
33001
33207
  return;
33208
+ this.animationAllowed = false;
33002
33209
  this.setArrayPropertyDirectly("rows", this.buildRows());
33210
+ this.animationAllowed = true;
33003
33211
  };
33004
33212
  PanelModelBase.prototype.blockRowsUpdates = function () {
33005
33213
  this.locCountRowUpdates++;
@@ -33319,9 +33527,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33319
33527
  enumerable: false,
33320
33528
  configurable: true
33321
33529
  });
33322
- PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {
33323
- if (!this.visible)
33324
- return false;
33530
+ PanelModelBase.prototype.getIsContentVisible = function (exceptionQuestion) {
33531
+ if (this.areInvisibleElementsShowing)
33532
+ return true;
33325
33533
  for (var i = 0; i < this.elements.length; i++) {
33326
33534
  if (this.elements[i] == exceptionQuestion)
33327
33535
  continue;
@@ -33330,6 +33538,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33330
33538
  }
33331
33539
  return false;
33332
33540
  };
33541
+ PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {
33542
+ return this.visible && this.getIsContentVisible(exceptionQuestion);
33543
+ };
33333
33544
  PanelModelBase.prototype.setVisibleIndex = function (index) {
33334
33545
  if (!this.isVisible || index < 0) {
33335
33546
  this.resetVisibleIndexes();
@@ -33997,6 +34208,7 @@ var PanelModel = /** @class */ (function (_super) {
33997
34208
  id: "cancel-preview",
33998
34209
  locTitle: this.survey.locEditText,
33999
34210
  innerCss: this.survey.cssNavigationEdit,
34211
+ component: "sv-nav-btn",
34000
34212
  action: function () { _this.cancelPreview(); }
34001
34213
  });
34002
34214
  }
@@ -34077,7 +34289,7 @@ var PanelModel = /** @class */ (function (_super) {
34077
34289
  };
34078
34290
  Object.defineProperty(PanelModel.prototype, "showPanelAsPage", {
34079
34291
  get: function () {
34080
- return !!this.originalPage && !this.survey.isShowingPreview;
34292
+ return !!this.originalPage;
34081
34293
  },
34082
34294
  enumerable: false,
34083
34295
  configurable: true
@@ -35699,7 +35911,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
35699
35911
  .append("sv-popup--dropdown-overlay", this.isOverlay && this.model.overlayDisplayMode !== "overlay")
35700
35912
  .append("sv-popup--tablet", this.isTablet && this.isOverlay)
35701
35913
  .append("sv-popup--show-pointer", !this.isOverlay && this.showHeader)
35702
- .append("sv-popup--" + this.popupDirection, !this.isOverlay && this.showHeader);
35914
+ .append("sv-popup--" + this.popupDirection, !this.isOverlay && (this.showHeader || this.popupDirection == "top" || this.popupDirection == "bottom"));
35703
35915
  };
35704
35916
  PopupDropdownViewModel.prototype.getShowHeader = function () {
35705
35917
  return this.model.showPointer && !this.isOverlay;
@@ -36381,12 +36593,7 @@ __webpack_require__.r(__webpack_exports__);
36381
36593
 
36382
36594
  function createPopupModalViewModel(options, rootElement) {
36383
36595
  var _a;
36384
- var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_1__["PopupModel"](options.componentName, options.data, "top", "left", false, true, options.onCancel, options.onApply, function () {
36385
- options.onHide();
36386
- if (!!container) {
36387
- popupViewModel.resetComponentElement();
36388
- }
36389
- }, options.onShow, options.cssClass, options.title);
36596
+ var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_1__["PopupModel"](options.componentName, options.data, "top", "left", false, true, options.onCancel, options.onApply, options.onHide, options.onShow, options.cssClass, options.title);
36390
36597
  popupModel.displayMode = options.displayMode || "popup";
36391
36598
  popupModel.isFocusedContent = (_a = options.isFocusedContent) !== null && _a !== void 0 ? _a : true;
36392
36599
  var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__["PopupModalViewModel"](popupModel);
@@ -36398,6 +36605,15 @@ function createPopupModalViewModel(options, rootElement) {
36398
36605
  if (!popupViewModel.container) {
36399
36606
  popupViewModel.initializePopupContainer();
36400
36607
  }
36608
+ var onVisibilityChangedCallback = function (sender, options) {
36609
+ if (!options.isVisible) {
36610
+ if (!!container) {
36611
+ popupViewModel.resetComponentElement();
36612
+ }
36613
+ }
36614
+ popupViewModel.onVisibilityChanged.remove(onVisibilityChangedCallback);
36615
+ };
36616
+ popupViewModel.onVisibilityChanged.add(onVisibilityChangedCallback);
36401
36617
  return popupViewModel;
36402
36618
  }
36403
36619
  function createPopupViewModel(model, targetElement) {
@@ -36429,7 +36645,8 @@ __webpack_require__.r(__webpack_exports__);
36429
36645
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
36430
36646
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
36431
36647
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
36432
- /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
36648
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
36649
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
36433
36650
  var __extends = (undefined && undefined.__extends) || (function () {
36434
36651
  var extendStatics = function (d, b) {
36435
36652
  extendStatics = Object.setPrototypeOf ||
@@ -36458,19 +36675,64 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
36458
36675
 
36459
36676
 
36460
36677
 
36678
+
36461
36679
  var FOCUS_INPUT_SELECTOR = "input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\"-\"])";
36462
36680
  var PopupBaseViewModel = /** @class */ (function (_super) {
36463
36681
  __extends(PopupBaseViewModel, _super);
36464
36682
  function PopupBaseViewModel(model) {
36465
36683
  var _this = _super.call(this) || this;
36466
- _this.subscriptionId = PopupBaseViewModel.SubscriptionId++;
36467
36684
  _this.popupSelector = ".sv-popup";
36468
36685
  _this.fixedPopupContainer = ".sv-popup";
36469
36686
  _this.containerSelector = ".sv-popup__container";
36470
36687
  _this.scrollingContentSelector = ".sv-popup__scrolling-content";
36688
+ _this.visibilityAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_6__["AnimationBoolean"](_this, function (val) {
36689
+ if (_this._isVisible !== val) {
36690
+ if (!val) {
36691
+ _this.updateOnHiding();
36692
+ _this.updateIsVisible(val);
36693
+ }
36694
+ else {
36695
+ _this.updateIsVisible(val);
36696
+ }
36697
+ }
36698
+ }, function () { return _this._isVisible; });
36699
+ _this.onVisibilityChanged = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
36700
+ _this.onModelIsVisibleChangedCallback = function () {
36701
+ _this.isVisible = _this.model.isVisible;
36702
+ };
36471
36703
  _this.model = model;
36472
36704
  return _this;
36473
36705
  }
36706
+ PopupBaseViewModel.prototype.updateIsVisible = function (val) {
36707
+ this._isVisible = val;
36708
+ this.onVisibilityChanged.fire(this, { isVisible: val });
36709
+ };
36710
+ PopupBaseViewModel.prototype.getLeaveOptions = function () {
36711
+ return { cssClass: "sv-popup--animate-leave" };
36712
+ };
36713
+ PopupBaseViewModel.prototype.getEnterOptions = function () {
36714
+ return { cssClass: "sv-popup--animate-enter" };
36715
+ };
36716
+ PopupBaseViewModel.prototype.getAnimatedElement = function () {
36717
+ return this.getAnimationContainer();
36718
+ };
36719
+ PopupBaseViewModel.prototype.isAnimationEnabled = function () {
36720
+ return this.model.displayMode !== "overlay" && _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].animationEnabled;
36721
+ };
36722
+ PopupBaseViewModel.prototype.getAnimationContainer = function () {
36723
+ var _a;
36724
+ return (_a = this.container) === null || _a === void 0 ? void 0 : _a.querySelector(this.fixedPopupContainer);
36725
+ };
36726
+ Object.defineProperty(PopupBaseViewModel.prototype, "isVisible", {
36727
+ get: function () {
36728
+ return this._isVisible;
36729
+ },
36730
+ set: function (val) {
36731
+ this.visibilityAnimation.sync(val);
36732
+ },
36733
+ enumerable: false,
36734
+ configurable: true
36735
+ });
36474
36736
  Object.defineProperty(PopupBaseViewModel.prototype, "container", {
36475
36737
  get: function () {
36476
36738
  return this.containerElement || this.createdContainer;
@@ -36529,20 +36791,13 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36529
36791
  PopupBaseViewModel.prototype.onModelChanging = function (newModel) {
36530
36792
  };
36531
36793
  PopupBaseViewModel.prototype.setupModel = function (model) {
36532
- var _this = this;
36533
36794
  if (!!this.model) {
36534
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
36795
+ this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);
36535
36796
  }
36536
36797
  this.onModelChanging(model);
36537
36798
  this._model = model;
36538
- var onIsVisibleChangedHandler = function () {
36539
- if (!model.isVisible) {
36540
- _this.updateOnHiding();
36541
- }
36542
- _this.isVisible = model.isVisible;
36543
- };
36544
- model.registerPropertyChangedHandlers(["isVisible"], onIsVisibleChangedHandler, "PopupBaseViewModel" + this.subscriptionId);
36545
- onIsVisibleChangedHandler();
36799
+ model.onVisibilityChanged.add(this.onModelIsVisibleChangedCallback);
36800
+ this.onModelIsVisibleChangedCallback();
36546
36801
  };
36547
36802
  Object.defineProperty(PopupBaseViewModel.prototype, "model", {
36548
36803
  get: function () {
@@ -36722,7 +36977,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36722
36977
  PopupBaseViewModel.prototype.dispose = function () {
36723
36978
  _super.prototype.dispose.call(this);
36724
36979
  if (this.model) {
36725
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
36980
+ this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);
36726
36981
  }
36727
36982
  if (!!this.createdContainer) {
36728
36983
  this.createdContainer.remove();
@@ -36735,7 +36990,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36735
36990
  };
36736
36991
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
36737
36992
  if (!this.container) {
36738
- var container = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__["DomDocumentHelper"].createElement("div");
36993
+ var container = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].createElement("div");
36739
36994
  this.createdContainer = container;
36740
36995
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
36741
36996
  }
@@ -36752,7 +37007,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36752
37007
  PopupBaseViewModel.prototype.preventScrollOuside = function (event, deltaY) {
36753
37008
  var currentElement = event.target;
36754
37009
  while (currentElement !== this.container) {
36755
- if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__["DomDocumentHelper"].getComputedStyle(currentElement).overflowY === "auto" && currentElement.scrollHeight !== currentElement.offsetHeight) {
37010
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].getComputedStyle(currentElement).overflowY === "auto" && currentElement.scrollHeight !== currentElement.offsetHeight) {
36756
37011
  var scrollHeight = currentElement.scrollHeight, scrollTop = currentElement.scrollTop, clientHeight = currentElement.clientHeight;
36757
37012
  if (!(deltaY > 0 && Math.abs(scrollHeight - clientHeight - scrollTop) < 1) && !(deltaY < 0 && scrollTop <= 0)) {
36758
37013
  return;
@@ -36764,7 +37019,6 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36764
37019
  event.preventDefault();
36765
37020
  }
36766
37021
  };
36767
- PopupBaseViewModel.SubscriptionId = 0;
36768
37022
  __decorate([
36769
37023
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "0px" })
36770
37024
  ], PopupBaseViewModel.prototype, "top", void 0);
@@ -36782,7 +37036,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36782
37036
  ], PopupBaseViewModel.prototype, "minWidth", void 0);
36783
37037
  __decorate([
36784
37038
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
36785
- ], PopupBaseViewModel.prototype, "isVisible", void 0);
37039
+ ], PopupBaseViewModel.prototype, "_isVisible", void 0);
36786
37040
  __decorate([
36787
37041
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
36788
37042
  ], PopupBaseViewModel.prototype, "locale", void 0);
@@ -37100,7 +37354,7 @@ var ProgressButtons = /** @class */ (function (_super) {
37100
37354
  if (!listContainerElement)
37101
37355
  return;
37102
37356
  var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
37103
- var circleWidth = this.showItemNumbers ? 17 : 7;
37357
+ var circleWidth = this.showItemNumbers ? 17 : 5;
37104
37358
  var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - circleWidth;
37105
37359
  for (var i = 0; i < listContainerElements.length; i++) {
37106
37360
  listContainerElements[i].style.width = connectorWidth + "px";
@@ -44416,6 +44670,10 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
44416
44670
  return this.hasSelectAll;
44417
44671
  return _super.prototype.isItemInList.call(this, item);
44418
44672
  };
44673
+ QuestionCheckboxModel.prototype.getDisplayValueEmpty = function () {
44674
+ var _this = this;
44675
+ return _itemvalue__WEBPACK_IMPORTED_MODULE_4__["ItemValue"].getTextOrHtmlByValue(this.visibleChoices.filter(function (choice) { return choice != _this.selectAllItemValue; }), undefined);
44676
+ };
44419
44677
  QuestionCheckboxModel.prototype.getDisplayValueCore = function (keysAsText, value) {
44420
44678
  if (!Array.isArray(value))
44421
44679
  return _super.prototype.getDisplayValueCore.call(this, keysAsText, value);
@@ -44913,6 +45171,7 @@ __webpack_require__.r(__webpack_exports__);
44913
45171
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
44914
45172
  /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./textPreProcessor */ "./src/textPreProcessor.ts");
44915
45173
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
45174
+ /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./error */ "./src/error.ts");
44916
45175
  var __extends = (undefined && undefined.__extends) || (function () {
44917
45176
  var extendStatics = function (d, b) {
44918
45177
  extendStatics = Object.setPrototypeOf ||
@@ -44934,6 +45193,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
44934
45193
 
44935
45194
 
44936
45195
 
45196
+
44937
45197
  var ComponentQuestionJSON = /** @class */ (function () {
44938
45198
  function ComponentQuestionJSON(name, json) {
44939
45199
  this.name = name;
@@ -44989,6 +45249,11 @@ var ComponentQuestionJSON = /** @class */ (function () {
44989
45249
  return newValue;
44990
45250
  return this.json.onValueChanging(question, name, newValue);
44991
45251
  };
45252
+ ComponentQuestionJSON.prototype.onGetErrorText = function (question) {
45253
+ if (!this.json.getErrorText)
45254
+ return undefined;
45255
+ return this.json.getErrorText(question);
45256
+ };
44992
45257
  ComponentQuestionJSON.prototype.onItemValuePropertyChanged = function (question, item, propertyName, name, newValue) {
44993
45258
  if (!this.json.onItemValuePropertyChanged)
44994
45259
  return;
@@ -45269,6 +45534,15 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
45269
45534
  _super.prototype.setNewValue.call(this, newValue);
45270
45535
  this.updateElementCss();
45271
45536
  };
45537
+ QuestionCustomModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
45538
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
45539
+ if (!!this.customQuestion) {
45540
+ var text = this.customQuestion.onGetErrorText(this);
45541
+ if (!!text) {
45542
+ errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__["CustomError"](text, this));
45543
+ }
45544
+ }
45545
+ };
45272
45546
  //ISurveyImpl
45273
45547
  QuestionCustomModelBase.prototype.getSurveyData = function () {
45274
45548
  return this;
@@ -45540,9 +45814,10 @@ var QuestionCustomModel = /** @class */ (function (_super) {
45540
45814
  }
45541
45815
  };
45542
45816
  QuestionCustomModel.prototype.convertDataName = function (name) {
45543
- if (!this.contentQuestion)
45817
+ var q = this.contentQuestion;
45818
+ if (!q || name === this.getValueName())
45544
45819
  return _super.prototype.convertDataName.call(this, name);
45545
- var newName = name.replace(this.contentQuestion.getValueName(), this.getValueName());
45820
+ var newName = name.replace(q.getValueName(), this.getValueName());
45546
45821
  return newName.indexOf(this.getValueName()) == 0
45547
45822
  ? newName
45548
45823
  : _super.prototype.convertDataName.call(this, name);
@@ -49882,7 +50157,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
49882
50157
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]()
49883
50158
  .append(css.cell, hasCellText)
49884
50159
  .append(hasCellText ? css.cellText : css.label)
49885
- .append(css.itemOnError, !hasCellText && this.hasCssError())
50160
+ .append(css.itemOnError, !hasCellText && (this.isAllRowRequired ? this.hasErrorInRow(row) : this.hasCssError()))
49886
50161
  .append(hasCellText ? css.cellTextSelected : css.itemChecked, isChecked)
49887
50162
  .append(hasCellText ? css.cellTextDisabled : css.itemDisabled, isDisabled)
49888
50163
  .append(css.itemHover, allowHover && !hasCellText)
@@ -53561,10 +53836,9 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
53561
53836
  });
53562
53837
  Object.defineProperty(MatrixDropdownColumn.prototype, "isRequired", {
53563
53838
  /**
53564
- * Marks the column as required. If a respondent skips any cell in a required column, the matrix displays a validation error.
53839
+ * Marks the column as required. If a respondent skips any cell in a required column, the matrix displays a [validation error](#requiredErrorText).
53565
53840
  *
53566
53841
  * If you want to mark the column as required based on a condition, specify the [`requiredIf`](#requiredIf) property.
53567
- * @see requiredErrorText
53568
53842
  * @see visible
53569
53843
  * @see readOnly
53570
53844
  */
@@ -53741,7 +54015,7 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
53741
54015
  enumerable: false,
53742
54016
  configurable: true
53743
54017
  });
53744
- Object.defineProperty(MatrixDropdownColumn.prototype, "setValueExpession", {
54018
+ Object.defineProperty(MatrixDropdownColumn.prototype, "setValueExpression", {
53745
54019
  /**
53746
54020
  * An expression used to calculate a value for all column cells.
53747
54021
  *
@@ -53752,10 +54026,10 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
53752
54026
  * @see resetValueIf
53753
54027
  */
53754
54028
  get: function () {
53755
- return this.templateQuestion.setValueExpession;
54029
+ return this.templateQuestion.setValueExpression;
53756
54030
  },
53757
54031
  set: function (val) {
53758
- this.templateQuestion.setValueExpession = val;
54032
+ this.templateQuestion.setValueExpression = val;
53759
54033
  },
53760
54034
  enumerable: false,
53761
54035
  configurable: true
@@ -56736,9 +57010,9 @@ var MultipleTextEditorModel = /** @class */ (function (_super) {
56736
57010
  }(_question_text__WEBPACK_IMPORTED_MODULE_3__["QuestionTextModel"]));
56737
57011
 
56738
57012
  /**
56739
- * A class that describes an item in a [Multiple Textboxes](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model) question.
57013
+ * A class that describes an [item](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model#items) in a Multiple Textboxes question.
56740
57014
  *
56741
- * [View Demo](https://surveyjs.io/form-library/examples/multiple-text-box-question/)
57015
+ * [View Demo](https://surveyjs.io/form-library/examples/multiple-text-box-question/ (linkStyle))
56742
57016
  */
56743
57017
  var MultipleTextItemModel = /** @class */ (function (_super) {
56744
57018
  __extends(MultipleTextItemModel, _super);
@@ -56750,6 +57024,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56750
57024
  _this.editor.focusIn();
56751
57025
  };
56752
57026
  _this.editorValue = _this.createEditor(name);
57027
+ _this.maskSettings = _this.editorValue.maskSettings;
56753
57028
  _this.editor.questionTitleTemplateCallback = function () {
56754
57029
  return "";
56755
57030
  };
@@ -56774,7 +57049,10 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56774
57049
  };
56775
57050
  Object.defineProperty(MultipleTextItemModel.prototype, "name", {
56776
57051
  /**
56777
- * The item name.
57052
+ * An item ID that is not visible to respondents.
57053
+ *
57054
+ * > Item IDs must be unique.
57055
+ * @see title
56778
57056
  */
56779
57057
  get: function () {
56780
57058
  return this.editor.name;
@@ -56825,7 +57103,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56825
57103
  };
56826
57104
  Object.defineProperty(MultipleTextItemModel.prototype, "isRequired", {
56827
57105
  /**
56828
- * Set this property to true, to make the item a required. If a user doesn't fill the item then a validation error will be generated.
57106
+ * Marks the item as required. If a respondent leaves this item empty, the question displays a [validation error](#requiredErrorText).
56829
57107
  */
56830
57108
  get: function () {
56831
57109
  return this.editor.isRequired;
@@ -56838,7 +57116,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56838
57116
  });
56839
57117
  Object.defineProperty(MultipleTextItemModel.prototype, "inputType", {
56840
57118
  /**
56841
- * Use this property to change the default input type.
57119
+ * A value passed on to the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types) attribute of the underlying `<input>` element.
57120
+ *
57121
+ * Default value: `"text"`
56842
57122
  */
56843
57123
  get: function () {
56844
57124
  return this.editor.inputType;
@@ -56851,8 +57131,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56851
57131
  });
56852
57132
  Object.defineProperty(MultipleTextItemModel.prototype, "title", {
56853
57133
  /**
56854
- * Item title. If it is empty, the item name is rendered as title. This property supports markdown.
56855
- * @see name
57134
+ * A user-friendly item label to display. If `title` is undefined, [`name`](https://surveyjs.io/form-library/documentation/api-reference/multipletextitemmodel#name) is displayed instead.
56856
57135
  */
56857
57136
  get: function () {
56858
57137
  return this.editor.title;
@@ -56879,9 +57158,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56879
57158
  });
56880
57159
  Object.defineProperty(MultipleTextItemModel.prototype, "maxLength", {
56881
57160
  /**
56882
- * The maximum text length. If it is -1, defaul value, then the survey maxTextLength property will be used.
56883
- * If it is 0, then the value is unlimited
56884
- * @see SurveyModel.maxTextLength
57161
+ * The maximum text length measured in characters. Assign 0 if the length should be unlimited.
57162
+ *
57163
+ * Default value: -1 (inherits the actual value from the `SurveyModel`'s [`maxTextLength`](https://surveyjs.io/form-library/documentation/surveymodel#maxTextLength) property).
56885
57164
  */
56886
57165
  get: function () {
56887
57166
  return this.editor.maxLength;
@@ -56898,7 +57177,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56898
57177
  };
56899
57178
  Object.defineProperty(MultipleTextItemModel.prototype, "placeholder", {
56900
57179
  /**
56901
- * The input place holder.
57180
+ * A placeholder for the input field.
56902
57181
  */
56903
57182
  get: function () {
56904
57183
  return this.editor.placeholder;
@@ -56935,7 +57214,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56935
57214
  });
56936
57215
  Object.defineProperty(MultipleTextItemModel.prototype, "requiredErrorText", {
56937
57216
  /**
56938
- * The custom text that will be shown on required error. Use this property, if you do not want to show the default text.
57217
+ * Specifies a custom error message for a [required item](#isRequired).
56939
57218
  */
56940
57219
  get: function () {
56941
57220
  return this.editor.requiredErrorText;
@@ -56955,7 +57234,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56955
57234
  });
56956
57235
  Object.defineProperty(MultipleTextItemModel.prototype, "size", {
56957
57236
  /**
56958
- * The input size.
57237
+ * A value passed on to the [`size`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/size) attribute of the underlying `<input>` element.
57238
+ *
57239
+ * If you want to set a uniform `size` for all text box items, use the [`itemSize`](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model#itemSize) within the Multiple Textboxes configuration.
56959
57240
  */
56960
57241
  get: function () {
56961
57242
  return this.editor.size;
@@ -56968,7 +57249,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56968
57249
  });
56969
57250
  Object.defineProperty(MultipleTextItemModel.prototype, "defaultValueExpression", {
56970
57251
  /**
56971
- * An expression used to calculate the [defaultValue](https://surveyjs.io/form-library/documentation/question#defaultValue).
57252
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the default item value.
57253
+ * @see minValueExpression
57254
+ * @see maxValueExpression
56972
57255
  */
56973
57256
  get: function () {
56974
57257
  return this.editor.defaultValueExpression;
@@ -56981,7 +57264,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56981
57264
  });
56982
57265
  Object.defineProperty(MultipleTextItemModel.prototype, "minValueExpression", {
56983
57266
  /**
56984
- * The minimum value specified as an expression. For example, `"minValueExpression": "today(-1)"` sets the minimum value to yesterday.
57267
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the minimum item value.
57268
+ * @see maxValueExpression
57269
+ * @see defaultValueExpression
56985
57270
  */
56986
57271
  get: function () {
56987
57272
  return this.editor.minValueExpression;
@@ -56994,7 +57279,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56994
57279
  });
56995
57280
  Object.defineProperty(MultipleTextItemModel.prototype, "maxValueExpression", {
56996
57281
  /**
56997
- * The maximum value specified as an expression. For example, `"maxValueExpression": "today(1)"` sets the maximum value to tomorrow.
57282
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the maximum item value.
57283
+ * @see minValueExpression
57284
+ * @see defaultValueExpression
56998
57285
  */
56999
57286
  get: function () {
57000
57287
  return this.editor.maxValueExpression;
@@ -57007,7 +57294,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57007
57294
  });
57008
57295
  Object.defineProperty(MultipleTextItemModel.prototype, "validators", {
57009
57296
  /**
57010
- * The list of question validators.
57297
+ * Item validators.
57298
+ *
57299
+ * [Data Validation](https://surveyjs.io/form-library/documentation/data-validation (linkStyle))
57011
57300
  */
57012
57301
  get: function () {
57013
57302
  return this.editor.validators;
@@ -57021,9 +57310,71 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57021
57310
  MultipleTextItemModel.prototype.getValidators = function () {
57022
57311
  return this.validators;
57023
57312
  };
57313
+ Object.defineProperty(MultipleTextItemModel.prototype, "maskType", {
57314
+ /**
57315
+ * Specifies the type of a mask applied to the input.
57316
+ *
57317
+ * Possible values:
57318
+ *
57319
+ * - `"none"` (default)
57320
+ * - `"numeric"`
57321
+ * - `"currency"`
57322
+ * - `"datetime"`
57323
+ * - `"pattern"`
57324
+ *
57325
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
57326
+ * @see maskSettings
57327
+ */
57328
+ get: function () {
57329
+ return this.editor.maskType;
57330
+ },
57331
+ set: function (val) {
57332
+ this.editor.maskType = val;
57333
+ this.maskSettings = this.editor.maskSettings;
57334
+ },
57335
+ enumerable: false,
57336
+ configurable: true
57337
+ });
57338
+ Object.defineProperty(MultipleTextItemModel.prototype, "maskSettings", {
57339
+ /**
57340
+ * An object with properties that configure the mask applied to the input.
57341
+ *
57342
+ * Available properties depend on the specified [`maskType`](#maskType) and belong to corresponding classes. Refer to the class APIs for a full list of properties:
57343
+ *
57344
+ * | `maskType` | Class |
57345
+ * | ---------- | ----- |
57346
+ * | `"numeric"` | [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/api-reference/inputmasknumeric) |
57347
+ * | `"currency"` | [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskcurrency) |
57348
+ * | `"datetime"` | [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskdatetime) |
57349
+ * | `"pattern"` | [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern) |
57350
+ *
57351
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
57352
+ */
57353
+ get: function () {
57354
+ return this.getPropertyValue("maskSettings");
57355
+ },
57356
+ set: function (val) {
57357
+ this.setPropertyValue("maskSettings", val);
57358
+ if (this.editor.maskSettings !== val) {
57359
+ this.editor.maskSettings = val;
57360
+ }
57361
+ },
57362
+ enumerable: false,
57363
+ configurable: true
57364
+ });
57365
+ Object.defineProperty(MultipleTextItemModel.prototype, "inputTextAlignment", {
57366
+ get: function () {
57367
+ return this.editor.inputTextAlignment;
57368
+ },
57369
+ set: function (val) {
57370
+ this.editor.inputTextAlignment = val;
57371
+ },
57372
+ enumerable: false,
57373
+ configurable: true
57374
+ });
57024
57375
  Object.defineProperty(MultipleTextItemModel.prototype, "value", {
57025
57376
  /**
57026
- * The item value.
57377
+ * An item value.
57027
57378
  */
57028
57379
  get: function () {
57029
57380
  return this.data ? this.data.getMultipleTextValue(this.name) : null;
@@ -57213,9 +57564,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
57213
57564
  };
57214
57565
  Object.defineProperty(QuestionMultipleTextModel.prototype, "items", {
57215
57566
  /**
57216
- * Gets or sets an array of `MultipleTextItemModel` objects that represent input items.
57567
+ * Gets or sets an array of [`MultipleTextItemModel`](https://surveyjs.io/form-library/documentation/api-reference/multipletextitemmodel) objects that represent input items.
57217
57568
  *
57218
- * This property accepts an array of objects with the following structure:
57569
+ * Each object in this array should have at least the following properties:
57219
57570
  *
57220
57571
  * ```js
57221
57572
  * {
@@ -57256,6 +57607,12 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
57256
57607
  }
57257
57608
  return null;
57258
57609
  };
57610
+ QuestionMultipleTextModel.prototype.getElementsInDesign = function (includeHidden) {
57611
+ if (includeHidden === void 0) { includeHidden = false; }
57612
+ var elements;
57613
+ elements = _super.prototype.getElementsInDesign.call(this, includeHidden);
57614
+ return elements.concat(this.items);
57615
+ };
57259
57616
  QuestionMultipleTextModel.prototype.addConditionObjectsByContext = function (objects, context) {
57260
57617
  for (var i = 0; i < this.items.length; i++) {
57261
57618
  var item = this.items[i];
@@ -57709,6 +58066,31 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextite
57709
58066
  default: "text",
57710
58067
  choices: _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].questions.inputTypes,
57711
58068
  },
58069
+ {
58070
+ name: "maskType:masktype",
58071
+ default: "none",
58072
+ visibleIndex: 0,
58073
+ dependsOn: "inputType",
58074
+ visibleIf: function (obj) {
58075
+ return obj.inputType === "text";
58076
+ }
58077
+ },
58078
+ {
58079
+ name: "maskSettings:masksettings",
58080
+ className: "masksettings",
58081
+ visibleIndex: 1,
58082
+ dependsOn: "inputType",
58083
+ visibleIf: function (obj) {
58084
+ return obj.inputType === "text";
58085
+ },
58086
+ onGetValue: function (obj) {
58087
+ return obj.maskSettings.getData();
58088
+ },
58089
+ onSetValue: function (obj, value) {
58090
+ obj.maskSettings.setData(value);
58091
+ },
58092
+ },
58093
+ { name: "inputTextAlignment", default: "auto", choices: ["left", "right", "auto"], visible: false },
57712
58094
  { name: "title", serializationProperty: "locTitle" },
57713
58095
  { name: "maxLength:number", default: -1 },
57714
58096
  { name: "size:number", minValue: 0 },
@@ -60198,9 +60580,9 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
60198
60580
  enumerable: false,
60199
60581
  configurable: true
60200
60582
  });
60201
- QuestionPanelDynamicModel.prototype.getPanelWrapperCss = function () {
60583
+ QuestionPanelDynamicModel.prototype.getPanelWrapperCss = function (panel) {
60202
60584
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
60203
- .append(this.cssClasses.panelWrapper)
60585
+ .append(this.cssClasses.panelWrapper, !panel || panel.visible)
60204
60586
  .append(this.cssClasses.panelWrapperInRow, this.panelRemoveButtonLocation === "right")
60205
60587
  .toString();
60206
60588
  };
@@ -60757,6 +61139,7 @@ __webpack_require__.r(__webpack_exports__);
60757
61139
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
60758
61140
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
60759
61141
  /* harmony import */ var _src_settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../src/settings */ "./src/settings.ts");
61142
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
60760
61143
  var __extends = (undefined && undefined.__extends) || (function () {
60761
61144
  var extendStatics = function (d, b) {
60762
61145
  extendStatics = Object.setPrototypeOf ||
@@ -60788,6 +61171,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
60788
61171
 
60789
61172
 
60790
61173
 
61174
+
60791
61175
  /**
60792
61176
  * A class that describes the Ranking question type.
60793
61177
  *
@@ -60807,27 +61191,33 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60807
61191
  if (_this.visibleChoices.length === 1 && !_this.selectToRankEnabled) {
60808
61192
  _this.value = [];
60809
61193
  _this.value.push(_this.visibleChoices[0].value);
60810
- _this.updateRankingChoices();
61194
+ _this.updateRankingChoicesSync();
60811
61195
  return;
60812
61196
  }
60813
61197
  if (_this.isEmpty()) {
60814
- _this.updateRankingChoices();
61198
+ _this.updateRankingChoicesSync();
60815
61199
  return;
60816
61200
  }
60817
61201
  if (_this.selectToRankEnabled) {
60818
- _this.updateRankingChoices();
61202
+ _this.updateRankingChoicesSync();
60819
61203
  return;
60820
61204
  }
60821
61205
  if (_this.visibleChoices.length > _this.value.length)
60822
61206
  _this.addToValueByVisibleChoices();
60823
61207
  if (_this.visibleChoices.length < _this.value.length)
60824
61208
  _this.removeFromValueByVisibleChoices();
60825
- _this.updateRankingChoices();
61209
+ _this.updateRankingChoicesSync();
60826
61210
  };
60827
61211
  _this.localeChanged = function () {
60828
61212
  _super.prototype.localeChanged.call(_this);
60829
- _this.updateRankingChoices();
61213
+ _this.updateRankingChoicesSync();
60830
61214
  };
61215
+ _this._rankingChoicesAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_10__["AnimationGroup"](_this.getChoicesAnimation(true), function (val) {
61216
+ _this.setPropertyValue("rankingChoices", val);
61217
+ }, function () { return _this.rankingChoices; });
61218
+ _this._unRankingChoicesAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_10__["AnimationGroup"](_this.getChoicesAnimation(false), function (val) {
61219
+ _this.setPropertyValue("unRankingChoices", val);
61220
+ }, function () { return _this.unRankingChoices; });
60831
61221
  _this.handlePointerDown = function (event, choice, node) {
60832
61222
  var target = event.target;
60833
61223
  if (!_this.isDragStartNodeValid(target))
@@ -60880,6 +61270,8 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60880
61270
  _this.isValueSetByUser = false;
60881
61271
  _this.setValue = function () {
60882
61272
  var value = [];
61273
+ _this.rankingChoicesAnimation.cancel();
61274
+ _this.unRankingChoicesAnimation.cancel();
60883
61275
  _this.rankingChoices.forEach(function (choice) {
60884
61276
  value.push(choice.value);
60885
61277
  });
@@ -60887,10 +61279,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60887
61279
  _this.isValueSetByUser = true;
60888
61280
  };
60889
61281
  _this.createNewArray("rankingChoices");
61282
+ _this.createNewArray("unRankingChoices");
60890
61283
  _this.registerFunctionOnPropertyValueChanged("selectToRankEnabled", function () {
60891
61284
  _this.clearValue();
60892
61285
  _this.setDragDropRankingChoices();
60893
- _this.updateRankingChoices();
61286
+ _this.updateRankingChoicesSync();
60894
61287
  });
60895
61288
  return _this;
60896
61289
  }
@@ -60927,10 +61320,12 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60927
61320
  });
60928
61321
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
60929
61322
  var itemIndex = this.rankingChoices.indexOf(item);
61323
+ var unrankedItemIndex = this.unRankingChoices.indexOf(item);
60930
61324
  var dropTargetIndex = this.rankingChoices.indexOf(this.currentDropTarget);
61325
+ var isDrop = (this.selectToRankEnabled && itemIndex > -1 && unrankedItemIndex > -1) || this.currentDropTarget === item;
60931
61326
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
60932
61327
  .append(_super.prototype.getItemClassCore.call(this, item, options))
60933
- .append(this.cssClasses.itemGhostMod, this.currentDropTarget === item)
61328
+ .append(this.cssClasses.itemGhostMod, isDrop)
60934
61329
  .append("sv-dragdrop-movedown", itemIndex === dropTargetIndex + 1 && this.dropTargetNodeMove === "down")
60935
61330
  .append("sv-dragdrop-moveup", itemIndex === dropTargetIndex - 1 && this.dropTargetNodeMove === "up")
60936
61331
  .toString();
@@ -60982,10 +61377,15 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60982
61377
  QuestionRankingModel.prototype.getNumberByIndex = function (index) {
60983
61378
  return this.isEmpty() ? "" : index + 1 + "";
60984
61379
  };
61380
+ QuestionRankingModel.prototype.updateRankingChoicesSync = function () {
61381
+ this.animationAllowed = false;
61382
+ this.updateRankingChoices();
61383
+ this.animationAllowed = true;
61384
+ };
60985
61385
  QuestionRankingModel.prototype.setSurveyImpl = function (value, isLight) {
60986
61386
  _super.prototype.setSurveyImpl.call(this, value, isLight);
60987
61387
  this.setDragDropRankingChoices();
60988
- this.updateRankingChoices();
61388
+ this.updateRankingChoicesSync();
60989
61389
  };
60990
61390
  QuestionRankingModel.prototype.isAnswerCorrect = function () {
60991
61391
  return _helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isArraysEqual(this.value, this.correctAnswer, false);
@@ -60999,7 +61399,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60999
61399
  _super.prototype.onSurveyValueChanged.call(this, newValue);
61000
61400
  if (this.isLoadingFromJson)
61001
61401
  return;
61002
- this.updateRankingChoices();
61402
+ this.updateRankingChoicesSync();
61003
61403
  };
61004
61404
  QuestionRankingModel.prototype.addToValueByVisibleChoices = function () {
61005
61405
  var newValue = this.value.slice();
@@ -61020,27 +61420,61 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61020
61420
  }
61021
61421
  this.value = newValue;
61022
61422
  };
61423
+ QuestionRankingModel.prototype.getChoicesAnimation = function (isRankingChoices) {
61424
+ var _this = this;
61425
+ return {
61426
+ isAnimationEnabled: function () { return _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].animationEnabled && _this.animationAllowed; },
61427
+ getLeaveOptions: function (item) {
61428
+ var choices = isRankingChoices ? _this.rankingChoices : _this.unRankingChoices;
61429
+ if (_this.renderedSelectToRankAreasLayout == "vertical" && choices.length == 1 && choices.indexOf(item) >= 0) {
61430
+ return { cssClass: "sv-ranking-item--animate-item-removing-empty" };
61431
+ }
61432
+ return { cssClass: "sv-ranking-item--animate-item-removing" };
61433
+ },
61434
+ getEnterOptions: function (item) {
61435
+ var choices = isRankingChoices ? _this.rankingChoices : _this.unRankingChoices;
61436
+ if (_this.renderedSelectToRankAreasLayout == "vertical" && choices.length == 1 && choices.indexOf(item) >= 0) {
61437
+ return { cssClass: "sv-ranking-item--animate-item-adding-empty" };
61438
+ }
61439
+ return { cssClass: "sv-ranking-item--animate-item-adding" };
61440
+ },
61441
+ getAnimatedElement: function (item) {
61442
+ var _a;
61443
+ var containerSelector = isRankingChoices ? ".sv-ranking__container--to" : ".sv-ranking__container--from";
61444
+ return (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(containerSelector + " .sv-ranking-item--ghost");
61445
+ }
61446
+ };
61447
+ };
61448
+ Object.defineProperty(QuestionRankingModel.prototype, "rankingChoicesAnimation", {
61449
+ get: function () {
61450
+ return this._rankingChoicesAnimation;
61451
+ },
61452
+ enumerable: false,
61453
+ configurable: true
61454
+ });
61455
+ Object.defineProperty(QuestionRankingModel.prototype, "unRankingChoicesAnimation", {
61456
+ get: function () {
61457
+ return this._unRankingChoicesAnimation;
61458
+ },
61459
+ enumerable: false,
61460
+ configurable: true
61461
+ });
61023
61462
  Object.defineProperty(QuestionRankingModel.prototype, "rankingChoices", {
61024
61463
  get: function () {
61025
61464
  return this.getPropertyValue("rankingChoices", []);
61026
61465
  },
61466
+ set: function (val) {
61467
+ this._rankingChoicesAnimation.sync(val);
61468
+ },
61027
61469
  enumerable: false,
61028
61470
  configurable: true
61029
61471
  });
61030
61472
  Object.defineProperty(QuestionRankingModel.prototype, "unRankingChoices", {
61031
61473
  get: function () {
61032
- var unRankingChoices = [];
61033
- var rankingChoices = this.rankingChoices;
61034
- this.visibleChoices.forEach(function (choice) {
61035
- unRankingChoices.push(choice);
61036
- });
61037
- rankingChoices.forEach(function (rankingChoice) {
61038
- unRankingChoices.forEach(function (choice, index) {
61039
- if (choice.value === rankingChoice.value)
61040
- unRankingChoices.splice(index, 1);
61041
- });
61042
- });
61043
- return unRankingChoices;
61474
+ return this.getPropertyValue("unRankingChoices", []);
61475
+ },
61476
+ set: function (val) {
61477
+ this._unRankingChoicesAnimation.sync(val);
61044
61478
  },
61045
61479
  enumerable: false,
61046
61480
  configurable: true
@@ -61072,20 +61506,32 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61072
61506
  });
61073
61507
  this.setPropertyValue("rankingChoices", newRankingChoices);
61074
61508
  };
61509
+ QuestionRankingModel.prototype.updateUnRankingChoices = function (newRankingChoices) {
61510
+ var unRankingChoices = [];
61511
+ this.visibleChoices.forEach(function (choice) {
61512
+ unRankingChoices.push(choice);
61513
+ });
61514
+ newRankingChoices.forEach(function (rankingChoice) {
61515
+ unRankingChoices.forEach(function (choice, index) {
61516
+ if (choice.value === rankingChoice.value)
61517
+ unRankingChoices.splice(index, 1);
61518
+ });
61519
+ });
61520
+ this.unRankingChoices = unRankingChoices;
61521
+ };
61075
61522
  QuestionRankingModel.prototype.updateRankingChoicesSelectToRankMode = function (forceUpdate) {
61076
61523
  var _this = this;
61077
- if (this.isEmpty()) {
61078
- this.setPropertyValue("rankingChoices", []);
61079
- return;
61080
- }
61081
61524
  var newRankingChoices = [];
61082
- this.value.forEach(function (valueItem) {
61083
- _this.visibleChoices.forEach(function (choice) {
61084
- if (choice.value === valueItem)
61085
- newRankingChoices.push(choice);
61525
+ if (!this.isEmpty()) {
61526
+ this.value.forEach(function (valueItem) {
61527
+ _this.visibleChoices.forEach(function (choice) {
61528
+ if (choice.value === valueItem)
61529
+ newRankingChoices.push(choice);
61530
+ });
61086
61531
  });
61087
- });
61088
- this.setPropertyValue("rankingChoices", newRankingChoices);
61532
+ }
61533
+ this.updateUnRankingChoices(newRankingChoices);
61534
+ this.rankingChoices = newRankingChoices;
61089
61535
  };
61090
61536
  QuestionRankingModel.prototype.endLoadingFromJson = function () {
61091
61537
  _super.prototype.endLoadingFromJson.call(this);
@@ -61871,7 +62317,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
61871
62317
  return this.inputId + "_" + index;
61872
62318
  };
61873
62319
  QuestionRatingModel.prototype.supportGoNextPageAutomatic = function () {
61874
- return this.isMouseDown === true;
62320
+ return this.isMouseDown === true || this.renderAs === "dropdown";
61875
62321
  };
61876
62322
  QuestionRatingModel.prototype.supportOther = function () {
61877
62323
  return false;
@@ -63621,6 +64067,8 @@ var QuestionTextModel = /** @class */ (function (_super) {
63621
64067
  Object.defineProperty(QuestionTextModel.prototype, "inputType", {
63622
64068
  /**
63623
64069
  * A value passed on to the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types) attribute of the underlying `<input>` element.
64070
+ *
64071
+ * Default value: `"text"`
63624
64072
  */
63625
64073
  get: function () {
63626
64074
  return this.getPropertyValue("inputType");
@@ -64084,11 +64532,20 @@ var QuestionTextModel = /** @class */ (function (_super) {
64084
64532
  get: function () {
64085
64533
  var style = {};
64086
64534
  style.width = this.inputWidth;
64535
+ this.updateTextAlign(style);
64087
64536
  return style;
64088
64537
  },
64089
64538
  enumerable: false,
64090
64539
  configurable: true
64091
64540
  });
64541
+ QuestionTextModel.prototype.updateTextAlign = function (style) {
64542
+ if (this.inputTextAlignment !== "auto") {
64543
+ style.textAlign = this.inputTextAlignment;
64544
+ }
64545
+ else if (this.maskType === "numeric" || this.maskType === "currency") {
64546
+ style.textAlign = "right";
64547
+ }
64548
+ };
64092
64549
  QuestionTextModel.prototype.updateValueOnEvent = function (event) {
64093
64550
  var newValue = event.target.value;
64094
64551
  if (!this.isTwoValueEquals(this.value, newValue)) {
@@ -64110,6 +64567,9 @@ var QuestionTextModel = /** @class */ (function (_super) {
64110
64567
  onSet: function (newValue, target) { target.onSetMaskType(newValue); }
64111
64568
  })
64112
64569
  ], QuestionTextModel.prototype, "maskType", void 0);
64570
+ __decorate([
64571
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
64572
+ ], QuestionTextModel.prototype, "inputTextAlignment", void 0);
64113
64573
  __decorate([
64114
64574
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
64115
64575
  ], QuestionTextModel.prototype, "_inputValue", void 0);
@@ -64276,6 +64736,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
64276
64736
  return isMinMaxType(obj);
64277
64737
  },
64278
64738
  },
64739
+ { name: "inputTextAlignment", default: "auto", choices: ["left", "right", "auto"], visible: false },
64279
64740
  {
64280
64741
  name: "maskType:masktype",
64281
64742
  default: "none",
@@ -66987,18 +67448,18 @@ var PopupContainer = /** @class */ (function (_super) {
66987
67448
  }
66988
67449
  this.prevIsVisible = this.model.isVisible;
66989
67450
  };
66990
- PopupContainer.prototype.renderContainer = function (PopupBaseViewModel) {
67451
+ PopupContainer.prototype.renderContainer = function (popupBaseViewModel) {
66991
67452
  var _this = this;
66992
- var headerPopup = PopupBaseViewModel.showHeader ? this.renderHeaderPopup(PopupBaseViewModel) : null;
66993
- var headerContent = !!PopupBaseViewModel.title ? this.renderHeaderContent() : null;
67453
+ var headerPopup = popupBaseViewModel.showHeader ? this.renderHeaderPopup(popupBaseViewModel) : null;
67454
+ var headerContent = !!popupBaseViewModel.title ? this.renderHeaderContent() : null;
66994
67455
  var content = this.renderContent();
66995
- var footerContent = PopupBaseViewModel.showFooter ? this.renderFooter(this.model) : null;
67456
+ var footerContent = popupBaseViewModel.showFooter ? this.renderFooter(this.model) : null;
66996
67457
  return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { className: "sv-popup__container", style: {
66997
- left: PopupBaseViewModel.left,
66998
- top: PopupBaseViewModel.top,
66999
- height: PopupBaseViewModel.height,
67000
- width: PopupBaseViewModel.width,
67001
- minWidth: PopupBaseViewModel.minWidth,
67458
+ left: popupBaseViewModel.left,
67459
+ top: popupBaseViewModel.top,
67460
+ height: popupBaseViewModel.height,
67461
+ width: popupBaseViewModel.width,
67462
+ minWidth: popupBaseViewModel.minWidth,
67002
67463
  }, onClick: function (ev) {
67003
67464
  _this.clickInside(ev);
67004
67465
  } },
@@ -67062,11 +67523,14 @@ function showModal(componentName, data, onApply, onCancel, cssClass, title, disp
67062
67523
  return showDialog(options);
67063
67524
  }
67064
67525
  function showDialog(dialogOptions, rootElement) {
67065
- dialogOptions.onHide = function () {
67066
- react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
67067
- popupViewModel.dispose();
67068
- };
67069
67526
  var popupViewModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupModalViewModel"])(dialogOptions, rootElement);
67527
+ var onVisibilityChangedCallback = function (_, options) {
67528
+ if (!options.isVisible) {
67529
+ react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
67530
+ popupViewModel.dispose();
67531
+ }
67532
+ };
67533
+ popupViewModel.onVisibilityChanged.add(onVisibilityChangedCallback);
67070
67534
  react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.render(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: popupViewModel }), popupViewModel.container);
67071
67535
  popupViewModel.model.isVisible = true;
67072
67536
  return popupViewModel;
@@ -68493,6 +68957,7 @@ var SurveyRowElement = /** @class */ (function (_super) {
68493
68957
  function SurveyRowElement(props) {
68494
68958
  var _this = _super.call(this, props) || this;
68495
68959
  _this.element.cssClasses;
68960
+ _this.rootRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
68496
68961
  return _this;
68497
68962
  }
68498
68963
  SurveyRowElement.prototype.getStateElement = function () {
@@ -68540,9 +69005,27 @@ var SurveyRowElement = /** @class */ (function (_super) {
68540
69005
  enumerable: false,
68541
69006
  configurable: true
68542
69007
  });
69008
+ SurveyRowElement.prototype.componentDidMount = function () {
69009
+ _super.prototype.componentDidMount.call(this);
69010
+ if (this.rootRef.current) {
69011
+ (this.element).setWrapperElement(this.rootRef.current);
69012
+ }
69013
+ };
69014
+ SurveyRowElement.prototype.componentWillUnmount = function () {
69015
+ _super.prototype.componentWillUnmount.call(this);
69016
+ this.element.setWrapperElement(undefined);
69017
+ };
68543
69018
  SurveyRowElement.prototype.shouldComponentUpdate = function (nextProps, nextState) {
68544
69019
  if (!_super.prototype.shouldComponentUpdate.call(this, nextProps, nextState))
68545
69020
  return false;
69021
+ if (nextProps.element !== this.element) {
69022
+ if (nextProps.element) {
69023
+ nextProps.element.setWrapperElement(this.rootRef.current);
69024
+ }
69025
+ if (this.element) {
69026
+ this.element.setWrapperElement(undefined);
69027
+ }
69028
+ }
68546
69029
  this.element.cssClasses;
68547
69030
  return true;
68548
69031
  };
@@ -68556,7 +69039,7 @@ var SurveyRowElement = /** @class */ (function (_super) {
68556
69039
  el.focusIn();
68557
69040
  }
68558
69041
  };
68559
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: css.questionWrapper, style: element.rootStyle, "data-key": innerElement.key, key: innerElement.key, onFocus: focusIn }, this.row.isNeedRender ? innerElement : _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.createElement(element.skeletonComponentName, { element: element, css: this.css, })));
69042
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: css.questionWrapper, style: element.rootStyle, "data-key": innerElement.key, key: innerElement.key, onFocus: focusIn, ref: this.rootRef }, this.row.isNeedRender ? innerElement : _element_factory__WEBPACK_IMPORTED_MODULE_2__["ReactElementFactory"].Instance.createElement(element.skeletonComponentName, { element: element, css: this.css, })));
68560
69043
  };
68561
69044
  SurveyRowElement.prototype.createElement = function (element, elementIndex) {
68562
69045
  var index = elementIndex ? "-" + elementIndex : 0;
@@ -69099,6 +69582,10 @@ var SurveyPage = /** @class */ (function (_super) {
69099
69582
  enumerable: false,
69100
69583
  configurable: true
69101
69584
  });
69585
+ // shouldComponentUpdate(nextProps: any, nextState: any): boolean {
69586
+ // if(!super.shouldComponentUpdate(nextProps, nextState)) return false;
69587
+ // return true;
69588
+ // }
69102
69589
  SurveyPage.prototype.renderElement = function () {
69103
69590
  var title = this.renderTitle();
69104
69591
  var description = this.renderDescription();
@@ -69239,13 +69726,15 @@ var SurveyPanelBase = /** @class */ (function (_super) {
69239
69726
  }
69240
69727
  }
69241
69728
  };
69729
+ SurveyPanelBase.prototype.getIsVisible = function () {
69730
+ return this.panelBase.isVisible;
69731
+ };
69242
69732
  SurveyPanelBase.prototype.canRender = function () {
69243
- return (_super.prototype.canRender.call(this) && !!this.survey && !!this.panelBase
69244
- && this.panelBase.isVisible && !!this.panelBase.survey);
69733
+ return (_super.prototype.canRender.call(this) && !!this.survey && !!this.panelBase && !!this.panelBase.survey && this.getIsVisible());
69245
69734
  };
69246
69735
  SurveyPanelBase.prototype.renderRows = function (css) {
69247
69736
  var _this = this;
69248
- return this.panelBase.rows.map(function (row) { return _this.createRow(row, css); });
69737
+ return this.panelBase.visibleRows.map(function (row) { return _this.createRow(row, css); });
69249
69738
  };
69250
69739
  SurveyPanelBase.prototype.createRow = function (row, css) {
69251
69740
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_row__WEBPACK_IMPORTED_MODULE_2__["SurveyRow"], { key: row.id, row: row, survey: this.survey, creator: this.creator, css: css }));
@@ -69321,11 +69810,11 @@ var SurveyPanel = /** @class */ (function (_super) {
69321
69810
  var errors = (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_reactquestion__WEBPACK_IMPORTED_MODULE_1__["SurveyElementErrors"], { element: this.panelBase, cssClasses: this.panelBase.cssClasses, creator: this.creator }));
69322
69811
  var style = {
69323
69812
  paddingLeft: this.panel.innerPaddingLeft,
69324
- display: !this.panel.isCollapsed ? undefined : "none",
69813
+ display: this.panel.renderedIsExpanded ? undefined : "none",
69325
69814
  };
69326
69815
  var content = null;
69327
- if (!this.panel.isCollapsed || this.hasBeenExpanded) {
69328
- this.hasBeenExpanded = true;
69816
+ if (this.panel.renderedIsExpanded) {
69817
+ // this.hasBeenExpanded = true;
69329
69818
  var rows = this.renderRows(this.panelBase.cssClasses);
69330
69819
  var className = this.panelBase.cssClasses.panel.content;
69331
69820
  content = this.renderContent(style, rows, className);
@@ -69377,6 +69866,9 @@ var SurveyPanel = /** @class */ (function (_super) {
69377
69866
  return null;
69378
69867
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_6__["SurveyActionBar"], { model: footerToolbar });
69379
69868
  };
69869
+ SurveyPanel.prototype.getIsVisible = function () {
69870
+ return this.panelBase.getIsContentVisible();
69871
+ };
69380
69872
  return SurveyPanel;
69381
69873
  }(_panel_base__WEBPACK_IMPORTED_MODULE_4__["SurveyPanelBase"]));
69382
69874
 
@@ -69574,7 +70066,11 @@ var SurveyProgressButtons = /** @class */ (function (_super) {
69574
70066
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsConnector }),
69575
70067
  this.state.canShowItemTitles ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
69576
70068
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: page.renderedNavigationTitle }, page.renderedNavigationTitle),
69577
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageDescription, title: page.navigationDescription }, page.navigationDescription)) : null));
70069
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageDescription, title: page.navigationDescription }, page.navigationDescription)) : null,
70070
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsButton },
70071
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsButtonBackground }),
70072
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsButtonContent }),
70073
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, this.model.getItemNumber(page)))));
69578
70074
  };
69579
70075
  SurveyProgressButtons.prototype.clickScrollButton = function (listContainerElement, isLeftScroll) {
69580
70076
  if (!!listContainerElement) {
@@ -70355,8 +70851,7 @@ var SurveyQuestion = /** @class */ (function (_super) {
70355
70851
  return _this;
70356
70852
  }
70357
70853
  SurveyQuestion.renderQuestionBody = function (creator, question) {
70358
- if (!question.isVisible)
70359
- return null;
70854
+ // if (!question.isVisible) return null;
70360
70855
  var customWidget = question.customWidget;
70361
70856
  if (!customWidget) {
70362
70857
  return creator.createQuestionElement(question);
@@ -70422,13 +70917,12 @@ var SurveyQuestion = /** @class */ (function (_super) {
70422
70917
  SurveyQuestion.prototype.canRender = function () {
70423
70918
  return (_super.prototype.canRender.call(this) &&
70424
70919
  !!this.question &&
70425
- !!this.creator &&
70426
- this.question.isVisible);
70920
+ !!this.creator);
70427
70921
  };
70428
70922
  SurveyQuestion.prototype.renderQuestionContent = function () {
70429
70923
  var question = this.question;
70430
70924
  var contentStyle = {
70431
- display: !this.question.isCollapsed ? "" : "none",
70925
+ display: this.question.renderedIsExpanded ? "" : "none",
70432
70926
  };
70433
70927
  var cssClasses = question.cssClasses;
70434
70928
  var questionRender = this.renderQuestion();
@@ -73313,7 +73807,7 @@ var SurveyQuestionPanelDynamicItem = /** @class */ (function (_super) {
73313
73807
  var separator = this.question.showSeparator(this.index) ?
73314
73808
  (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("hr", { className: this.question.cssClasses.separator })) : null;
73315
73809
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
73316
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getPanelWrapperCss() },
73810
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.question.getPanelWrapperCss(this.panel) },
73317
73811
  panel,
73318
73812
  removeButton),
73319
73813
  separator));
@@ -74295,7 +74789,7 @@ var SurveyRow = /** @class */ (function (_super) {
74295
74789
  configurable: true
74296
74790
  });
74297
74791
  SurveyRow.prototype.canRender = function () {
74298
- return !!this.row && !!this.survey && !!this.creator && this.row.visible;
74792
+ return !!this.row && !!this.survey && !!this.creator;
74299
74793
  };
74300
74794
  SurveyRow.prototype.renderElementContent = function () {
74301
74795
  var _this = this;
@@ -74316,6 +74810,9 @@ var SurveyRow = /** @class */ (function (_super) {
74316
74810
  var _this = this;
74317
74811
  _super.prototype.componentDidMount.call(this);
74318
74812
  var el = this.rootRef.current;
74813
+ if (this.rootRef.current) {
74814
+ this.row.setRootElement(this.rootRef.current);
74815
+ }
74319
74816
  if (!!el && !this.row.isNeedRender) {
74320
74817
  var rowContainerDiv = el;
74321
74818
  setTimeout(function () {
@@ -74328,6 +74825,8 @@ var SurveyRow = /** @class */ (function (_super) {
74328
74825
  return false;
74329
74826
  if (nextProps.row !== this.row) {
74330
74827
  nextProps.row.isNeedRender = this.row.isNeedRender;
74828
+ nextProps.row.setRootElement(this.rootRef.current);
74829
+ this.row.setRootElement(undefined);
74331
74830
  this.stopLazyRendering();
74332
74831
  }
74333
74832
  this.recalculateCss();
@@ -74339,6 +74838,7 @@ var SurveyRow = /** @class */ (function (_super) {
74339
74838
  };
74340
74839
  SurveyRow.prototype.componentWillUnmount = function () {
74341
74840
  _super.prototype.componentWillUnmount.call(this);
74841
+ this.row.setRootElement(undefined);
74342
74842
  this.stopLazyRendering();
74343
74843
  };
74344
74844
  SurveyRow.prototype.createElement = function (element, elementIndex) {
@@ -76070,7 +76570,9 @@ __webpack_require__.r(__webpack_exports__);
76070
76570
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
76071
76571
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
76072
76572
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
76073
- /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
76573
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
76574
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
76575
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
76074
76576
  var __extends = (undefined && undefined.__extends) || (function () {
76075
76577
  var extendStatics = function (d, b) {
76076
76578
  extendStatics = Object.setPrototypeOf ||
@@ -76100,6 +76602,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
76100
76602
 
76101
76603
 
76102
76604
 
76605
+
76606
+
76103
76607
  /**
76104
76608
  * A base class for the [`SurveyElement`](https://surveyjs.io/form-library/documentation/surveyelement) and [`SurveyModel`](https://surveyjs.io/form-library/documentation/surveymodel) classes.
76105
76609
  */
@@ -76284,6 +76788,20 @@ var SurveyElement = /** @class */ (function (_super) {
76284
76788
  _this.isEditableTemplateElement = false;
76285
76789
  _this.isInteractiveDesignElement = true;
76286
76790
  _this.isSingleInRow = true;
76791
+ _this._renderedIsExpanded = true;
76792
+ _this._isAnimatingCollapseExpand = false;
76793
+ _this.animationCollapsed = new _utils_animation__WEBPACK_IMPORTED_MODULE_7__["AnimationBoolean"](_this.getExpandCollapseAnimationOptions(), function (val) {
76794
+ _this._renderedIsExpanded = val;
76795
+ if (_this.animationAllowed) {
76796
+ if (val) {
76797
+ _this.isAnimatingCollapseExpand = true;
76798
+ }
76799
+ else {
76800
+ _this.updateElementCss(false);
76801
+ }
76802
+ }
76803
+ }, function () { return _this.renderedIsExpanded; });
76804
+ _this.animationAllowedValue = true;
76287
76805
  _this.name = name;
76288
76806
  _this.createNewArray("errors");
76289
76807
  _this.createNewArray("titleActions");
@@ -76329,11 +76847,11 @@ var SurveyElement = /** @class */ (function (_super) {
76329
76847
  elLeft = el.getBoundingClientRect().left;
76330
76848
  needScroll = elLeft < 0;
76331
76849
  }
76332
- if (!needScroll && _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].isAvailable()) {
76333
- var height = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerHeight();
76850
+ if (!needScroll && _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].isAvailable()) {
76851
+ var height = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getInnerHeight();
76334
76852
  needScroll = height > 0 && height < elTop;
76335
76853
  if (!needScroll && checkLeft) {
76336
- var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerWidth();
76854
+ var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getInnerWidth();
76337
76855
  needScroll = width > 0 && width < elLeft;
76338
76856
  }
76339
76857
  }
@@ -76361,7 +76879,7 @@ var SurveyElement = /** @class */ (function (_super) {
76361
76879
  return null;
76362
76880
  };
76363
76881
  SurveyElement.FocusElement = function (elementId) {
76364
- if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].isAvailable())
76882
+ if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].isAvailable())
76365
76883
  return false;
76366
76884
  var res = SurveyElement.focusElementCore(elementId);
76367
76885
  if (!res) {
@@ -76444,6 +76962,7 @@ var SurveyElement = /** @class */ (function (_super) {
76444
76962
  },
76445
76963
  set: function (val) {
76446
76964
  this.setPropertyValue("state", val);
76965
+ this.renderedIsExpanded = !(this.state === "collapsed" && !this.isDesignMode);
76447
76966
  },
76448
76967
  enumerable: false,
76449
76968
  configurable: true
@@ -77098,7 +77617,7 @@ var SurveyElement = /** @class */ (function (_super) {
77098
77617
  });
77099
77618
  Object.defineProperty(SurveyElement.prototype, "hasParent", {
77100
77619
  get: function () {
77101
- return (this.parent && !this.parent.isPage && (!this.parent.originalPage || this.survey.isShowingPreview)) || (this.parent === undefined);
77620
+ return (this.parent && !this.parent.isPage && (!this.parent.originalPage)) || (this.parent === undefined);
77102
77621
  },
77103
77622
  enumerable: false,
77104
77623
  configurable: true
@@ -77120,11 +77639,14 @@ var SurveyElement = /** @class */ (function (_super) {
77120
77639
  return this.shouldAddRunnerStyles() && (this.hasParent);
77121
77640
  };
77122
77641
  SurveyElement.prototype.getCssRoot = function (cssClasses) {
77642
+ var isExpanadable = !!this.isCollapsed || !!this.isExpanded;
77123
77643
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
77124
77644
  .append(cssClasses.withFrame, this.getHasFrameV2() && !this.isCompact)
77125
77645
  .append(cssClasses.compact, this.isCompact && this.getHasFrameV2())
77126
77646
  .append(cssClasses.collapsed, !!this.isCollapsed)
77127
- .append(cssClasses.expanded, !!this.isExpanded)
77647
+ .append(cssClasses.expandableAnimating, isExpanadable && this.isAnimatingCollapseExpand)
77648
+ .append(cssClasses.expanded, !!this.isExpanded && this.renderedIsExpanded)
77649
+ .append(cssClasses.expandable, isExpanadable)
77128
77650
  .append(cssClasses.nested, this.getIsNested())
77129
77651
  .toString();
77130
77652
  };
@@ -77276,12 +77798,12 @@ var SurveyElement = /** @class */ (function (_super) {
77276
77798
  });
77277
77799
  SurveyElement.prototype.isContainsSelection = function (el) {
77278
77800
  var elementWithSelection = undefined;
77279
- var _document = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].getDocument();
77280
- if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].isAvailable() && !!_document && _document["selection"]) {
77801
+ var _document = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].getDocument();
77802
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].isAvailable() && !!_document && _document["selection"]) {
77281
77803
  elementWithSelection = _document["selection"].createRange().parentElement();
77282
77804
  }
77283
77805
  else {
77284
- var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getSelection();
77806
+ var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getSelection();
77285
77807
  if (!!selection && selection.rangeCount > 0) {
77286
77808
  var range = selection.getRangeAt(0);
77287
77809
  if (range.startOffset !== range.endOffset) {
@@ -77346,6 +77868,84 @@ var SurveyElement = /** @class */ (function (_super) {
77346
77868
  });
77347
77869
  }
77348
77870
  };
77871
+ SurveyElement.prototype.setWrapperElement = function (element) {
77872
+ this.wrapperElement = element;
77873
+ };
77874
+ SurveyElement.prototype.getWrapperElement = function () {
77875
+ return this.wrapperElement;
77876
+ };
77877
+ Object.defineProperty(SurveyElement.prototype, "isAnimatingCollapseExpand", {
77878
+ get: function () {
77879
+ return this._isAnimatingCollapseExpand || this._renderedIsExpanded != this.isExpanded;
77880
+ },
77881
+ set: function (val) {
77882
+ if (val !== this._isAnimatingCollapseExpand) {
77883
+ this._isAnimatingCollapseExpand = val;
77884
+ this.updateElementCss(false);
77885
+ }
77886
+ },
77887
+ enumerable: false,
77888
+ configurable: true
77889
+ });
77890
+ SurveyElement.prototype.getExpandCollapseAnimationOptions = function () {
77891
+ var _this = this;
77892
+ var beforeRunAnimation = function (el) {
77893
+ _this.isAnimatingCollapseExpand = true;
77894
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
77895
+ };
77896
+ var afterRunAnimation = function (el) {
77897
+ _this.isAnimatingCollapseExpand = false;
77898
+ };
77899
+ return {
77900
+ getEnterOptions: function () {
77901
+ var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
77902
+ return {
77903
+ cssClass: cssClasses.contentFadeIn,
77904
+ onBeforeRunAnimation: beforeRunAnimation,
77905
+ onAfterRunAnimation: afterRunAnimation,
77906
+ };
77907
+ },
77908
+ getLeaveOptions: function () {
77909
+ var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
77910
+ return { cssClass: cssClasses.contentFadeOut,
77911
+ onBeforeRunAnimation: beforeRunAnimation,
77912
+ onAfterRunAnimation: afterRunAnimation
77913
+ };
77914
+ },
77915
+ getAnimatedElement: function () {
77916
+ var _a;
77917
+ var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
77918
+ if (cssClasses.content) {
77919
+ var selector = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["classesToSelector"])(cssClasses.content);
77920
+ if (selector) {
77921
+ return (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(selector);
77922
+ }
77923
+ }
77924
+ return undefined;
77925
+ },
77926
+ isAnimationEnabled: function () { return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].animationEnabled && _this.animationAllowed && !_this.isDesignMode; }
77927
+ };
77928
+ };
77929
+ Object.defineProperty(SurveyElement.prototype, "renderedIsExpanded", {
77930
+ get: function () {
77931
+ return !!this._renderedIsExpanded;
77932
+ },
77933
+ set: function (val) {
77934
+ this.animationCollapsed.sync(val);
77935
+ },
77936
+ enumerable: false,
77937
+ configurable: true
77938
+ });
77939
+ Object.defineProperty(SurveyElement.prototype, "animationAllowed", {
77940
+ get: function () {
77941
+ return !this.isLoadingFromJson && !this.isDisposed && !!this.survey && this.animationAllowedValue;
77942
+ },
77943
+ set: function (val) {
77944
+ this.animationAllowedValue = val;
77945
+ },
77946
+ enumerable: false,
77947
+ configurable: true
77948
+ });
77349
77949
  SurveyElement.prototype.dispose = function () {
77350
77950
  _super.prototype.dispose.call(this);
77351
77951
  if (this.titleToolbarValue) {
@@ -77368,6 +77968,9 @@ var SurveyElement = /** @class */ (function (_super) {
77368
77968
  __decorate([
77369
77969
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
77370
77970
  ], SurveyElement.prototype, "allowRootStyle", void 0);
77971
+ __decorate([
77972
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
77973
+ ], SurveyElement.prototype, "_renderedIsExpanded", void 0);
77371
77974
  return SurveyElement;
77372
77975
  }(SurveyElementCore));
77373
77976
 
@@ -82854,14 +83457,12 @@ var SurveyModel = /** @class */ (function (_super) {
82854
83457
  };
82855
83458
  SurveyModel.prototype.processResponsiveness = function (width, mobileWidth) {
82856
83459
  var isMobile = width < mobileWidth;
82857
- this.layoutElements.forEach(function (layoutElement) { return layoutElement.processResponsiveness && layoutElement.processResponsiveness(width); });
82858
- if (this.isMobile === isMobile) {
82859
- return false;
82860
- }
82861
- else {
83460
+ var isMobileChanged = this.isMobile !== isMobile;
83461
+ if (isMobileChanged) {
82862
83462
  this.setIsMobile(isMobile);
82863
- return true;
82864
83463
  }
83464
+ this.layoutElements.forEach(function (layoutElement) { return layoutElement.processResponsiveness && layoutElement.processResponsiveness(width); });
83465
+ return isMobileChanged;
82865
83466
  };
82866
83467
  SurveyModel.prototype.triggerResponsiveness = function (hard) {
82867
83468
  this.getAllQuestions().forEach(function (question) {
@@ -85606,7 +86207,7 @@ var SurveyModel = /** @class */ (function (_super) {
85606
86207
  }
85607
86208
  }
85608
86209
  else if (isStrCiEqual(layoutElement.id, "advanced-header")) {
85609
- if (this.state === "running" && layoutElement.container === container) {
86210
+ if ((this.state === "running" || this.state === "starting") && layoutElement.container === container) {
85610
86211
  containerLayoutElements.push(layoutElement);
85611
86212
  }
85612
86213
  }
@@ -87741,6 +88342,287 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("runexpressiontr
87741
88342
  }, "surveytrigger");
87742
88343
 
87743
88344
 
88345
+ /***/ }),
88346
+
88347
+ /***/ "./src/utils/animation.ts":
88348
+ /*!********************************!*\
88349
+ !*** ./src/utils/animation.ts ***!
88350
+ \********************************/
88351
+ /*! exports provided: AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup */
88352
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
88353
+
88354
+ "use strict";
88355
+ __webpack_require__.r(__webpack_exports__);
88356
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return AnimationUtils; });
88357
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return AnimationPropertyUtils; });
88358
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return AnimationGroupUtils; });
88359
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return AnimationBoolean; });
88360
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return AnimationGroup; });
88361
+ /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
88362
+ var __extends = (undefined && undefined.__extends) || (function () {
88363
+ var extendStatics = function (d, b) {
88364
+ extendStatics = Object.setPrototypeOf ||
88365
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
88366
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
88367
+ return extendStatics(d, b);
88368
+ };
88369
+ return function (d, b) {
88370
+ if (typeof b !== "function" && b !== null)
88371
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
88372
+ extendStatics(d, b);
88373
+ function __() { this.constructor = d; }
88374
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
88375
+ };
88376
+ })();
88377
+
88378
+ var AnimationUtils = /** @class */ (function () {
88379
+ function AnimationUtils() {
88380
+ this.cancelQueue = [];
88381
+ }
88382
+ AnimationUtils.prototype.getMsFromRule = function (value) {
88383
+ if (value === "auto")
88384
+ return 0;
88385
+ return Number(value.slice(0, -1).replace(",", ".")) * 1000;
88386
+ };
88387
+ AnimationUtils.prototype.getAnimationsCount = function (element) {
88388
+ var animationName = "";
88389
+ if (getComputedStyle) {
88390
+ animationName = getComputedStyle(element).animationName;
88391
+ }
88392
+ return (animationName && animationName != "none" ? animationName.split(", ").length : 0);
88393
+ };
88394
+ AnimationUtils.prototype.getAnimationDuration = function (element) {
88395
+ var style = getComputedStyle(element);
88396
+ var delays = style["animationDelay"].split(", ");
88397
+ var durations = style["animationDuration"].split(", ");
88398
+ var duration = 0;
88399
+ for (var i = 0; i < Math.max(durations.length, delays.length); i++) {
88400
+ duration = Math.max(duration, this.getMsFromRule(durations[i % durations.length]) + this.getMsFromRule(delays[i % delays.length]));
88401
+ }
88402
+ return duration;
88403
+ };
88404
+ AnimationUtils.prototype.onAnimationEnd = function (element, callback, options) {
88405
+ var _this = this;
88406
+ var cancelTimeout;
88407
+ var animationsCount = this.getAnimationsCount(element);
88408
+ var onEndCallback = function (isCancel) {
88409
+ if (isCancel === void 0) { isCancel = true; }
88410
+ options.onAfterRunAnimation && options.onAfterRunAnimation(element);
88411
+ callback(isCancel);
88412
+ clearTimeout(cancelTimeout);
88413
+ _this.cancelQueue.splice(_this.cancelQueue.indexOf(onEndCallback), 1);
88414
+ element.removeEventListener("animationend", onAnimationEndCallback);
88415
+ };
88416
+ var onAnimationEndCallback = function (event) {
88417
+ if (event.target == event.currentTarget && --animationsCount <= 0) {
88418
+ onEndCallback(false);
88419
+ }
88420
+ };
88421
+ if (animationsCount > 0) {
88422
+ element.addEventListener("animationend", onAnimationEndCallback);
88423
+ this.cancelQueue.push(onEndCallback);
88424
+ cancelTimeout = setTimeout(function () {
88425
+ onEndCallback(false);
88426
+ }, this.getAnimationDuration(element) + 10);
88427
+ }
88428
+ else {
88429
+ callback(true);
88430
+ }
88431
+ };
88432
+ AnimationUtils.prototype.beforeAnimationRun = function (element, options) {
88433
+ if (element) {
88434
+ options.onBeforeRunAnimation && options.onBeforeRunAnimation(element);
88435
+ }
88436
+ };
88437
+ AnimationUtils.prototype.runLeaveAnimation = function (element, options, callback) {
88438
+ if (element && options.cssClass) {
88439
+ element.classList.add(options.cssClass);
88440
+ var onAnimationEndCallback = function (isCancel) {
88441
+ callback();
88442
+ if (isCancel) {
88443
+ element.classList.remove(options.cssClass);
88444
+ }
88445
+ else {
88446
+ requestAnimationFrame(function () {
88447
+ requestAnimationFrame(function () {
88448
+ element.classList.remove(options.cssClass);
88449
+ });
88450
+ });
88451
+ }
88452
+ };
88453
+ this.onAnimationEnd(element, onAnimationEndCallback, options);
88454
+ }
88455
+ else {
88456
+ callback();
88457
+ }
88458
+ };
88459
+ AnimationUtils.prototype.runEnterAnimation = function (element, options) {
88460
+ if (element && options.cssClass) {
88461
+ element.classList.add(options.cssClass);
88462
+ this.onAnimationEnd(element, function () {
88463
+ element.classList.remove(options.cssClass);
88464
+ }, options);
88465
+ }
88466
+ };
88467
+ AnimationUtils.prototype.cancel = function () {
88468
+ this.cancelQueue.forEach(function (func) { return func(); });
88469
+ this.cancelQueue = [];
88470
+ };
88471
+ return AnimationUtils;
88472
+ }());
88473
+
88474
+ var AnimationPropertyUtils = /** @class */ (function (_super) {
88475
+ __extends(AnimationPropertyUtils, _super);
88476
+ function AnimationPropertyUtils() {
88477
+ return _super !== null && _super.apply(this, arguments) || this;
88478
+ }
88479
+ AnimationPropertyUtils.prototype.onEnter = function (getElement, options) {
88480
+ var _this = this;
88481
+ var callback = function () {
88482
+ var element = getElement();
88483
+ _this.beforeAnimationRun(element, options);
88484
+ _this.runEnterAnimation(element, options);
88485
+ };
88486
+ requestAnimationFrame(function () {
88487
+ if (getElement()) {
88488
+ callback();
88489
+ }
88490
+ else {
88491
+ requestAnimationFrame(callback);
88492
+ }
88493
+ });
88494
+ };
88495
+ AnimationPropertyUtils.prototype.onLeave = function (getElement, callback, options) {
88496
+ var element = getElement();
88497
+ this.beforeAnimationRun(element, options);
88498
+ this.runLeaveAnimation(element, options, callback);
88499
+ };
88500
+ return AnimationPropertyUtils;
88501
+ }(AnimationUtils));
88502
+
88503
+ var AnimationGroupUtils = /** @class */ (function (_super) {
88504
+ __extends(AnimationGroupUtils, _super);
88505
+ function AnimationGroupUtils() {
88506
+ return _super !== null && _super.apply(this, arguments) || this;
88507
+ }
88508
+ AnimationGroupUtils.prototype.onEnter = function (getElement, getOptions, elements) {
88509
+ var _this = this;
88510
+ if (elements.length == 0)
88511
+ return;
88512
+ requestAnimationFrame(function () {
88513
+ var callback = function () {
88514
+ elements.forEach(function (el) {
88515
+ _this.beforeAnimationRun(getElement(el), getOptions(el));
88516
+ });
88517
+ elements.forEach(function (el) {
88518
+ _this.runEnterAnimation(getElement(el), getOptions(el));
88519
+ });
88520
+ };
88521
+ if (!getElement(elements[0])) {
88522
+ requestAnimationFrame(callback);
88523
+ }
88524
+ else {
88525
+ callback();
88526
+ }
88527
+ });
88528
+ };
88529
+ AnimationGroupUtils.prototype.onLeave = function (getElement, callback, getOptions, elements) {
88530
+ var _this = this;
88531
+ elements.forEach(function (el) {
88532
+ _this.beforeAnimationRun(getElement(el), getOptions(el));
88533
+ });
88534
+ var counter = elements.length;
88535
+ var onEndCallback = function () {
88536
+ if (--counter <= 0) {
88537
+ callback();
88538
+ }
88539
+ };
88540
+ elements.forEach(function (el) {
88541
+ _this.runLeaveAnimation(getElement(el), getOptions(el), onEndCallback);
88542
+ });
88543
+ };
88544
+ return AnimationGroupUtils;
88545
+ }(AnimationUtils));
88546
+
88547
+ var AnimationProperty = /** @class */ (function () {
88548
+ function AnimationProperty(animationOptions, update, getCurrentValue) {
88549
+ var _this = this;
88550
+ this.animationOptions = animationOptions;
88551
+ this.update = update;
88552
+ this.getCurrentValue = getCurrentValue;
88553
+ this._debouncedSync = Object(_taskmanager__WEBPACK_IMPORTED_MODULE_0__["debounce"])(function (newValue) {
88554
+ _this.animation.cancel();
88555
+ _this._sync(newValue);
88556
+ });
88557
+ }
88558
+ AnimationProperty.prototype.sync = function (newValue) {
88559
+ if (this.animationOptions.isAnimationEnabled()) {
88560
+ this._debouncedSync.run(newValue);
88561
+ }
88562
+ else {
88563
+ this.update(newValue);
88564
+ }
88565
+ };
88566
+ AnimationProperty.prototype.cancel = function () {
88567
+ this.animation.cancel();
88568
+ this._debouncedSync.cancel();
88569
+ };
88570
+ return AnimationProperty;
88571
+ }());
88572
+ var AnimationBoolean = /** @class */ (function (_super) {
88573
+ __extends(AnimationBoolean, _super);
88574
+ function AnimationBoolean() {
88575
+ var _this = _super !== null && _super.apply(this, arguments) || this;
88576
+ _this.animation = new AnimationPropertyUtils();
88577
+ return _this;
88578
+ }
88579
+ AnimationBoolean.prototype._sync = function (newValue) {
88580
+ var _this = this;
88581
+ if (newValue !== this.getCurrentValue()) {
88582
+ if (newValue) {
88583
+ this.update(newValue);
88584
+ this.animation.onEnter(function () { return _this.animationOptions.getAnimatedElement(); }, this.animationOptions.getEnterOptions());
88585
+ }
88586
+ else {
88587
+ this.animation.onLeave(function () { return _this.animationOptions.getAnimatedElement(); }, function () {
88588
+ _this.update(newValue);
88589
+ }, this.animationOptions.getLeaveOptions());
88590
+ }
88591
+ }
88592
+ else {
88593
+ this.update(newValue);
88594
+ }
88595
+ };
88596
+ return AnimationBoolean;
88597
+ }(AnimationProperty));
88598
+
88599
+ var AnimationGroup = /** @class */ (function (_super) {
88600
+ __extends(AnimationGroup, _super);
88601
+ function AnimationGroup() {
88602
+ var _this = _super !== null && _super.apply(this, arguments) || this;
88603
+ _this.animation = new AnimationGroupUtils();
88604
+ return _this;
88605
+ }
88606
+ AnimationGroup.prototype._sync = function (newValue) {
88607
+ var _this = this;
88608
+ var oldValue = this.getCurrentValue();
88609
+ var itemsToAdd = newValue.filter(function (el) { return oldValue.indexOf(el) < 0; });
88610
+ var deletedItems = oldValue.filter(function (el) { return newValue.indexOf(el) < 0; });
88611
+ this.animation.onEnter(function (el) { return _this.animationOptions.getAnimatedElement(el); }, function (el) { return _this.animationOptions.getEnterOptions(el); }, itemsToAdd);
88612
+ if (itemsToAdd.length == 0 && (deletedItems === null || deletedItems === void 0 ? void 0 : deletedItems.length) > 0) {
88613
+ this.animation.onLeave(function (el) { return _this.animationOptions.getAnimatedElement(el); }, function () {
88614
+ _this.update(newValue);
88615
+ }, function (el) { return _this.animationOptions.getLeaveOptions(el); }, deletedItems);
88616
+ }
88617
+ else {
88618
+ this.update(newValue);
88619
+ }
88620
+ };
88621
+ return AnimationGroup;
88622
+ }(AnimationProperty));
88623
+
88624
+
88625
+
87744
88626
  /***/ }),
87745
88627
 
87746
88628
  /***/ "./src/utils/camera.ts":
@@ -88480,6 +89362,117 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
88480
89362
 
88481
89363
 
88482
89364
 
89365
+ /***/ }),
89366
+
89367
+ /***/ "./src/utils/taskmanager.ts":
89368
+ /*!**********************************!*\
89369
+ !*** ./src/utils/taskmanager.ts ***!
89370
+ \**********************************/
89371
+ /*! exports provided: Task, TaskManger, debounce */
89372
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
89373
+
89374
+ "use strict";
89375
+ __webpack_require__.r(__webpack_exports__);
89376
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Task", function() { return Task; });
89377
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TaskManger", function() { return TaskManger; });
89378
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; });
89379
+ var Task = /** @class */ (function () {
89380
+ function Task(func, isMultiple) {
89381
+ var _this = this;
89382
+ if (isMultiple === void 0) { isMultiple = false; }
89383
+ this.func = func;
89384
+ this.isMultiple = isMultiple;
89385
+ this._isCompleted = false;
89386
+ this.execute = function () {
89387
+ if (!_this._isCompleted) {
89388
+ _this.func();
89389
+ _this._isCompleted = !_this.isMultiple;
89390
+ }
89391
+ };
89392
+ }
89393
+ Task.prototype.discard = function () {
89394
+ this._isCompleted = true;
89395
+ };
89396
+ Object.defineProperty(Task.prototype, "isCompleted", {
89397
+ get: function () {
89398
+ return this._isCompleted;
89399
+ },
89400
+ enumerable: false,
89401
+ configurable: true
89402
+ });
89403
+ return Task;
89404
+ }());
89405
+
89406
+ var TaskManger = /** @class */ (function () {
89407
+ function TaskManger(interval) {
89408
+ if (interval === void 0) { interval = 100; }
89409
+ this.interval = interval;
89410
+ setTimeout(TaskManger.Instance().tick, interval);
89411
+ }
89412
+ // dispose
89413
+ TaskManger.Instance = function () {
89414
+ if (!TaskManger.instance) {
89415
+ TaskManger.instance = new TaskManger();
89416
+ }
89417
+ return TaskManger.instance;
89418
+ };
89419
+ TaskManger.prototype.tick = function () {
89420
+ try {
89421
+ var newTasks = [];
89422
+ for (var i = 0; i < TaskManger.tasks.length; i++) {
89423
+ var task = TaskManger.tasks[i];
89424
+ task.execute();
89425
+ if (!task.isCompleted) {
89426
+ newTasks.push(task);
89427
+ }
89428
+ else {
89429
+ if (typeof task.dispose === "function") {
89430
+ task.dispose();
89431
+ }
89432
+ }
89433
+ }
89434
+ TaskManger.tasks = newTasks;
89435
+ }
89436
+ finally {
89437
+ setTimeout(TaskManger.Instance().tick, this.interval);
89438
+ }
89439
+ };
89440
+ TaskManger.schedule = function (task) {
89441
+ TaskManger.tasks.push(task);
89442
+ };
89443
+ TaskManger.instance = undefined;
89444
+ TaskManger.tasks = [];
89445
+ return TaskManger;
89446
+ }());
89447
+
89448
+ function debounce(func) {
89449
+ var _this = this;
89450
+ var isSheduled = false;
89451
+ var isCanceled = false;
89452
+ var funcArgs;
89453
+ return { run: (function () {
89454
+ var args = [];
89455
+ for (var _i = 0; _i < arguments.length; _i++) {
89456
+ args[_i] = arguments[_i];
89457
+ }
89458
+ isCanceled = false;
89459
+ funcArgs = args;
89460
+ if (!isSheduled) {
89461
+ isSheduled = true;
89462
+ queueMicrotask(function () {
89463
+ if (!isCanceled) {
89464
+ func.apply(_this, funcArgs);
89465
+ }
89466
+ isCanceled = false;
89467
+ isSheduled = false;
89468
+ });
89469
+ }
89470
+ }), cancel: function () {
89471
+ isCanceled = true;
89472
+ } };
89473
+ }
89474
+
89475
+
88483
89476
  /***/ }),
88484
89477
 
88485
89478
  /***/ "./src/utils/utils.ts":