survey-react 1.9.136 → 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.136
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: "",
@@ -5531,8 +5539,14 @@ var defaultV2Css = {
5531
5539
  row: "sd-row sd-clearfix",
5532
5540
  rowMultiple: "sd-row--multiple",
5533
5541
  rowCompact: "sd-row--compact",
5542
+ rowFadeIn: "sd-row--fade-in",
5543
+ rowFadeOut: "sd-row--fade-out",
5534
5544
  pageRow: "sd-page__row",
5535
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",
5536
5550
  mainRoot: "sd-element sd-question sd-row__question",
5537
5551
  flowRoot: "sd-element sd-question sd-row__question sd-row__question--flow",
5538
5552
  withFrame: "sd-element--with-frame",
@@ -5542,7 +5556,7 @@ var defaultV2Css = {
5542
5556
  headerLeft: "sd-question__header--location--left",
5543
5557
  headerTop: "sd-question__header--location-top sd-element__header--location-top",
5544
5558
  headerBottom: "sd-question__header--location--bottom",
5545
- content: "sd-question__content",
5559
+ content: "sd-element__content sd-question__content",
5546
5560
  contentSupportContainerQueries: "sd-question__content--support-container-queries",
5547
5561
  contentLeft: "sd-question__content--left",
5548
5562
  titleNumInline: "sd-element__title--num-inline",
@@ -5575,6 +5589,8 @@ var defaultV2Css = {
5575
5589
  hasErrorTop: "sd-question--error-top",
5576
5590
  hasErrorBottom: "sd-question--error-bottom",
5577
5591
  collapsed: "sd-element--collapsed",
5592
+ expandable: "sd-element--expandable",
5593
+ expandableAnimating: "sd-elemenet--expandable--animating",
5578
5594
  expanded: "sd-element--expanded",
5579
5595
  nested: "sd-element--nested",
5580
5596
  invisible: "sd-element--invisible",
@@ -6771,8 +6787,6 @@ var DragDropChoices = /** @class */ (function (_super) {
6771
6787
  DragDropChoices.prototype.afterDragOver = function (dropTargetNode) {
6772
6788
  if (this.isDropTargetDoesntChanged(this.isBottom))
6773
6789
  return;
6774
- if (this.dropTarget === this.draggedElement)
6775
- return;
6776
6790
  var choices = this.getVisibleChoices();
6777
6791
  var dropTargetIndex = choices.indexOf(this.dropTarget);
6778
6792
  var draggedElementIndex = choices.indexOf(this.draggedElement);
@@ -6997,7 +7011,9 @@ var DragDropCore = /** @class */ (function () {
6997
7011
  return;
6998
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
6999
7013
  this.isBottom = isBottom;
7000
- this.afterDragOver(dropTargetNode);
7014
+ if (this.draggedElement != this.dropTarget) {
7015
+ this.afterDragOver(dropTargetNode);
7016
+ }
7001
7017
  this.prevDropTarget = this.dropTarget;
7002
7018
  };
7003
7019
  DragDropCore.prototype.drop = function () {
@@ -7466,8 +7482,6 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7466
7482
  var _this = this;
7467
7483
  if (this.isDropTargetDoesntChanged(this.isBottom))
7468
7484
  return;
7469
- if (this.dropTarget === this.draggedElement)
7470
- return;
7471
7485
  var dropTargetIndex;
7472
7486
  var draggedElementIndex;
7473
7487
  var draggedRenderedRow;
@@ -7575,10 +7589,6 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7575
7589
  var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7576
7590
  node.style.cursor = "not-allowed";
7577
7591
  };
7578
- _this.doDrop = function () {
7579
- _this.parentElement.setValue();
7580
- return _this.parentElement;
7581
- };
7582
7592
  return _this;
7583
7593
  }
7584
7594
  Object.defineProperty(DragDropRankingChoices.prototype, "draggedElementType", {
@@ -7681,6 +7691,10 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7681
7691
  this.parentElement.currentDropTarget = this.draggedElement;
7682
7692
  _super.prototype.ghostPositionChanged.call(this);
7683
7693
  };
7694
+ DragDropRankingChoices.prototype.doDrop = function () {
7695
+ this.parentElement.setValue();
7696
+ return this.parentElement;
7697
+ };
7684
7698
  DragDropRankingChoices.prototype.clear = function () {
7685
7699
  if (!!this.parentElement) {
7686
7700
  this.parentElement.dropTargetNodeMove = null;
@@ -7705,7 +7719,8 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7705
7719
  "use strict";
7706
7720
  __webpack_require__.r(__webpack_exports__);
7707
7721
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return DragDropRankingSelectToRank; });
7708
- /* 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");
7709
7724
  var __extends = (undefined && undefined.__extends) || (function () {
7710
7725
  var extendStatics = function (d, b) {
7711
7726
  extendStatics = Object.setPrototypeOf ||
@@ -7722,10 +7737,37 @@ var __extends = (undefined && undefined.__extends) || (function () {
7722
7737
  };
7723
7738
  })();
7724
7739
 
7740
+
7725
7741
  var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7726
7742
  __extends(DragDropRankingSelectToRank, _super);
7727
7743
  function DragDropRankingSelectToRank() {
7728
- 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;
7729
7771
  }
7730
7772
  DragDropRankingSelectToRank.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7731
7773
  if (dragOverNode.dataset.ranking === "from-container" || dragOverNode.dataset.ranking === "to-container") {
@@ -7779,18 +7821,34 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7779
7821
  DragDropRankingSelectToRank.prototype.doRankBetween = function (dropTargetNode, fromChoicesArray, toChoicesArray, rankFunction) {
7780
7822
  var questionModel = this.parentElement;
7781
7823
  var _a = this.getIndixies(questionModel, fromChoicesArray, toChoicesArray), fromIndex = _a.fromIndex, toIndex = _a.toIndex;
7782
- rankFunction(questionModel, fromIndex, toIndex);
7783
- this.doUIEffects(dropTargetNode, fromIndex, toIndex);
7824
+ rankFunction(questionModel, fromIndex, toIndex, dropTargetNode);
7784
7825
  };
7785
7826
  DragDropRankingSelectToRank.prototype.getIndixies = function (model, fromChoicesArray, toChoicesArray) {
7786
7827
  var fromIndex = fromChoicesArray.indexOf(this.draggedElement);
7787
7828
  var toIndex = toChoicesArray.indexOf(this.dropTarget);
7788
7829
  if (toIndex === -1) {
7789
7830
  var length_1 = model.value.length;
7790
- 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++;
7791
7842
  }
7792
7843
  return { fromIndex: fromIndex, toIndex: toIndex };
7793
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
+ };
7794
7852
  DragDropRankingSelectToRank.prototype.doUIEffects = function (dropTargetNode, fromIndex, toIndex) {
7795
7853
  var questionModel = this.parentElement;
7796
7854
  var isDropToEmptyRankedContainer = this.dropTarget === "to-container" && questionModel.isEmpty();
@@ -7839,30 +7897,21 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7839
7897
  enumerable: false,
7840
7898
  configurable: true
7841
7899
  });
7842
- DragDropRankingSelectToRank.prototype.selectToRank = function (questionModel, fromIndex, toIndex) {
7843
- var rankingChoices = questionModel.rankingChoices;
7844
- var unRankingChoices = questionModel.unRankingChoices;
7845
- var item = unRankingChoices[fromIndex];
7846
- questionModel.isValueSetByUser = true;
7847
- rankingChoices.splice(toIndex, 0, item);
7848
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7849
- };
7850
- DragDropRankingSelectToRank.prototype.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7851
- var rankingChoices = questionModel.rankingChoices;
7900
+ DragDropRankingSelectToRank.prototype.updateChoices = function (questionModel, rankingChoices) {
7852
7901
  questionModel.isValueSetByUser = true;
7853
- rankingChoices.splice(fromIndex, 1);
7854
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7902
+ questionModel.rankingChoices = rankingChoices;
7903
+ questionModel.updateUnRankingChoices(rankingChoices);
7855
7904
  };
7856
- DragDropRankingSelectToRank.prototype.reorderRankedItem = function (questionModel, fromIndex, toIndex) {
7857
- var rankingChoices = questionModel.rankingChoices;
7858
- var item = rankingChoices[fromIndex];
7859
- questionModel.isValueSetByUser = true;
7860
- rankingChoices.splice(fromIndex, 1);
7861
- rankingChoices.splice(toIndex, 0, item);
7862
- 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);
7863
7912
  };
7864
7913
  return DragDropRankingSelectToRank;
7865
- }(_ranking_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingChoices"]));
7914
+ }(_ranking_choices__WEBPACK_IMPORTED_MODULE_1__["DragDropRankingChoices"]));
7866
7915
 
7867
7916
 
7868
7917
 
@@ -9621,8 +9670,8 @@ __webpack_require__.r(__webpack_exports__);
9621
9670
 
9622
9671
  var Version;
9623
9672
  var ReleaseDate;
9624
- Version = "" + "1.9.136";
9625
- ReleaseDate = "" + "2024-03-26";
9673
+ Version = "" + "1.9.137";
9674
+ ReleaseDate = "" + "2024-04-02";
9626
9675
  function checkLibraryVersion(ver, libraryName) {
9627
9676
  if (Version != ver) {
9628
9677
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9803,7 +9852,7 @@ function checkPrefix(prefix) {
9803
9852
  /*!**************************************!*\
9804
9853
  !*** ./src/entries/core-wo-model.ts ***!
9805
9854
  \**************************************/
9806
- /*! 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 */
9807
9856
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9808
9857
 
9809
9858
  "use strict";
@@ -10248,16 +10297,27 @@ __webpack_require__.r(__webpack_exports__);
10248
10297
 
10249
10298
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["ActionDropdownViewModel"]; });
10250
10299
 
10251
- /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../actions/adaptive-container */ "./src/actions/adaptive-container.ts");
10252
- /* 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"]; });
10253
10304
 
10254
- /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../actions/container */ "./src/actions/container.ts");
10255
- /* 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"]; });
10256
10306
 
10257
- /* 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"]; });
10258
10308
 
10259
- /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
10260
- /* 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"]; });
10261
10321
 
10262
10322
  // model
10263
10323
 
@@ -10276,13 +10336,14 @@ __webpack_require__.r(__webpack_exports__);
10276
10336
 
10277
10337
 
10278
10338
 
10339
+
10279
10340
  /***/ }),
10280
10341
 
10281
10342
  /***/ "./src/entries/core.ts":
10282
10343
  /*!*****************************!*\
10283
10344
  !*** ./src/entries/core.ts ***!
10284
10345
  \*****************************/
10285
- /*! 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 */
10286
10347
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10287
10348
 
10288
10349
  "use strict";
@@ -10720,6 +10781,16 @@ __webpack_require__.r(__webpack_exports__);
10720
10781
 
10721
10782
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ActionDropdownViewModel"]; });
10722
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
+
10723
10794
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
10724
10795
 
10725
10796
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -11153,7 +11224,7 @@ __webpack_require__.r(__webpack_exports__);
11153
11224
  /*!******************************!*\
11154
11225
  !*** ./src/entries/react.ts ***!
11155
11226
  \******************************/
11156
- /*! 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 */
11157
11228
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11158
11229
 
11159
11230
  "use strict";
@@ -11591,6 +11662,16 @@ __webpack_require__.r(__webpack_exports__);
11591
11662
 
11592
11663
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ActionDropdownViewModel"]; });
11593
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
+
11594
11675
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
11595
11676
 
11596
11677
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -24160,7 +24241,7 @@ var germanSurveyStrings = {
24160
24241
  questionsProgressText: "{0}/{1} Fragen beantwortet",
24161
24242
  emptySurvey: "Es sind keine Fragen vorhanden.",
24162
24243
  completingSurvey: "Vielen Dank, dass Sie die Umfrage abgeschlossen haben!",
24163
- 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.",
24164
24245
  loadingSurvey: "Umfrage wird geladen...",
24165
24246
  placeholder: "Bitte auswählen...",
24166
24247
  ratingOptionsCaption: "Tippen Sie hier, um zu bewerten...",
@@ -24496,7 +24577,7 @@ var hebrewSurveyStrings = {
24496
24577
  timerLimitAll: "הוצאת {0} מתוך {1} בדף זה ו- {2} מתוך {3} בסך הכל.",
24497
24578
  timerLimitPage: "הוצאת {0} מתוך {1} בדף זה.",
24498
24579
  timerLimitSurvey: "הוצאת סכום כולל של {0} מתוך {1}.",
24499
- clearCaption: "ברור",
24580
+ clearCaption: "לנקות",
24500
24581
  signaturePlaceHolder: "חתום כאן",
24501
24582
  chooseFileCaption: "בחר קובץ",
24502
24583
  takePhotoCaption: "צלם תמונה",
@@ -29946,7 +30027,6 @@ __webpack_require__.r(__webpack_exports__);
29946
30027
  var InputElementAdapter = /** @class */ (function () {
29947
30028
  function InputElementAdapter(inputMaskInstance, inputElement, value) {
29948
30029
  var _this = this;
29949
- if (value === void 0) { value = ""; }
29950
30030
  this.inputMaskInstance = inputMaskInstance;
29951
30031
  this.inputElement = inputElement;
29952
30032
  this.prevUnmaskedValue = undefined;
@@ -29965,8 +30045,15 @@ var InputElementAdapter = /** @class */ (function () {
29965
30045
  event.preventDefault();
29966
30046
  }
29967
30047
  };
29968
- this.inputElement.value = inputMaskInstance.getMaskedValue(value);
29969
- 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;
29970
30057
  inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);
29971
30058
  this.addInputEventListener();
29972
30059
  }
@@ -31616,7 +31703,7 @@ var PageModel = /** @class */ (function (_super) {
31616
31703
  configurable: true
31617
31704
  });
31618
31705
  PageModel.prototype.calcCssClasses = function (css) {
31619
- var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "" };
31706
+ var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "", rowFadeIn: "", rowFadeOut: "", rowFadeOutActive: "" };
31620
31707
  this.copyCssClasses(classes.page, css.page);
31621
31708
  this.copyCssClasses(classes.error, css.error);
31622
31709
  if (!!css.pageTitle) {
@@ -31637,6 +31724,15 @@ var PageModel = /** @class */ (function (_super) {
31637
31724
  if (!!css.rowCompact) {
31638
31725
  classes.rowCompact = css.rowCompact;
31639
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
+ }
31640
31736
  if (this.survey) {
31641
31737
  this.survey.updatePageCssClasses(this, classes);
31642
31738
  }
@@ -31862,7 +31958,8 @@ __webpack_require__.r(__webpack_exports__);
31862
31958
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
31863
31959
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
31864
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");
31865
- /* 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");
31866
31963
  var __extends = (undefined && undefined.__extends) || (function () {
31867
31964
  var extendStatics = function (d, b) {
31868
31965
  extendStatics = Object.setPrototypeOf ||
@@ -31901,6 +31998,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
31901
31998
 
31902
31999
 
31903
32000
 
32001
+
31904
32002
  var QuestionRowModel = /** @class */ (function (_super) {
31905
32003
  __extends(QuestionRowModel, _super);
31906
32004
  function QuestionRowModel(panel) {
@@ -31908,6 +32006,10 @@ var QuestionRowModel = /** @class */ (function (_super) {
31908
32006
  _this.panel = panel;
31909
32007
  _this._scrollableParent = undefined;
31910
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; });
31911
32013
  _this.idValue = QuestionRowModel.getRowId();
31912
32014
  _this.visible = panel.areInvisibleElementsShowing;
31913
32015
  _this.createNewArray("elements");
@@ -31920,12 +32022,12 @@ var QuestionRowModel = /** @class */ (function (_super) {
31920
32022
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
31921
32023
  var _this = this;
31922
32024
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
31923
- if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_11__["DomDocumentHelper"].isAvailable())
32025
+ if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomDocumentHelper"].isAvailable())
31924
32026
  return;
31925
32027
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
31926
32028
  // if this._scrollableParent is html the scroll event isn't fired, so we should use window
31927
- if (this._scrollableParent === _global_variables_utils__WEBPACK_IMPORTED_MODULE_11__["DomDocumentHelper"].getDocumentElement()) {
31928
- 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();
31929
32031
  }
31930
32032
  var hasScroll = this._scrollableParent.scrollHeight > this._scrollableParent.clientHeight;
31931
32033
  this.isNeedRender = !hasScroll;
@@ -31974,6 +32076,9 @@ var QuestionRowModel = /** @class */ (function (_super) {
31974
32076
  enumerable: false,
31975
32077
  configurable: true
31976
32078
  });
32079
+ QuestionRowModel.prototype.equalsCore = function (obj) {
32080
+ return this == obj;
32081
+ };
31977
32082
  Object.defineProperty(QuestionRowModel.prototype, "elements", {
31978
32083
  get: function () {
31979
32084
  return this.getPropertyValue("elements");
@@ -31981,10 +32086,48 @@ var QuestionRowModel = /** @class */ (function (_super) {
31981
32086
  enumerable: false,
31982
32087
  configurable: true
31983
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
+ };
31984
32116
  Object.defineProperty(QuestionRowModel.prototype, "visibleElements", {
31985
32117
  get: function () {
31986
32118
  return this.getPropertyValue("visibleElements");
31987
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
+ },
31988
32131
  enumerable: false,
31989
32132
  configurable: true
31990
32133
  });
@@ -31994,6 +32137,7 @@ var QuestionRowModel = /** @class */ (function (_super) {
31994
32137
  },
31995
32138
  set: function (val) {
31996
32139
  this.setPropertyValue("visible", val);
32140
+ this.onVisibleChangedCallback && this.onVisibleChangedCallback();
31997
32141
  },
31998
32142
  enumerable: false,
31999
32143
  configurable: true
@@ -32009,9 +32153,14 @@ var QuestionRowModel = /** @class */ (function (_super) {
32009
32153
  configurable: true
32010
32154
  });
32011
32155
  QuestionRowModel.prototype.updateVisible = function () {
32012
- var isVisible = this.calcVisible();
32013
- this.setWidth();
32014
- 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;
32015
32164
  };
32016
32165
  QuestionRowModel.prototype.addElement = function (q) {
32017
32166
  this.elements.push(q);
@@ -32085,27 +32234,6 @@ var QuestionRowModel = /** @class */ (function (_super) {
32085
32234
  QuestionRowModel.prototype.getRenderedWidthFromWidth = function (width) {
32086
32235
  return _helpers__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isNumber(width) ? width + "px" : width;
32087
32236
  };
32088
- QuestionRowModel.prototype.calcVisible = function () {
32089
- var visElements = [];
32090
- for (var i = 0; i < this.elements.length; i++) {
32091
- if (this.elements[i].isVisible) {
32092
- visElements.push(this.elements[i]);
32093
- }
32094
- }
32095
- if (this.needToUpdateVisibleElements(visElements)) {
32096
- this.setPropertyValue("visibleElements", visElements);
32097
- }
32098
- return visElements.length > 0;
32099
- };
32100
- QuestionRowModel.prototype.needToUpdateVisibleElements = function (visElements) {
32101
- if (visElements.length !== this.visibleElements.length)
32102
- return true;
32103
- for (var i = 0; i < visElements.length; i++) {
32104
- if (visElements[i] !== this.visibleElements[i])
32105
- return true;
32106
- }
32107
- return false;
32108
- };
32109
32237
  QuestionRowModel.prototype.dispose = function () {
32110
32238
  _super.prototype.dispose.call(this);
32111
32239
  this.stopLazyRendering();
@@ -32114,10 +32242,16 @@ var QuestionRowModel = /** @class */ (function (_super) {
32114
32242
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
32115
32243
  .append(this.panel.cssClasses.row)
32116
32244
  .append(this.panel.cssClasses.rowCompact, this.panel["isCompact"])
32117
- .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))
32118
32246
  .append(this.panel.cssClasses.rowMultiple, this.visibleElements.length > 1)
32119
32247
  .toString();
32120
32248
  };
32249
+ QuestionRowModel.prototype.setRootElement = function (element) {
32250
+ this.rootElement = element;
32251
+ };
32252
+ QuestionRowModel.prototype.getRootElement = function () {
32253
+ return this.rootElement;
32254
+ };
32121
32255
  QuestionRowModel.rowCounter = 100;
32122
32256
  __decorate([
32123
32257
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: null })
@@ -32135,9 +32269,13 @@ var PanelModelBase = /** @class */ (function (_super) {
32135
32269
  var _this = _super.call(this, name) || this;
32136
32270
  _this.isQuestionsReady = false;
32137
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; });
32138
32275
  _this.isRandomizing = false;
32139
32276
  _this.locCountRowUpdates = 0;
32140
- _this.createNewArray("rows");
32277
+ _this.createNewArray("rows", function (el, index) { _this.onAddRow(el); }, function (el) { _this.onRemoveRow(el); });
32278
+ _this.createNewArray("visibleRows");
32141
32279
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
32142
32280
  _this.id = PanelModelBase.getPanelId();
32143
32281
  _this.addExpressionProperty("visibleIf", function (obj, res) { _this.visible = res === true; }, function (obj) { return !_this.areInvisibleElementsShowing; });
@@ -32157,16 +32295,62 @@ var PanelModelBase = /** @class */ (function (_super) {
32157
32295
  PanelModelBase.getPanelId = function () {
32158
32296
  return "sp_" + PanelModelBase.panelCounter++;
32159
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
+ };
32160
32342
  PanelModelBase.prototype.getType = function () {
32161
32343
  return "panelbase";
32162
32344
  };
32163
32345
  PanelModelBase.prototype.setSurveyImpl = function (value, isLight) {
32346
+ this.animationAllowed = false;
32164
32347
  _super.prototype.setSurveyImpl.call(this, value, isLight);
32165
32348
  if (this.isDesignMode)
32166
32349
  this.onVisibleChanged();
32167
32350
  for (var i = 0; i < this.elements.length; i++) {
32168
32351
  this.elements[i].setSurveyImpl(value, isLight);
32169
32352
  }
32353
+ this.animationAllowed = true;
32170
32354
  };
32171
32355
  PanelModelBase.prototype.endLoadingFromJson = function () {
32172
32356
  _super.prototype.endLoadingFromJson.call(this);
@@ -32382,7 +32566,7 @@ var PanelModelBase = /** @class */ (function (_super) {
32382
32566
  configurable: true
32383
32567
  });
32384
32568
  PanelModelBase.prototype.calcCssClasses = function (css) {
32385
- var classes = { panel: {}, error: {}, row: "", rowMultiple: "", pageRow: "", rowCompact: "" };
32569
+ var classes = { panel: {}, error: {}, row: "", rowFadeIn: "", rowFadeOut: "", rowFadeOutActive: "", rowMultiple: "", pageRow: "", rowCompact: "" };
32386
32570
  this.copyCssClasses(classes.panel, css.panel);
32387
32571
  this.copyCssClasses(classes.error, css.error);
32388
32572
  if (!!css.pageRow) {
@@ -32394,6 +32578,15 @@ var PanelModelBase = /** @class */ (function (_super) {
32394
32578
  if (!!css.row) {
32395
32579
  classes.row = css.row;
32396
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
+ }
32397
32590
  if (!!css.rowMultiple) {
32398
32591
  classes.rowMultiple = css.rowMultiple;
32399
32592
  }
@@ -32972,10 +33165,13 @@ var PanelModelBase = /** @class */ (function (_super) {
32972
33165
  return new QuestionRowModel(this);
32973
33166
  };
32974
33167
  PanelModelBase.prototype.onSurveyLoad = function () {
33168
+ this.animationAllowed = false;
33169
+ _super.prototype.onSurveyLoad.call(this);
32975
33170
  for (var i = 0; i < this.elements.length; i++) {
32976
33171
  this.elements[i].onSurveyLoad();
32977
33172
  }
32978
33173
  this.onElementVisibilityChanged(this);
33174
+ this.animationAllowed = true;
32979
33175
  };
32980
33176
  PanelModelBase.prototype.onFirstRendering = function () {
32981
33177
  _super.prototype.onFirstRendering.call(this);
@@ -33009,7 +33205,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33009
33205
  PanelModelBase.prototype.onRowsChanged = function () {
33010
33206
  if (this.isLoadingFromJson)
33011
33207
  return;
33208
+ this.animationAllowed = false;
33012
33209
  this.setArrayPropertyDirectly("rows", this.buildRows());
33210
+ this.animationAllowed = true;
33013
33211
  };
33014
33212
  PanelModelBase.prototype.blockRowsUpdates = function () {
33015
33213
  this.locCountRowUpdates++;
@@ -33329,9 +33527,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33329
33527
  enumerable: false,
33330
33528
  configurable: true
33331
33529
  });
33332
- PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {
33333
- if (!this.visible)
33334
- return false;
33530
+ PanelModelBase.prototype.getIsContentVisible = function (exceptionQuestion) {
33531
+ if (this.areInvisibleElementsShowing)
33532
+ return true;
33335
33533
  for (var i = 0; i < this.elements.length; i++) {
33336
33534
  if (this.elements[i] == exceptionQuestion)
33337
33535
  continue;
@@ -33340,6 +33538,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33340
33538
  }
33341
33539
  return false;
33342
33540
  };
33541
+ PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {
33542
+ return this.visible && this.getIsContentVisible(exceptionQuestion);
33543
+ };
33343
33544
  PanelModelBase.prototype.setVisibleIndex = function (index) {
33344
33545
  if (!this.isVisible || index < 0) {
33345
33546
  this.resetVisibleIndexes();
@@ -34007,6 +34208,7 @@ var PanelModel = /** @class */ (function (_super) {
34007
34208
  id: "cancel-preview",
34008
34209
  locTitle: this.survey.locEditText,
34009
34210
  innerCss: this.survey.cssNavigationEdit,
34211
+ component: "sv-nav-btn",
34010
34212
  action: function () { _this.cancelPreview(); }
34011
34213
  });
34012
34214
  }
@@ -34087,7 +34289,7 @@ var PanelModel = /** @class */ (function (_super) {
34087
34289
  };
34088
34290
  Object.defineProperty(PanelModel.prototype, "showPanelAsPage", {
34089
34291
  get: function () {
34090
- return !!this.originalPage && !this.survey.isShowingPreview;
34292
+ return !!this.originalPage;
34091
34293
  },
34092
34294
  enumerable: false,
34093
34295
  configurable: true
@@ -35709,7 +35911,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
35709
35911
  .append("sv-popup--dropdown-overlay", this.isOverlay && this.model.overlayDisplayMode !== "overlay")
35710
35912
  .append("sv-popup--tablet", this.isTablet && this.isOverlay)
35711
35913
  .append("sv-popup--show-pointer", !this.isOverlay && this.showHeader)
35712
- .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"));
35713
35915
  };
35714
35916
  PopupDropdownViewModel.prototype.getShowHeader = function () {
35715
35917
  return this.model.showPointer && !this.isOverlay;
@@ -36391,12 +36593,7 @@ __webpack_require__.r(__webpack_exports__);
36391
36593
 
36392
36594
  function createPopupModalViewModel(options, rootElement) {
36393
36595
  var _a;
36394
- var popupModel = new _popup__WEBPACK_IMPORTED_MODULE_1__["PopupModel"](options.componentName, options.data, "top", "left", false, true, options.onCancel, options.onApply, function () {
36395
- options.onHide();
36396
- if (!!container) {
36397
- popupViewModel.resetComponentElement();
36398
- }
36399
- }, 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);
36400
36597
  popupModel.displayMode = options.displayMode || "popup";
36401
36598
  popupModel.isFocusedContent = (_a = options.isFocusedContent) !== null && _a !== void 0 ? _a : true;
36402
36599
  var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__["PopupModalViewModel"](popupModel);
@@ -36408,6 +36605,15 @@ function createPopupModalViewModel(options, rootElement) {
36408
36605
  if (!popupViewModel.container) {
36409
36606
  popupViewModel.initializePopupContainer();
36410
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);
36411
36617
  return popupViewModel;
36412
36618
  }
36413
36619
  function createPopupViewModel(model, targetElement) {
@@ -36439,7 +36645,8 @@ __webpack_require__.r(__webpack_exports__);
36439
36645
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
36440
36646
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
36441
36647
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
36442
- /* 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");
36443
36650
  var __extends = (undefined && undefined.__extends) || (function () {
36444
36651
  var extendStatics = function (d, b) {
36445
36652
  extendStatics = Object.setPrototypeOf ||
@@ -36468,19 +36675,64 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
36468
36675
 
36469
36676
 
36470
36677
 
36678
+
36471
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^=\"-\"])";
36472
36680
  var PopupBaseViewModel = /** @class */ (function (_super) {
36473
36681
  __extends(PopupBaseViewModel, _super);
36474
36682
  function PopupBaseViewModel(model) {
36475
36683
  var _this = _super.call(this) || this;
36476
- _this.subscriptionId = PopupBaseViewModel.SubscriptionId++;
36477
36684
  _this.popupSelector = ".sv-popup";
36478
36685
  _this.fixedPopupContainer = ".sv-popup";
36479
36686
  _this.containerSelector = ".sv-popup__container";
36480
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
+ };
36481
36703
  _this.model = model;
36482
36704
  return _this;
36483
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
+ });
36484
36736
  Object.defineProperty(PopupBaseViewModel.prototype, "container", {
36485
36737
  get: function () {
36486
36738
  return this.containerElement || this.createdContainer;
@@ -36539,20 +36791,13 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36539
36791
  PopupBaseViewModel.prototype.onModelChanging = function (newModel) {
36540
36792
  };
36541
36793
  PopupBaseViewModel.prototype.setupModel = function (model) {
36542
- var _this = this;
36543
36794
  if (!!this.model) {
36544
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
36795
+ this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);
36545
36796
  }
36546
36797
  this.onModelChanging(model);
36547
36798
  this._model = model;
36548
- var onIsVisibleChangedHandler = function () {
36549
- if (!model.isVisible) {
36550
- _this.updateOnHiding();
36551
- }
36552
- _this.isVisible = model.isVisible;
36553
- };
36554
- model.registerPropertyChangedHandlers(["isVisible"], onIsVisibleChangedHandler, "PopupBaseViewModel" + this.subscriptionId);
36555
- onIsVisibleChangedHandler();
36799
+ model.onVisibilityChanged.add(this.onModelIsVisibleChangedCallback);
36800
+ this.onModelIsVisibleChangedCallback();
36556
36801
  };
36557
36802
  Object.defineProperty(PopupBaseViewModel.prototype, "model", {
36558
36803
  get: function () {
@@ -36732,7 +36977,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36732
36977
  PopupBaseViewModel.prototype.dispose = function () {
36733
36978
  _super.prototype.dispose.call(this);
36734
36979
  if (this.model) {
36735
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
36980
+ this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);
36736
36981
  }
36737
36982
  if (!!this.createdContainer) {
36738
36983
  this.createdContainer.remove();
@@ -36745,7 +36990,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36745
36990
  };
36746
36991
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
36747
36992
  if (!this.container) {
36748
- 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");
36749
36994
  this.createdContainer = container;
36750
36995
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
36751
36996
  }
@@ -36762,7 +37007,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36762
37007
  PopupBaseViewModel.prototype.preventScrollOuside = function (event, deltaY) {
36763
37008
  var currentElement = event.target;
36764
37009
  while (currentElement !== this.container) {
36765
- 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) {
36766
37011
  var scrollHeight = currentElement.scrollHeight, scrollTop = currentElement.scrollTop, clientHeight = currentElement.clientHeight;
36767
37012
  if (!(deltaY > 0 && Math.abs(scrollHeight - clientHeight - scrollTop) < 1) && !(deltaY < 0 && scrollTop <= 0)) {
36768
37013
  return;
@@ -36774,7 +37019,6 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36774
37019
  event.preventDefault();
36775
37020
  }
36776
37021
  };
36777
- PopupBaseViewModel.SubscriptionId = 0;
36778
37022
  __decorate([
36779
37023
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "0px" })
36780
37024
  ], PopupBaseViewModel.prototype, "top", void 0);
@@ -36792,7 +37036,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36792
37036
  ], PopupBaseViewModel.prototype, "minWidth", void 0);
36793
37037
  __decorate([
36794
37038
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
36795
- ], PopupBaseViewModel.prototype, "isVisible", void 0);
37039
+ ], PopupBaseViewModel.prototype, "_isVisible", void 0);
36796
37040
  __decorate([
36797
37041
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
36798
37042
  ], PopupBaseViewModel.prototype, "locale", void 0);
@@ -44927,6 +45171,7 @@ __webpack_require__.r(__webpack_exports__);
44927
45171
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
44928
45172
  /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./textPreProcessor */ "./src/textPreProcessor.ts");
44929
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");
44930
45175
  var __extends = (undefined && undefined.__extends) || (function () {
44931
45176
  var extendStatics = function (d, b) {
44932
45177
  extendStatics = Object.setPrototypeOf ||
@@ -44948,6 +45193,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
44948
45193
 
44949
45194
 
44950
45195
 
45196
+
44951
45197
  var ComponentQuestionJSON = /** @class */ (function () {
44952
45198
  function ComponentQuestionJSON(name, json) {
44953
45199
  this.name = name;
@@ -45003,6 +45249,11 @@ var ComponentQuestionJSON = /** @class */ (function () {
45003
45249
  return newValue;
45004
45250
  return this.json.onValueChanging(question, name, newValue);
45005
45251
  };
45252
+ ComponentQuestionJSON.prototype.onGetErrorText = function (question) {
45253
+ if (!this.json.getErrorText)
45254
+ return undefined;
45255
+ return this.json.getErrorText(question);
45256
+ };
45006
45257
  ComponentQuestionJSON.prototype.onItemValuePropertyChanged = function (question, item, propertyName, name, newValue) {
45007
45258
  if (!this.json.onItemValuePropertyChanged)
45008
45259
  return;
@@ -45283,6 +45534,15 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
45283
45534
  _super.prototype.setNewValue.call(this, newValue);
45284
45535
  this.updateElementCss();
45285
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
+ };
45286
45546
  //ISurveyImpl
45287
45547
  QuestionCustomModelBase.prototype.getSurveyData = function () {
45288
45548
  return this;
@@ -53576,10 +53836,9 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
53576
53836
  });
53577
53837
  Object.defineProperty(MatrixDropdownColumn.prototype, "isRequired", {
53578
53838
  /**
53579
- * 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).
53580
53840
  *
53581
53841
  * If you want to mark the column as required based on a condition, specify the [`requiredIf`](#requiredIf) property.
53582
- * @see requiredErrorText
53583
53842
  * @see visible
53584
53843
  * @see readOnly
53585
53844
  */
@@ -56751,9 +57010,9 @@ var MultipleTextEditorModel = /** @class */ (function (_super) {
56751
57010
  }(_question_text__WEBPACK_IMPORTED_MODULE_3__["QuestionTextModel"]));
56752
57011
 
56753
57012
  /**
56754
- * 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.
56755
57014
  *
56756
- * [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))
56757
57016
  */
56758
57017
  var MultipleTextItemModel = /** @class */ (function (_super) {
56759
57018
  __extends(MultipleTextItemModel, _super);
@@ -56765,6 +57024,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56765
57024
  _this.editor.focusIn();
56766
57025
  };
56767
57026
  _this.editorValue = _this.createEditor(name);
57027
+ _this.maskSettings = _this.editorValue.maskSettings;
56768
57028
  _this.editor.questionTitleTemplateCallback = function () {
56769
57029
  return "";
56770
57030
  };
@@ -56789,7 +57049,10 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56789
57049
  };
56790
57050
  Object.defineProperty(MultipleTextItemModel.prototype, "name", {
56791
57051
  /**
56792
- * The item name.
57052
+ * An item ID that is not visible to respondents.
57053
+ *
57054
+ * > Item IDs must be unique.
57055
+ * @see title
56793
57056
  */
56794
57057
  get: function () {
56795
57058
  return this.editor.name;
@@ -56840,7 +57103,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56840
57103
  };
56841
57104
  Object.defineProperty(MultipleTextItemModel.prototype, "isRequired", {
56842
57105
  /**
56843
- * 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).
56844
57107
  */
56845
57108
  get: function () {
56846
57109
  return this.editor.isRequired;
@@ -56853,7 +57116,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56853
57116
  });
56854
57117
  Object.defineProperty(MultipleTextItemModel.prototype, "inputType", {
56855
57118
  /**
56856
- * 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"`
56857
57122
  */
56858
57123
  get: function () {
56859
57124
  return this.editor.inputType;
@@ -56866,8 +57131,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56866
57131
  });
56867
57132
  Object.defineProperty(MultipleTextItemModel.prototype, "title", {
56868
57133
  /**
56869
- * Item title. If it is empty, the item name is rendered as title. This property supports markdown.
56870
- * @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.
56871
57135
  */
56872
57136
  get: function () {
56873
57137
  return this.editor.title;
@@ -56894,9 +57158,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56894
57158
  });
56895
57159
  Object.defineProperty(MultipleTextItemModel.prototype, "maxLength", {
56896
57160
  /**
56897
- * The maximum text length. If it is -1, defaul value, then the survey maxTextLength property will be used.
56898
- * If it is 0, then the value is unlimited
56899
- * @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).
56900
57164
  */
56901
57165
  get: function () {
56902
57166
  return this.editor.maxLength;
@@ -56913,7 +57177,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56913
57177
  };
56914
57178
  Object.defineProperty(MultipleTextItemModel.prototype, "placeholder", {
56915
57179
  /**
56916
- * The input place holder.
57180
+ * A placeholder for the input field.
56917
57181
  */
56918
57182
  get: function () {
56919
57183
  return this.editor.placeholder;
@@ -56950,7 +57214,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56950
57214
  });
56951
57215
  Object.defineProperty(MultipleTextItemModel.prototype, "requiredErrorText", {
56952
57216
  /**
56953
- * 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).
56954
57218
  */
56955
57219
  get: function () {
56956
57220
  return this.editor.requiredErrorText;
@@ -56970,7 +57234,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56970
57234
  });
56971
57235
  Object.defineProperty(MultipleTextItemModel.prototype, "size", {
56972
57236
  /**
56973
- * 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.
56974
57240
  */
56975
57241
  get: function () {
56976
57242
  return this.editor.size;
@@ -56983,7 +57249,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56983
57249
  });
56984
57250
  Object.defineProperty(MultipleTextItemModel.prototype, "defaultValueExpression", {
56985
57251
  /**
56986
- * 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
56987
57255
  */
56988
57256
  get: function () {
56989
57257
  return this.editor.defaultValueExpression;
@@ -56996,7 +57264,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56996
57264
  });
56997
57265
  Object.defineProperty(MultipleTextItemModel.prototype, "minValueExpression", {
56998
57266
  /**
56999
- * 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
57000
57270
  */
57001
57271
  get: function () {
57002
57272
  return this.editor.minValueExpression;
@@ -57009,7 +57279,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57009
57279
  });
57010
57280
  Object.defineProperty(MultipleTextItemModel.prototype, "maxValueExpression", {
57011
57281
  /**
57012
- * 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
57013
57285
  */
57014
57286
  get: function () {
57015
57287
  return this.editor.maxValueExpression;
@@ -57022,7 +57294,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57022
57294
  });
57023
57295
  Object.defineProperty(MultipleTextItemModel.prototype, "validators", {
57024
57296
  /**
57025
- * The list of question validators.
57297
+ * Item validators.
57298
+ *
57299
+ * [Data Validation](https://surveyjs.io/form-library/documentation/data-validation (linkStyle))
57026
57300
  */
57027
57301
  get: function () {
57028
57302
  return this.editor.validators;
@@ -57036,9 +57310,71 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57036
57310
  MultipleTextItemModel.prototype.getValidators = function () {
57037
57311
  return this.validators;
57038
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
+ });
57039
57375
  Object.defineProperty(MultipleTextItemModel.prototype, "value", {
57040
57376
  /**
57041
- * The item value.
57377
+ * An item value.
57042
57378
  */
57043
57379
  get: function () {
57044
57380
  return this.data ? this.data.getMultipleTextValue(this.name) : null;
@@ -57228,9 +57564,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
57228
57564
  };
57229
57565
  Object.defineProperty(QuestionMultipleTextModel.prototype, "items", {
57230
57566
  /**
57231
- * 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.
57232
57568
  *
57233
- * This property accepts an array of objects with the following structure:
57569
+ * Each object in this array should have at least the following properties:
57234
57570
  *
57235
57571
  * ```js
57236
57572
  * {
@@ -57271,6 +57607,12 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
57271
57607
  }
57272
57608
  return null;
57273
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
+ };
57274
57616
  QuestionMultipleTextModel.prototype.addConditionObjectsByContext = function (objects, context) {
57275
57617
  for (var i = 0; i < this.items.length; i++) {
57276
57618
  var item = this.items[i];
@@ -57724,6 +58066,31 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextite
57724
58066
  default: "text",
57725
58067
  choices: _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].questions.inputTypes,
57726
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 },
57727
58094
  { name: "title", serializationProperty: "locTitle" },
57728
58095
  { name: "maxLength:number", default: -1 },
57729
58096
  { name: "size:number", minValue: 0 },
@@ -60772,6 +61139,7 @@ __webpack_require__.r(__webpack_exports__);
60772
61139
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
60773
61140
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
60774
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");
60775
61143
  var __extends = (undefined && undefined.__extends) || (function () {
60776
61144
  var extendStatics = function (d, b) {
60777
61145
  extendStatics = Object.setPrototypeOf ||
@@ -60803,6 +61171,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
60803
61171
 
60804
61172
 
60805
61173
 
61174
+
60806
61175
  /**
60807
61176
  * A class that describes the Ranking question type.
60808
61177
  *
@@ -60822,27 +61191,33 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60822
61191
  if (_this.visibleChoices.length === 1 && !_this.selectToRankEnabled) {
60823
61192
  _this.value = [];
60824
61193
  _this.value.push(_this.visibleChoices[0].value);
60825
- _this.updateRankingChoices();
61194
+ _this.updateRankingChoicesSync();
60826
61195
  return;
60827
61196
  }
60828
61197
  if (_this.isEmpty()) {
60829
- _this.updateRankingChoices();
61198
+ _this.updateRankingChoicesSync();
60830
61199
  return;
60831
61200
  }
60832
61201
  if (_this.selectToRankEnabled) {
60833
- _this.updateRankingChoices();
61202
+ _this.updateRankingChoicesSync();
60834
61203
  return;
60835
61204
  }
60836
61205
  if (_this.visibleChoices.length > _this.value.length)
60837
61206
  _this.addToValueByVisibleChoices();
60838
61207
  if (_this.visibleChoices.length < _this.value.length)
60839
61208
  _this.removeFromValueByVisibleChoices();
60840
- _this.updateRankingChoices();
61209
+ _this.updateRankingChoicesSync();
60841
61210
  };
60842
61211
  _this.localeChanged = function () {
60843
61212
  _super.prototype.localeChanged.call(_this);
60844
- _this.updateRankingChoices();
61213
+ _this.updateRankingChoicesSync();
60845
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; });
60846
61221
  _this.handlePointerDown = function (event, choice, node) {
60847
61222
  var target = event.target;
60848
61223
  if (!_this.isDragStartNodeValid(target))
@@ -60895,6 +61270,8 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60895
61270
  _this.isValueSetByUser = false;
60896
61271
  _this.setValue = function () {
60897
61272
  var value = [];
61273
+ _this.rankingChoicesAnimation.cancel();
61274
+ _this.unRankingChoicesAnimation.cancel();
60898
61275
  _this.rankingChoices.forEach(function (choice) {
60899
61276
  value.push(choice.value);
60900
61277
  });
@@ -60902,10 +61279,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60902
61279
  _this.isValueSetByUser = true;
60903
61280
  };
60904
61281
  _this.createNewArray("rankingChoices");
61282
+ _this.createNewArray("unRankingChoices");
60905
61283
  _this.registerFunctionOnPropertyValueChanged("selectToRankEnabled", function () {
60906
61284
  _this.clearValue();
60907
61285
  _this.setDragDropRankingChoices();
60908
- _this.updateRankingChoices();
61286
+ _this.updateRankingChoicesSync();
60909
61287
  });
60910
61288
  return _this;
60911
61289
  }
@@ -60942,10 +61320,12 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60942
61320
  });
60943
61321
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
60944
61322
  var itemIndex = this.rankingChoices.indexOf(item);
61323
+ var unrankedItemIndex = this.unRankingChoices.indexOf(item);
60945
61324
  var dropTargetIndex = this.rankingChoices.indexOf(this.currentDropTarget);
61325
+ var isDrop = (this.selectToRankEnabled && itemIndex > -1 && unrankedItemIndex > -1) || this.currentDropTarget === item;
60946
61326
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
60947
61327
  .append(_super.prototype.getItemClassCore.call(this, item, options))
60948
- .append(this.cssClasses.itemGhostMod, this.currentDropTarget === item)
61328
+ .append(this.cssClasses.itemGhostMod, isDrop)
60949
61329
  .append("sv-dragdrop-movedown", itemIndex === dropTargetIndex + 1 && this.dropTargetNodeMove === "down")
60950
61330
  .append("sv-dragdrop-moveup", itemIndex === dropTargetIndex - 1 && this.dropTargetNodeMove === "up")
60951
61331
  .toString();
@@ -60997,10 +61377,15 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60997
61377
  QuestionRankingModel.prototype.getNumberByIndex = function (index) {
60998
61378
  return this.isEmpty() ? "" : index + 1 + "";
60999
61379
  };
61380
+ QuestionRankingModel.prototype.updateRankingChoicesSync = function () {
61381
+ this.animationAllowed = false;
61382
+ this.updateRankingChoices();
61383
+ this.animationAllowed = true;
61384
+ };
61000
61385
  QuestionRankingModel.prototype.setSurveyImpl = function (value, isLight) {
61001
61386
  _super.prototype.setSurveyImpl.call(this, value, isLight);
61002
61387
  this.setDragDropRankingChoices();
61003
- this.updateRankingChoices();
61388
+ this.updateRankingChoicesSync();
61004
61389
  };
61005
61390
  QuestionRankingModel.prototype.isAnswerCorrect = function () {
61006
61391
  return _helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isArraysEqual(this.value, this.correctAnswer, false);
@@ -61014,7 +61399,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61014
61399
  _super.prototype.onSurveyValueChanged.call(this, newValue);
61015
61400
  if (this.isLoadingFromJson)
61016
61401
  return;
61017
- this.updateRankingChoices();
61402
+ this.updateRankingChoicesSync();
61018
61403
  };
61019
61404
  QuestionRankingModel.prototype.addToValueByVisibleChoices = function () {
61020
61405
  var newValue = this.value.slice();
@@ -61035,27 +61420,61 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61035
61420
  }
61036
61421
  this.value = newValue;
61037
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
+ });
61038
61462
  Object.defineProperty(QuestionRankingModel.prototype, "rankingChoices", {
61039
61463
  get: function () {
61040
61464
  return this.getPropertyValue("rankingChoices", []);
61041
61465
  },
61466
+ set: function (val) {
61467
+ this._rankingChoicesAnimation.sync(val);
61468
+ },
61042
61469
  enumerable: false,
61043
61470
  configurable: true
61044
61471
  });
61045
61472
  Object.defineProperty(QuestionRankingModel.prototype, "unRankingChoices", {
61046
61473
  get: function () {
61047
- var unRankingChoices = [];
61048
- var rankingChoices = this.rankingChoices;
61049
- this.visibleChoices.forEach(function (choice) {
61050
- unRankingChoices.push(choice);
61051
- });
61052
- rankingChoices.forEach(function (rankingChoice) {
61053
- unRankingChoices.forEach(function (choice, index) {
61054
- if (choice.value === rankingChoice.value)
61055
- unRankingChoices.splice(index, 1);
61056
- });
61057
- });
61058
- return unRankingChoices;
61474
+ return this.getPropertyValue("unRankingChoices", []);
61475
+ },
61476
+ set: function (val) {
61477
+ this._unRankingChoicesAnimation.sync(val);
61059
61478
  },
61060
61479
  enumerable: false,
61061
61480
  configurable: true
@@ -61087,20 +61506,32 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61087
61506
  });
61088
61507
  this.setPropertyValue("rankingChoices", newRankingChoices);
61089
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
+ };
61090
61522
  QuestionRankingModel.prototype.updateRankingChoicesSelectToRankMode = function (forceUpdate) {
61091
61523
  var _this = this;
61092
- if (this.isEmpty()) {
61093
- this.setPropertyValue("rankingChoices", []);
61094
- return;
61095
- }
61096
61524
  var newRankingChoices = [];
61097
- this.value.forEach(function (valueItem) {
61098
- _this.visibleChoices.forEach(function (choice) {
61099
- if (choice.value === valueItem)
61100
- 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
+ });
61101
61531
  });
61102
- });
61103
- this.setPropertyValue("rankingChoices", newRankingChoices);
61532
+ }
61533
+ this.updateUnRankingChoices(newRankingChoices);
61534
+ this.rankingChoices = newRankingChoices;
61104
61535
  };
61105
61536
  QuestionRankingModel.prototype.endLoadingFromJson = function () {
61106
61537
  _super.prototype.endLoadingFromJson.call(this);
@@ -61886,7 +62317,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
61886
62317
  return this.inputId + "_" + index;
61887
62318
  };
61888
62319
  QuestionRatingModel.prototype.supportGoNextPageAutomatic = function () {
61889
- return this.isMouseDown === true;
62320
+ return this.isMouseDown === true || this.renderAs === "dropdown";
61890
62321
  };
61891
62322
  QuestionRatingModel.prototype.supportOther = function () {
61892
62323
  return false;
@@ -63636,6 +64067,8 @@ var QuestionTextModel = /** @class */ (function (_super) {
63636
64067
  Object.defineProperty(QuestionTextModel.prototype, "inputType", {
63637
64068
  /**
63638
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"`
63639
64072
  */
63640
64073
  get: function () {
63641
64074
  return this.getPropertyValue("inputType");
@@ -67015,18 +67448,18 @@ var PopupContainer = /** @class */ (function (_super) {
67015
67448
  }
67016
67449
  this.prevIsVisible = this.model.isVisible;
67017
67450
  };
67018
- PopupContainer.prototype.renderContainer = function (PopupBaseViewModel) {
67451
+ PopupContainer.prototype.renderContainer = function (popupBaseViewModel) {
67019
67452
  var _this = this;
67020
- var headerPopup = PopupBaseViewModel.showHeader ? this.renderHeaderPopup(PopupBaseViewModel) : null;
67021
- var headerContent = !!PopupBaseViewModel.title ? this.renderHeaderContent() : null;
67453
+ var headerPopup = popupBaseViewModel.showHeader ? this.renderHeaderPopup(popupBaseViewModel) : null;
67454
+ var headerContent = !!popupBaseViewModel.title ? this.renderHeaderContent() : null;
67022
67455
  var content = this.renderContent();
67023
- var footerContent = PopupBaseViewModel.showFooter ? this.renderFooter(this.model) : null;
67456
+ var footerContent = popupBaseViewModel.showFooter ? this.renderFooter(this.model) : null;
67024
67457
  return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { className: "sv-popup__container", style: {
67025
- left: PopupBaseViewModel.left,
67026
- top: PopupBaseViewModel.top,
67027
- height: PopupBaseViewModel.height,
67028
- width: PopupBaseViewModel.width,
67029
- minWidth: PopupBaseViewModel.minWidth,
67458
+ left: popupBaseViewModel.left,
67459
+ top: popupBaseViewModel.top,
67460
+ height: popupBaseViewModel.height,
67461
+ width: popupBaseViewModel.width,
67462
+ minWidth: popupBaseViewModel.minWidth,
67030
67463
  }, onClick: function (ev) {
67031
67464
  _this.clickInside(ev);
67032
67465
  } },
@@ -67090,11 +67523,14 @@ function showModal(componentName, data, onApply, onCancel, cssClass, title, disp
67090
67523
  return showDialog(options);
67091
67524
  }
67092
67525
  function showDialog(dialogOptions, rootElement) {
67093
- dialogOptions.onHide = function () {
67094
- react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
67095
- popupViewModel.dispose();
67096
- };
67097
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);
67098
67534
  react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.render(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: popupViewModel }), popupViewModel.container);
67099
67535
  popupViewModel.model.isVisible = true;
67100
67536
  return popupViewModel;
@@ -68521,6 +68957,7 @@ var SurveyRowElement = /** @class */ (function (_super) {
68521
68957
  function SurveyRowElement(props) {
68522
68958
  var _this = _super.call(this, props) || this;
68523
68959
  _this.element.cssClasses;
68960
+ _this.rootRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
68524
68961
  return _this;
68525
68962
  }
68526
68963
  SurveyRowElement.prototype.getStateElement = function () {
@@ -68568,9 +69005,27 @@ var SurveyRowElement = /** @class */ (function (_super) {
68568
69005
  enumerable: false,
68569
69006
  configurable: true
68570
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
+ };
68571
69018
  SurveyRowElement.prototype.shouldComponentUpdate = function (nextProps, nextState) {
68572
69019
  if (!_super.prototype.shouldComponentUpdate.call(this, nextProps, nextState))
68573
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
+ }
68574
69029
  this.element.cssClasses;
68575
69030
  return true;
68576
69031
  };
@@ -68584,7 +69039,7 @@ var SurveyRowElement = /** @class */ (function (_super) {
68584
69039
  el.focusIn();
68585
69040
  }
68586
69041
  };
68587
- 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, })));
68588
69043
  };
68589
69044
  SurveyRowElement.prototype.createElement = function (element, elementIndex) {
68590
69045
  var index = elementIndex ? "-" + elementIndex : 0;
@@ -69127,6 +69582,10 @@ var SurveyPage = /** @class */ (function (_super) {
69127
69582
  enumerable: false,
69128
69583
  configurable: true
69129
69584
  });
69585
+ // shouldComponentUpdate(nextProps: any, nextState: any): boolean {
69586
+ // if(!super.shouldComponentUpdate(nextProps, nextState)) return false;
69587
+ // return true;
69588
+ // }
69130
69589
  SurveyPage.prototype.renderElement = function () {
69131
69590
  var title = this.renderTitle();
69132
69591
  var description = this.renderDescription();
@@ -69267,13 +69726,15 @@ var SurveyPanelBase = /** @class */ (function (_super) {
69267
69726
  }
69268
69727
  }
69269
69728
  };
69729
+ SurveyPanelBase.prototype.getIsVisible = function () {
69730
+ return this.panelBase.isVisible;
69731
+ };
69270
69732
  SurveyPanelBase.prototype.canRender = function () {
69271
- return (_super.prototype.canRender.call(this) && !!this.survey && !!this.panelBase
69272
- && this.panelBase.isVisible && !!this.panelBase.survey);
69733
+ return (_super.prototype.canRender.call(this) && !!this.survey && !!this.panelBase && !!this.panelBase.survey && this.getIsVisible());
69273
69734
  };
69274
69735
  SurveyPanelBase.prototype.renderRows = function (css) {
69275
69736
  var _this = this;
69276
- 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); });
69277
69738
  };
69278
69739
  SurveyPanelBase.prototype.createRow = function (row, css) {
69279
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 }));
@@ -69349,11 +69810,11 @@ var SurveyPanel = /** @class */ (function (_super) {
69349
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 }));
69350
69811
  var style = {
69351
69812
  paddingLeft: this.panel.innerPaddingLeft,
69352
- display: !this.panel.isCollapsed ? undefined : "none",
69813
+ display: this.panel.renderedIsExpanded ? undefined : "none",
69353
69814
  };
69354
69815
  var content = null;
69355
- if (!this.panel.isCollapsed || this.hasBeenExpanded) {
69356
- this.hasBeenExpanded = true;
69816
+ if (this.panel.renderedIsExpanded) {
69817
+ // this.hasBeenExpanded = true;
69357
69818
  var rows = this.renderRows(this.panelBase.cssClasses);
69358
69819
  var className = this.panelBase.cssClasses.panel.content;
69359
69820
  content = this.renderContent(style, rows, className);
@@ -69405,6 +69866,9 @@ var SurveyPanel = /** @class */ (function (_super) {
69405
69866
  return null;
69406
69867
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_6__["SurveyActionBar"], { model: footerToolbar });
69407
69868
  };
69869
+ SurveyPanel.prototype.getIsVisible = function () {
69870
+ return this.panelBase.getIsContentVisible();
69871
+ };
69408
69872
  return SurveyPanel;
69409
69873
  }(_panel_base__WEBPACK_IMPORTED_MODULE_4__["SurveyPanelBase"]));
69410
69874
 
@@ -70387,8 +70851,7 @@ var SurveyQuestion = /** @class */ (function (_super) {
70387
70851
  return _this;
70388
70852
  }
70389
70853
  SurveyQuestion.renderQuestionBody = function (creator, question) {
70390
- if (!question.isVisible)
70391
- return null;
70854
+ // if (!question.isVisible) return null;
70392
70855
  var customWidget = question.customWidget;
70393
70856
  if (!customWidget) {
70394
70857
  return creator.createQuestionElement(question);
@@ -70454,13 +70917,12 @@ var SurveyQuestion = /** @class */ (function (_super) {
70454
70917
  SurveyQuestion.prototype.canRender = function () {
70455
70918
  return (_super.prototype.canRender.call(this) &&
70456
70919
  !!this.question &&
70457
- !!this.creator &&
70458
- this.question.isVisible);
70920
+ !!this.creator);
70459
70921
  };
70460
70922
  SurveyQuestion.prototype.renderQuestionContent = function () {
70461
70923
  var question = this.question;
70462
70924
  var contentStyle = {
70463
- display: !this.question.isCollapsed ? "" : "none",
70925
+ display: this.question.renderedIsExpanded ? "" : "none",
70464
70926
  };
70465
70927
  var cssClasses = question.cssClasses;
70466
70928
  var questionRender = this.renderQuestion();
@@ -74327,7 +74789,7 @@ var SurveyRow = /** @class */ (function (_super) {
74327
74789
  configurable: true
74328
74790
  });
74329
74791
  SurveyRow.prototype.canRender = function () {
74330
- return !!this.row && !!this.survey && !!this.creator && this.row.visible;
74792
+ return !!this.row && !!this.survey && !!this.creator;
74331
74793
  };
74332
74794
  SurveyRow.prototype.renderElementContent = function () {
74333
74795
  var _this = this;
@@ -74348,6 +74810,9 @@ var SurveyRow = /** @class */ (function (_super) {
74348
74810
  var _this = this;
74349
74811
  _super.prototype.componentDidMount.call(this);
74350
74812
  var el = this.rootRef.current;
74813
+ if (this.rootRef.current) {
74814
+ this.row.setRootElement(this.rootRef.current);
74815
+ }
74351
74816
  if (!!el && !this.row.isNeedRender) {
74352
74817
  var rowContainerDiv = el;
74353
74818
  setTimeout(function () {
@@ -74360,6 +74825,8 @@ var SurveyRow = /** @class */ (function (_super) {
74360
74825
  return false;
74361
74826
  if (nextProps.row !== this.row) {
74362
74827
  nextProps.row.isNeedRender = this.row.isNeedRender;
74828
+ nextProps.row.setRootElement(this.rootRef.current);
74829
+ this.row.setRootElement(undefined);
74363
74830
  this.stopLazyRendering();
74364
74831
  }
74365
74832
  this.recalculateCss();
@@ -74371,6 +74838,7 @@ var SurveyRow = /** @class */ (function (_super) {
74371
74838
  };
74372
74839
  SurveyRow.prototype.componentWillUnmount = function () {
74373
74840
  _super.prototype.componentWillUnmount.call(this);
74841
+ this.row.setRootElement(undefined);
74374
74842
  this.stopLazyRendering();
74375
74843
  };
74376
74844
  SurveyRow.prototype.createElement = function (element, elementIndex) {
@@ -76102,7 +76570,9 @@ __webpack_require__.r(__webpack_exports__);
76102
76570
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
76103
76571
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
76104
76572
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
76105
- /* 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");
76106
76576
  var __extends = (undefined && undefined.__extends) || (function () {
76107
76577
  var extendStatics = function (d, b) {
76108
76578
  extendStatics = Object.setPrototypeOf ||
@@ -76132,6 +76602,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
76132
76602
 
76133
76603
 
76134
76604
 
76605
+
76606
+
76135
76607
  /**
76136
76608
  * A base class for the [`SurveyElement`](https://surveyjs.io/form-library/documentation/surveyelement) and [`SurveyModel`](https://surveyjs.io/form-library/documentation/surveymodel) classes.
76137
76609
  */
@@ -76316,6 +76788,20 @@ var SurveyElement = /** @class */ (function (_super) {
76316
76788
  _this.isEditableTemplateElement = false;
76317
76789
  _this.isInteractiveDesignElement = true;
76318
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;
76319
76805
  _this.name = name;
76320
76806
  _this.createNewArray("errors");
76321
76807
  _this.createNewArray("titleActions");
@@ -76361,11 +76847,11 @@ var SurveyElement = /** @class */ (function (_super) {
76361
76847
  elLeft = el.getBoundingClientRect().left;
76362
76848
  needScroll = elLeft < 0;
76363
76849
  }
76364
- if (!needScroll && _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].isAvailable()) {
76365
- 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();
76366
76852
  needScroll = height > 0 && height < elTop;
76367
76853
  if (!needScroll && checkLeft) {
76368
- var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerWidth();
76854
+ var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getInnerWidth();
76369
76855
  needScroll = width > 0 && width < elLeft;
76370
76856
  }
76371
76857
  }
@@ -76393,7 +76879,7 @@ var SurveyElement = /** @class */ (function (_super) {
76393
76879
  return null;
76394
76880
  };
76395
76881
  SurveyElement.FocusElement = function (elementId) {
76396
- if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].isAvailable())
76882
+ if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].isAvailable())
76397
76883
  return false;
76398
76884
  var res = SurveyElement.focusElementCore(elementId);
76399
76885
  if (!res) {
@@ -76476,6 +76962,7 @@ var SurveyElement = /** @class */ (function (_super) {
76476
76962
  },
76477
76963
  set: function (val) {
76478
76964
  this.setPropertyValue("state", val);
76965
+ this.renderedIsExpanded = !(this.state === "collapsed" && !this.isDesignMode);
76479
76966
  },
76480
76967
  enumerable: false,
76481
76968
  configurable: true
@@ -77130,7 +77617,7 @@ var SurveyElement = /** @class */ (function (_super) {
77130
77617
  });
77131
77618
  Object.defineProperty(SurveyElement.prototype, "hasParent", {
77132
77619
  get: function () {
77133
- 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);
77134
77621
  },
77135
77622
  enumerable: false,
77136
77623
  configurable: true
@@ -77152,11 +77639,14 @@ var SurveyElement = /** @class */ (function (_super) {
77152
77639
  return this.shouldAddRunnerStyles() && (this.hasParent);
77153
77640
  };
77154
77641
  SurveyElement.prototype.getCssRoot = function (cssClasses) {
77642
+ var isExpanadable = !!this.isCollapsed || !!this.isExpanded;
77155
77643
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
77156
77644
  .append(cssClasses.withFrame, this.getHasFrameV2() && !this.isCompact)
77157
77645
  .append(cssClasses.compact, this.isCompact && this.getHasFrameV2())
77158
77646
  .append(cssClasses.collapsed, !!this.isCollapsed)
77159
- .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)
77160
77650
  .append(cssClasses.nested, this.getIsNested())
77161
77651
  .toString();
77162
77652
  };
@@ -77308,12 +77798,12 @@ var SurveyElement = /** @class */ (function (_super) {
77308
77798
  });
77309
77799
  SurveyElement.prototype.isContainsSelection = function (el) {
77310
77800
  var elementWithSelection = undefined;
77311
- var _document = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].getDocument();
77312
- 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"]) {
77313
77803
  elementWithSelection = _document["selection"].createRange().parentElement();
77314
77804
  }
77315
77805
  else {
77316
- var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getSelection();
77806
+ var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getSelection();
77317
77807
  if (!!selection && selection.rangeCount > 0) {
77318
77808
  var range = selection.getRangeAt(0);
77319
77809
  if (range.startOffset !== range.endOffset) {
@@ -77378,6 +77868,84 @@ var SurveyElement = /** @class */ (function (_super) {
77378
77868
  });
77379
77869
  }
77380
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
+ });
77381
77949
  SurveyElement.prototype.dispose = function () {
77382
77950
  _super.prototype.dispose.call(this);
77383
77951
  if (this.titleToolbarValue) {
@@ -77400,6 +77968,9 @@ var SurveyElement = /** @class */ (function (_super) {
77400
77968
  __decorate([
77401
77969
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
77402
77970
  ], SurveyElement.prototype, "allowRootStyle", void 0);
77971
+ __decorate([
77972
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
77973
+ ], SurveyElement.prototype, "_renderedIsExpanded", void 0);
77403
77974
  return SurveyElement;
77404
77975
  }(SurveyElementCore));
77405
77976
 
@@ -85636,7 +86207,7 @@ var SurveyModel = /** @class */ (function (_super) {
85636
86207
  }
85637
86208
  }
85638
86209
  else if (isStrCiEqual(layoutElement.id, "advanced-header")) {
85639
- if (this.state === "running" && layoutElement.container === container) {
86210
+ if ((this.state === "running" || this.state === "starting") && layoutElement.container === container) {
85640
86211
  containerLayoutElements.push(layoutElement);
85641
86212
  }
85642
86213
  }
@@ -87771,6 +88342,287 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("runexpressiontr
87771
88342
  }, "surveytrigger");
87772
88343
 
87773
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
+
87774
88626
  /***/ }),
87775
88627
 
87776
88628
  /***/ "./src/utils/camera.ts":
@@ -88510,6 +89362,117 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
88510
89362
 
88511
89363
 
88512
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
+
88513
89476
  /***/ }),
88514
89477
 
88515
89478
  /***/ "./src/utils/utils.ts":