survey-react 1.9.136 → 1.9.138

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.138
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);
@@ -6919,7 +6933,7 @@ var DragDropCore = /** @class */ (function () {
6919
6933
  return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom);
6920
6934
  };
6921
6935
  DragDropCore.prototype.getShortcutText = function (draggedElement) {
6922
- return draggedElement.shortcutText;
6936
+ return draggedElement === null || draggedElement === void 0 ? void 0 : draggedElement.shortcutText;
6923
6937
  };
6924
6938
  DragDropCore.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
6925
6939
  var draggedElementShortcut = _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomDocumentHelper"].createElement("div");
@@ -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 () {
@@ -7454,8 +7470,12 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7454
7470
  dropTargetRenderedRow = matrix.renderedTable.rows.filter(function (renderedRow) { return renderedRow.row && renderedRow.row.id === dataAttributeValue; })[0];
7455
7471
  return dropTargetRenderedRow.row;
7456
7472
  };
7473
+ DragDropMatrixRows.prototype.canInsertIntoThisRow = function (row) {
7474
+ var lockedRows = this.parentElement.lockedRowCount;
7475
+ return lockedRows <= 0 || row.rowIndex > lockedRows;
7476
+ };
7457
7477
  DragDropMatrixRows.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
7458
- return true;
7478
+ return this.canInsertIntoThisRow(dropTarget);
7459
7479
  };
7460
7480
  DragDropMatrixRows.prototype.calculateIsBottom = function (clientY) {
7461
7481
  var rendreredRows = this.parentElement.renderedTable.rows;
@@ -7466,8 +7486,6 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7466
7486
  var _this = this;
7467
7487
  if (this.isDropTargetDoesntChanged(this.isBottom))
7468
7488
  return;
7469
- if (this.dropTarget === this.draggedElement)
7470
- return;
7471
7489
  var dropTargetIndex;
7472
7490
  var draggedElementIndex;
7473
7491
  var draggedRenderedRow;
@@ -7575,10 +7593,6 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7575
7593
  var node = _this.domAdapter.draggedElementShortcut.querySelector(".sv-ranking-item");
7576
7594
  node.style.cursor = "not-allowed";
7577
7595
  };
7578
- _this.doDrop = function () {
7579
- _this.parentElement.setValue();
7580
- return _this.parentElement;
7581
- };
7582
7596
  return _this;
7583
7597
  }
7584
7598
  Object.defineProperty(DragDropRankingChoices.prototype, "draggedElementType", {
@@ -7681,6 +7695,10 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7681
7695
  this.parentElement.currentDropTarget = this.draggedElement;
7682
7696
  _super.prototype.ghostPositionChanged.call(this);
7683
7697
  };
7698
+ DragDropRankingChoices.prototype.doDrop = function () {
7699
+ this.parentElement.setValue();
7700
+ return this.parentElement;
7701
+ };
7684
7702
  DragDropRankingChoices.prototype.clear = function () {
7685
7703
  if (!!this.parentElement) {
7686
7704
  this.parentElement.dropTargetNodeMove = null;
@@ -7705,7 +7723,8 @@ var DragDropRankingChoices = /** @class */ (function (_super) {
7705
7723
  "use strict";
7706
7724
  __webpack_require__.r(__webpack_exports__);
7707
7725
  /* 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");
7726
+ /* harmony import */ var _itemvalue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../itemvalue */ "./src/itemvalue.ts");
7727
+ /* harmony import */ var _ranking_choices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ranking-choices */ "./src/dragdrop/ranking-choices.ts");
7709
7728
  var __extends = (undefined && undefined.__extends) || (function () {
7710
7729
  var extendStatics = function (d, b) {
7711
7730
  extendStatics = Object.setPrototypeOf ||
@@ -7722,10 +7741,37 @@ var __extends = (undefined && undefined.__extends) || (function () {
7722
7741
  };
7723
7742
  })();
7724
7743
 
7744
+
7725
7745
  var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7726
7746
  __extends(DragDropRankingSelectToRank, _super);
7727
7747
  function DragDropRankingSelectToRank() {
7728
- return _super !== null && _super.apply(this, arguments) || this;
7748
+ var _this = _super !== null && _super.apply(this, arguments) || this;
7749
+ _this.selectToRank = function (questionModel, fromIndex, toIndex) {
7750
+ var rankingChoices = [].concat(questionModel.rankingChoices);
7751
+ var unRankingChoices = questionModel.unRankingChoices;
7752
+ var item = unRankingChoices[fromIndex];
7753
+ rankingChoices.splice(toIndex, 0, item);
7754
+ _this.updateChoices(questionModel, rankingChoices);
7755
+ };
7756
+ _this.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7757
+ var rankingChoices = [].concat(questionModel.rankingChoices);
7758
+ rankingChoices.splice(fromIndex, 1);
7759
+ _this.updateChoices(questionModel, rankingChoices);
7760
+ };
7761
+ _this.reorderRankedItem = function (questionModel, fromIndex, toIndex, dropTargetNode) {
7762
+ var rankingChoices = questionModel.rankingChoices;
7763
+ var item = rankingChoices[fromIndex];
7764
+ if (fromIndex == toIndex)
7765
+ return;
7766
+ questionModel.isValueSetByUser = true;
7767
+ rankingChoices.splice(fromIndex, 1);
7768
+ rankingChoices.splice(toIndex, 0, item);
7769
+ questionModel.setPropertyValue("rankingChoices", rankingChoices);
7770
+ if (dropTargetNode) {
7771
+ _this.doUIEffects(dropTargetNode, fromIndex, toIndex);
7772
+ }
7773
+ };
7774
+ return _this;
7729
7775
  }
7730
7776
  DragDropRankingSelectToRank.prototype.findDropTargetNodeByDragOverNode = function (dragOverNode) {
7731
7777
  if (dragOverNode.dataset.ranking === "from-container" || dragOverNode.dataset.ranking === "to-container") {
@@ -7779,18 +7825,34 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7779
7825
  DragDropRankingSelectToRank.prototype.doRankBetween = function (dropTargetNode, fromChoicesArray, toChoicesArray, rankFunction) {
7780
7826
  var questionModel = this.parentElement;
7781
7827
  var _a = this.getIndixies(questionModel, fromChoicesArray, toChoicesArray), fromIndex = _a.fromIndex, toIndex = _a.toIndex;
7782
- rankFunction(questionModel, fromIndex, toIndex);
7783
- this.doUIEffects(dropTargetNode, fromIndex, toIndex);
7828
+ rankFunction(questionModel, fromIndex, toIndex, dropTargetNode);
7784
7829
  };
7785
7830
  DragDropRankingSelectToRank.prototype.getIndixies = function (model, fromChoicesArray, toChoicesArray) {
7786
7831
  var fromIndex = fromChoicesArray.indexOf(this.draggedElement);
7787
7832
  var toIndex = toChoicesArray.indexOf(this.dropTarget);
7788
7833
  if (toIndex === -1) {
7789
7834
  var length_1 = model.value.length;
7790
- toIndex = fromChoicesArray === toChoicesArray ? length_1 - 1 : length_1;
7835
+ toIndex = length_1;
7836
+ }
7837
+ else if (fromChoicesArray == toChoicesArray) {
7838
+ if (!this.isBottom && fromIndex < toIndex)
7839
+ toIndex--;
7840
+ if (this.isBottom && fromIndex > toIndex)
7841
+ toIndex++;
7842
+ }
7843
+ else if (fromChoicesArray != toChoicesArray) {
7844
+ if (this.isBottom)
7845
+ toIndex++;
7791
7846
  }
7792
7847
  return { fromIndex: fromIndex, toIndex: toIndex };
7793
7848
  };
7849
+ DragDropRankingSelectToRank.prototype.calculateIsBottom = function (clientY, dropTargetNode) {
7850
+ if (this.dropTarget instanceof _itemvalue__WEBPACK_IMPORTED_MODULE_0__["ItemValue"] && this.draggedElement !== this.dropTarget) {
7851
+ var rect = dropTargetNode.getBoundingClientRect();
7852
+ return clientY >= rect.y + rect.height / 2;
7853
+ }
7854
+ return _super.prototype.calculateIsBottom.call(this, clientY);
7855
+ };
7794
7856
  DragDropRankingSelectToRank.prototype.doUIEffects = function (dropTargetNode, fromIndex, toIndex) {
7795
7857
  var questionModel = this.parentElement;
7796
7858
  var isDropToEmptyRankedContainer = this.dropTarget === "to-container" && questionModel.isEmpty();
@@ -7839,30 +7901,21 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7839
7901
  enumerable: false,
7840
7902
  configurable: true
7841
7903
  });
7842
- DragDropRankingSelectToRank.prototype.selectToRank = function (questionModel, fromIndex, toIndex) {
7843
- var rankingChoices = questionModel.rankingChoices;
7844
- var unRankingChoices = questionModel.unRankingChoices;
7845
- var item = unRankingChoices[fromIndex];
7904
+ DragDropRankingSelectToRank.prototype.updateChoices = function (questionModel, rankingChoices) {
7846
7905
  questionModel.isValueSetByUser = true;
7847
- rankingChoices.splice(toIndex, 0, item);
7848
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7906
+ questionModel.rankingChoices = rankingChoices;
7907
+ questionModel.updateUnRankingChoices(rankingChoices);
7849
7908
  };
7850
- DragDropRankingSelectToRank.prototype.unselectFromRank = function (questionModel, fromIndex, toIndex) {
7851
- var rankingChoices = questionModel.rankingChoices;
7852
- questionModel.isValueSetByUser = true;
7853
- rankingChoices.splice(fromIndex, 1);
7854
- questionModel.setPropertyValue("rankingChoices", rankingChoices);
7855
- };
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);
7909
+ DragDropRankingSelectToRank.prototype.clear = function () {
7910
+ var questionModel = this.parentElement;
7911
+ if (!!questionModel) {
7912
+ questionModel.rankingChoicesAnimation.cancel();
7913
+ questionModel.unRankingChoicesAnimation.cancel();
7914
+ }
7915
+ _super.prototype.clear.call(this);
7863
7916
  };
7864
7917
  return DragDropRankingSelectToRank;
7865
- }(_ranking_choices__WEBPACK_IMPORTED_MODULE_0__["DragDropRankingChoices"]));
7918
+ }(_ranking_choices__WEBPACK_IMPORTED_MODULE_1__["DragDropRankingChoices"]));
7866
7919
 
7867
7920
 
7868
7921
 
@@ -9621,8 +9674,8 @@ __webpack_require__.r(__webpack_exports__);
9621
9674
 
9622
9675
  var Version;
9623
9676
  var ReleaseDate;
9624
- Version = "" + "1.9.136";
9625
- ReleaseDate = "" + "2024-03-26";
9677
+ Version = "" + "1.9.138";
9678
+ ReleaseDate = "" + "2024-04-09";
9626
9679
  function checkLibraryVersion(ver, libraryName) {
9627
9680
  if (Version != ver) {
9628
9681
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9803,7 +9856,7 @@ function checkPrefix(prefix) {
9803
9856
  /*!**************************************!*\
9804
9857
  !*** ./src/entries/core-wo-model.ts ***!
9805
9858
  \**************************************/
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 */
9859
+ /*! 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
9860
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9808
9861
 
9809
9862
  "use strict";
@@ -10248,16 +10301,27 @@ __webpack_require__.r(__webpack_exports__);
10248
10301
 
10249
10302
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _actions_action__WEBPACK_IMPORTED_MODULE_7__["ActionDropdownViewModel"]; });
10250
10303
 
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"]; });
10304
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/animation */ "./src/utils/animation.ts");
10305
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationUtils"]; });
10306
+
10307
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationPropertyUtils"]; });
10308
+
10309
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroupUtils"]; });
10253
10310
 
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"]; });
10311
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationBoolean"]; });
10256
10312
 
10257
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_9__["ActionContainer"]; });
10313
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroup"]; });
10258
10314
 
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"]; });
10315
+ /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../actions/adaptive-container */ "./src/actions/adaptive-container.ts");
10316
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__["AdaptiveActionContainer"]; });
10317
+
10318
+ /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../actions/container */ "./src/actions/container.ts");
10319
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_10__["defaultActionBarCss"]; });
10320
+
10321
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionContainer", function() { return _actions_container__WEBPACK_IMPORTED_MODULE_10__["ActionContainer"]; });
10322
+
10323
+ /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
10324
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragOrClickHelper", function() { return _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__["DragOrClickHelper"]; });
10261
10325
 
10262
10326
  // model
10263
10327
 
@@ -10276,13 +10340,14 @@ __webpack_require__.r(__webpack_exports__);
10276
10340
 
10277
10341
 
10278
10342
 
10343
+
10279
10344
  /***/ }),
10280
10345
 
10281
10346
  /***/ "./src/entries/core.ts":
10282
10347
  /*!*****************************!*\
10283
10348
  !*** ./src/entries/core.ts ***!
10284
10349
  \*****************************/
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 */
10350
+ /*! 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
10351
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10287
10352
 
10288
10353
  "use strict";
@@ -10720,6 +10785,16 @@ __webpack_require__.r(__webpack_exports__);
10720
10785
 
10721
10786
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ActionDropdownViewModel"]; });
10722
10787
 
10788
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationUtils"]; });
10789
+
10790
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationPropertyUtils"]; });
10791
+
10792
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationGroupUtils"]; });
10793
+
10794
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationBoolean"]; });
10795
+
10796
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationGroup"]; });
10797
+
10723
10798
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
10724
10799
 
10725
10800
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -11153,7 +11228,7 @@ __webpack_require__.r(__webpack_exports__);
11153
11228
  /*!******************************!*\
11154
11229
  !*** ./src/entries/react.ts ***!
11155
11230
  \******************************/
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 */
11231
+ /*! 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
11232
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11158
11233
 
11159
11234
  "use strict";
@@ -11591,6 +11666,16 @@ __webpack_require__.r(__webpack_exports__);
11591
11666
 
11592
11667
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionDropdownViewModel", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["ActionDropdownViewModel"]; });
11593
11668
 
11669
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationUtils"]; });
11670
+
11671
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationPropertyUtils"]; });
11672
+
11673
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationGroupUtils"]; });
11674
+
11675
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationBoolean"]; });
11676
+
11677
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AnimationGroup"]; });
11678
+
11594
11679
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
11595
11680
 
11596
11681
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -24160,7 +24245,7 @@ var germanSurveyStrings = {
24160
24245
  questionsProgressText: "{0}/{1} Fragen beantwortet",
24161
24246
  emptySurvey: "Es sind keine Fragen vorhanden.",
24162
24247
  completingSurvey: "Vielen Dank, dass Sie die Umfrage abgeschlossen haben!",
24163
- completingSurveyBefore: "Wir haben festgestellt, dass Sie diese Umfrage bereits abgeschlossen haben.",
24248
+ completingSurveyBefore: "Aus unseren Unterlagen geht hervor, dass Sie diese Umfrage bereits abgeschlossen haben.",
24164
24249
  loadingSurvey: "Umfrage wird geladen...",
24165
24250
  placeholder: "Bitte auswählen...",
24166
24251
  ratingOptionsCaption: "Tippen Sie hier, um zu bewerten...",
@@ -24496,7 +24581,7 @@ var hebrewSurveyStrings = {
24496
24581
  timerLimitAll: "הוצאת {0} מתוך {1} בדף זה ו- {2} מתוך {3} בסך הכל.",
24497
24582
  timerLimitPage: "הוצאת {0} מתוך {1} בדף זה.",
24498
24583
  timerLimitSurvey: "הוצאת סכום כולל של {0} מתוך {1}.",
24499
- clearCaption: "ברור",
24584
+ clearCaption: "לנקות",
24500
24585
  signaturePlaceHolder: "חתום כאן",
24501
24586
  chooseFileCaption: "בחר קובץ",
24502
24587
  takePhotoCaption: "צלם תמונה",
@@ -29946,7 +30031,6 @@ __webpack_require__.r(__webpack_exports__);
29946
30031
  var InputElementAdapter = /** @class */ (function () {
29947
30032
  function InputElementAdapter(inputMaskInstance, inputElement, value) {
29948
30033
  var _this = this;
29949
- if (value === void 0) { value = ""; }
29950
30034
  this.inputMaskInstance = inputMaskInstance;
29951
30035
  this.inputElement = inputElement;
29952
30036
  this.prevUnmaskedValue = undefined;
@@ -29956,6 +30040,12 @@ var InputElementAdapter = /** @class */ (function () {
29956
30040
  _this.inputElement.value = maskedValue;
29957
30041
  }
29958
30042
  };
30043
+ this.clickHandler = function (event) {
30044
+ if (_this.inputElement.value == _this.inputMaskInstance.getMaskedValue("")) {
30045
+ _this.inputElement.setSelectionRange(0, 0);
30046
+ event.preventDefault();
30047
+ }
30048
+ };
29959
30049
  this.beforeInputHandler = function (event) {
29960
30050
  var args = _this.createArgs(event);
29961
30051
  var result = _this.inputMaskInstance.processInput(args);
@@ -29965,8 +30055,15 @@ var InputElementAdapter = /** @class */ (function () {
29965
30055
  event.preventDefault();
29966
30056
  }
29967
30057
  };
29968
- this.inputElement.value = inputMaskInstance.getMaskedValue(value);
29969
- this.prevUnmaskedValue = value;
30058
+ var _value = value;
30059
+ if (_value === null || _value === undefined) {
30060
+ _value = "";
30061
+ }
30062
+ else if (typeof _value !== "string") {
30063
+ _value = _value.toString();
30064
+ }
30065
+ this.inputElement.value = inputMaskInstance.getMaskedValue(_value);
30066
+ this.prevUnmaskedValue = _value;
29970
30067
  inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);
29971
30068
  this.addInputEventListener();
29972
30069
  }
@@ -29992,11 +30089,15 @@ var InputElementAdapter = /** @class */ (function () {
29992
30089
  InputElementAdapter.prototype.addInputEventListener = function () {
29993
30090
  if (!!this.inputElement) {
29994
30091
  this.inputElement.addEventListener("beforeinput", this.beforeInputHandler);
30092
+ this.inputElement.addEventListener("click", this.clickHandler);
30093
+ this.inputElement.addEventListener("focus", this.clickHandler);
29995
30094
  }
29996
30095
  };
29997
30096
  InputElementAdapter.prototype.removeInputEventListener = function () {
29998
30097
  if (!!this.inputElement) {
29999
30098
  this.inputElement.removeEventListener("beforeinput", this.beforeInputHandler);
30099
+ this.inputElement.removeEventListener("click", this.clickHandler);
30100
+ this.inputElement.removeEventListener("focus", this.clickHandler);
30000
30101
  }
30001
30102
  };
30002
30103
  InputElementAdapter.prototype.dispose = function () {
@@ -30431,12 +30532,20 @@ var InputMaskDateTime = /** @class */ (function (_super) {
30431
30532
  });
30432
30533
  };
30433
30534
  InputMaskDateTime.prototype.getISO_8601Format = function (dateTime) {
30434
- if (dateTime.year === undefined || dateTime.month === undefined || dateTime.day === undefined)
30435
- return "";
30436
- var year = this.getPlaceholder(4, dateTime.year.toString(), "0") + dateTime.year;
30437
- var month = this.getPlaceholder(2, dateTime.month.toString(), "0") + dateTime.month;
30438
- var day = this.getPlaceholder(2, dateTime.day.toString(), "0") + dateTime.day;
30439
- return [year, month, day].join("-");
30535
+ var date = [];
30536
+ if (dateTime.year !== undefined) {
30537
+ var year = this.getPlaceholder(4, dateTime.year.toString(), "0") + dateTime.year;
30538
+ date.push(year);
30539
+ }
30540
+ if (dateTime.month !== undefined && dateTime.year !== undefined) {
30541
+ var month = this.getPlaceholder(2, dateTime.month.toString(), "0") + dateTime.month;
30542
+ date.push(month);
30543
+ }
30544
+ if (dateTime.day !== undefined && dateTime.month !== undefined && dateTime.year !== undefined) {
30545
+ var day = this.getPlaceholder(2, dateTime.day.toString(), "0") + dateTime.day;
30546
+ date.push(day);
30547
+ }
30548
+ return date.join("-");
30440
30549
  };
30441
30550
  InputMaskDateTime.prototype.isYearValid = function (dateTime) {
30442
30551
  if (dateTime.min === undefined && dateTime.max === undefined)
@@ -30479,13 +30588,36 @@ var InputMaskDateTime = /** @class */ (function (_super) {
30479
30588
  data = data.slice(0, data.length - 1);
30480
30589
  }
30481
30590
  }
30482
- else if (propertyName === "year" && !this.isYearValid(dateTime)) {
30591
+ dateTime[propertyName] = parseInt(data);
30592
+ if (propertyName === "year" && !this.isYearValid(dateTime)) {
30483
30593
  data = data.slice(0, data.length - 1);
30484
30594
  }
30485
30595
  else if ((propertyName === "day" && parseInt(data[0]) > 3) || (propertyName === "month" && parseInt(data[0]) > 1)) {
30596
+ if (this.isDateValid(dateTime)) {
30597
+ newItem.isCompleted = true;
30598
+ }
30599
+ else {
30600
+ data = data.slice(0, data.length - 1);
30601
+ }
30602
+ }
30603
+ else if ((propertyName === "day" && parseInt(data[0]) <= 3 && parseInt(data[0]) !== 0) || (propertyName === "month" && parseInt(data[0]) <= 1 && parseInt(data[0]) !== 0)) {
30604
+ var prevValue = dateTime[propertyName];
30605
+ var tempValue = prevValue * 10;
30606
+ var maxValue = propertyName === "month" ? 3 : 10;
30486
30607
  newItem.isCompleted = true;
30608
+ for (var index = 0; index < maxValue; index++) {
30609
+ dateTime[propertyName] = tempValue + index;
30610
+ if (this.isDateValid(dateTime)) {
30611
+ newItem.isCompleted = false;
30612
+ break;
30613
+ }
30614
+ }
30615
+ dateTime[propertyName] = prevValue;
30616
+ if (newItem.isCompleted && !this.isDateValid(dateTime)) {
30617
+ data = data.slice(0, data.length - 1);
30618
+ }
30487
30619
  }
30488
- newItem.value = data;
30620
+ newItem.value = data || undefined;
30489
30621
  dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;
30490
30622
  };
30491
30623
  InputMaskDateTime.prototype.getCorrectDatePartFormat = function (inputData, matchWholeMask) {
@@ -30532,6 +30664,11 @@ var InputMaskDateTime = /** @class */ (function (_super) {
30532
30664
  var result = "";
30533
30665
  var prevSeparator = "";
30534
30666
  var prevIsCompleted = false;
30667
+ var lastItemWithDataIndex = this.inputDateTimeData.length - 1;
30668
+ if (!matchWholeMask) {
30669
+ var arr = this.inputDateTimeData.filter(function (item) { return !!item.value; });
30670
+ lastItemWithDataIndex = this.inputDateTimeData.indexOf(arr[arr.length - 1]);
30671
+ }
30535
30672
  for (var index = 0; index < this.inputDateTimeData.length; index++) {
30536
30673
  var inputData = this.inputDateTimeData[index];
30537
30674
  switch (inputData.lexem.type) {
@@ -30543,7 +30680,8 @@ var InputMaskDateTime = /** @class */ (function (_super) {
30543
30680
  return result;
30544
30681
  }
30545
30682
  else {
30546
- var data = this.getCorrectDatePartFormat(inputData, matchWholeMask);
30683
+ var _matchWholeMask = matchWholeMask || lastItemWithDataIndex !== index;
30684
+ var data = this.getCorrectDatePartFormat(inputData, _matchWholeMask);
30547
30685
  result += (prevSeparator + data);
30548
30686
  prevIsCompleted = inputData.isCompleted;
30549
30687
  }
@@ -30580,32 +30718,6 @@ var InputMaskDateTime = /** @class */ (function (_super) {
30580
30718
  var result = this.getFormatedString(matchWholeMask);
30581
30719
  return result;
30582
30720
  };
30583
- InputMaskDateTime.prototype.getPartsOld = function (input) {
30584
- var inputParts = [];
30585
- var separatorLexems = this.lexems.filter(function (l) { return l.type === "separator"; });
30586
- var separatorLexemsIndex = 0;
30587
- do {
30588
- if (!separatorLexems[separatorLexemsIndex]) {
30589
- if (!!input) {
30590
- inputParts.push(input);
30591
- input = "";
30592
- }
30593
- break;
30594
- }
30595
- var separatorCharIndex = input.indexOf(separatorLexems[separatorLexemsIndex].value);
30596
- if (separatorCharIndex !== -1) {
30597
- var part = input.slice(0, separatorCharIndex);
30598
- if (!!part) {
30599
- inputParts.push(part);
30600
- }
30601
- input = input.slice(separatorCharIndex + 1);
30602
- }
30603
- else {
30604
- }
30605
- separatorLexemsIndex++;
30606
- } while (!!input);
30607
- return inputParts;
30608
- };
30609
30721
  InputMaskDateTime.prototype.getParts = function (input) {
30610
30722
  var inputParts = [];
30611
30723
  var lexemsWithValue = this.lexems.filter(function (l) { return l.type !== "separator"; });
@@ -30850,7 +30962,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
30850
30962
  }
30851
30963
  return value;
30852
30964
  };
30853
- InputMaskNumeric.prototype.validateNumber = function (number) {
30965
+ InputMaskNumeric.prototype.validateNumber = function (number, matchWholeMask) {
30854
30966
  var min = this.min || Number.MIN_SAFE_INTEGER;
30855
30967
  var max = this.max || Number.MAX_SAFE_INTEGER;
30856
30968
  if (this.min !== undefined || this.max !== undefined) {
@@ -30858,7 +30970,12 @@ var InputMaskNumeric = /** @class */ (function (_super) {
30858
30970
  if (Number.isNaN(value)) {
30859
30971
  return true;
30860
30972
  }
30861
- return value >= min && value <= max;
30973
+ if (!matchWholeMask) {
30974
+ return value >= 0 && value <= max || value < 0 && value >= min;
30975
+ }
30976
+ else {
30977
+ return value >= min && value <= max;
30978
+ }
30862
30979
  }
30863
30980
  return true;
30864
30981
  };
@@ -30873,7 +30990,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
30873
30990
  var currentChar = input[inputIndex];
30874
30991
  switch (currentChar) {
30875
30992
  case "-": {
30876
- if (this.allowNegativeValues) {
30993
+ if (this.allowNegativeValues && (this.min === undefined || this.min < 0)) {
30877
30994
  minusCharCount++;
30878
30995
  }
30879
30996
  break;
@@ -30909,6 +31026,9 @@ var InputMaskNumeric = /** @class */ (function (_super) {
30909
31026
  if (matchWholeMask === void 0) { matchWholeMask = false; }
30910
31027
  var input = (src === undefined || src === null) ? "" : src;
30911
31028
  var parsedNumber = this.parseNumber(input);
31029
+ if (!this.validateNumber(parsedNumber, matchWholeMask)) {
31030
+ return null;
31031
+ }
30912
31032
  var displayText = this.displayNumber(parsedNumber, true, matchWholeMask);
30913
31033
  return displayText;
30914
31034
  };
@@ -30928,7 +31048,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
30928
31048
  var rightPart = args.prevValue.slice(args.selectionEnd);
30929
31049
  var src = leftPart + rightPart;
30930
31050
  var parsedNumber = this.parseNumber(src);
30931
- if (!this.validateNumber(parsedNumber)) {
31051
+ if (!this.validateNumber(parsedNumber, false)) {
30932
31052
  return result;
30933
31053
  }
30934
31054
  var maskedValue = this.getNumberMaskedValue(src);
@@ -31616,7 +31736,7 @@ var PageModel = /** @class */ (function (_super) {
31616
31736
  configurable: true
31617
31737
  });
31618
31738
  PageModel.prototype.calcCssClasses = function (css) {
31619
- var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "" };
31739
+ var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "", rowFadeIn: "", rowFadeOut: "", rowFadeOutActive: "" };
31620
31740
  this.copyCssClasses(classes.page, css.page);
31621
31741
  this.copyCssClasses(classes.error, css.error);
31622
31742
  if (!!css.pageTitle) {
@@ -31637,6 +31757,15 @@ var PageModel = /** @class */ (function (_super) {
31637
31757
  if (!!css.rowCompact) {
31638
31758
  classes.rowCompact = css.rowCompact;
31639
31759
  }
31760
+ if (!!css.rowFadeIn) {
31761
+ classes.rowFadeIn = css.rowFadeIn;
31762
+ }
31763
+ if (!!css.rowFadeOut) {
31764
+ classes.rowFadeOut = css.rowFadeOut;
31765
+ }
31766
+ if (!!css.rowFadeOutActive) {
31767
+ classes.rowFadeOutActive = css.rowFadeOutActive;
31768
+ }
31640
31769
  if (this.survey) {
31641
31770
  this.survey.updatePageCssClasses(this, classes);
31642
31771
  }
@@ -31862,7 +31991,9 @@ __webpack_require__.r(__webpack_exports__);
31862
31991
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
31863
31992
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
31864
31993
  /* 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");
31994
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
31995
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
31996
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./page */ "./src/page.ts");
31866
31997
  var __extends = (undefined && undefined.__extends) || (function () {
31867
31998
  var extendStatics = function (d, b) {
31868
31999
  extendStatics = Object.setPrototypeOf ||
@@ -31901,6 +32032,8 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
31901
32032
 
31902
32033
 
31903
32034
 
32035
+
32036
+
31904
32037
  var QuestionRowModel = /** @class */ (function (_super) {
31905
32038
  __extends(QuestionRowModel, _super);
31906
32039
  function QuestionRowModel(panel) {
@@ -31908,6 +32041,10 @@ var QuestionRowModel = /** @class */ (function (_super) {
31908
32041
  _this.panel = panel;
31909
32042
  _this._scrollableParent = undefined;
31910
32043
  _this._updateVisibility = undefined;
32044
+ _this.visibleElementsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__["AnimationGroup"](_this.getVisibleElementsAnimationOptions(), function (value) {
32045
+ _this.setPropertyValue("visibleElements", value);
32046
+ _this.setWidth();
32047
+ }, function () { return _this.visibleElements; });
31911
32048
  _this.idValue = QuestionRowModel.getRowId();
31912
32049
  _this.visible = panel.areInvisibleElementsShowing;
31913
32050
  _this.createNewArray("elements");
@@ -31920,12 +32057,12 @@ var QuestionRowModel = /** @class */ (function (_super) {
31920
32057
  QuestionRowModel.prototype.startLazyRendering = function (rowContainerDiv, findScrollableContainer) {
31921
32058
  var _this = this;
31922
32059
  if (findScrollableContainer === void 0) { findScrollableContainer = _utils_utils__WEBPACK_IMPORTED_MODULE_8__["findScrollableParent"]; }
31923
- if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_11__["DomDocumentHelper"].isAvailable())
32060
+ if (!_global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomDocumentHelper"].isAvailable())
31924
32061
  return;
31925
32062
  this._scrollableParent = findScrollableContainer(rowContainerDiv);
31926
32063
  // 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();
32064
+ if (this._scrollableParent === _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomDocumentHelper"].getDocumentElement()) {
32065
+ this._scrollableParent = _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__["DomWindowHelper"].getWindow();
31929
32066
  }
31930
32067
  var hasScroll = this._scrollableParent.scrollHeight > this._scrollableParent.clientHeight;
31931
32068
  this.isNeedRender = !hasScroll;
@@ -31974,6 +32111,9 @@ var QuestionRowModel = /** @class */ (function (_super) {
31974
32111
  enumerable: false,
31975
32112
  configurable: true
31976
32113
  });
32114
+ QuestionRowModel.prototype.equalsCore = function (obj) {
32115
+ return this == obj;
32116
+ };
31977
32117
  Object.defineProperty(QuestionRowModel.prototype, "elements", {
31978
32118
  get: function () {
31979
32119
  return this.getPropertyValue("elements");
@@ -31981,10 +32121,48 @@ var QuestionRowModel = /** @class */ (function (_super) {
31981
32121
  enumerable: false,
31982
32122
  configurable: true
31983
32123
  });
32124
+ QuestionRowModel.prototype.getVisibleElementsAnimationOptions = function () {
32125
+ var _this = this;
32126
+ var beforeRunAnimation = function (el) {
32127
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
32128
+ el.style.setProperty("--animation-width", Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["getElementWidth"])(el) + "px");
32129
+ };
32130
+ return {
32131
+ 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; },
32132
+ getAnimatedElement: function (element) { return element.getWrapperElement(); },
32133
+ getLeaveOptions: function (element) {
32134
+ var surveyElement = element;
32135
+ var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;
32136
+ return {
32137
+ cssClass: cssClasses.fadeOut,
32138
+ onBeforeRunAnimation: beforeRunAnimation
32139
+ };
32140
+ },
32141
+ getEnterOptions: function (element) {
32142
+ var surveyElement = element;
32143
+ var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;
32144
+ return {
32145
+ cssClass: cssClasses.fadeIn,
32146
+ onBeforeRunAnimation: beforeRunAnimation
32147
+ };
32148
+ }
32149
+ };
32150
+ };
31984
32151
  Object.defineProperty(QuestionRowModel.prototype, "visibleElements", {
31985
32152
  get: function () {
31986
32153
  return this.getPropertyValue("visibleElements");
31987
32154
  },
32155
+ set: function (val) {
32156
+ if (!val.length) {
32157
+ this.visible = false;
32158
+ this.visibleElementsAnimation.cancel();
32159
+ return;
32160
+ }
32161
+ else {
32162
+ this.visible = true;
32163
+ }
32164
+ this.visibleElementsAnimation.sync(val);
32165
+ },
31988
32166
  enumerable: false,
31989
32167
  configurable: true
31990
32168
  });
@@ -31994,6 +32172,7 @@ var QuestionRowModel = /** @class */ (function (_super) {
31994
32172
  },
31995
32173
  set: function (val) {
31996
32174
  this.setPropertyValue("visible", val);
32175
+ this.onVisibleChangedCallback && this.onVisibleChangedCallback();
31997
32176
  },
31998
32177
  enumerable: false,
31999
32178
  configurable: true
@@ -32009,9 +32188,14 @@ var QuestionRowModel = /** @class */ (function (_super) {
32009
32188
  configurable: true
32010
32189
  });
32011
32190
  QuestionRowModel.prototype.updateVisible = function () {
32012
- var isVisible = this.calcVisible();
32013
- this.setWidth();
32014
- this.visible = isVisible;
32191
+ var visElements = [];
32192
+ for (var i = 0; i < this.elements.length; i++) {
32193
+ if (this.elements[i].isVisible) {
32194
+ visElements.push(this.elements[i]);
32195
+ }
32196
+ }
32197
+ this.visibleElements = visElements;
32198
+ return;
32015
32199
  };
32016
32200
  QuestionRowModel.prototype.addElement = function (q) {
32017
32201
  this.elements.push(q);
@@ -32085,27 +32269,6 @@ var QuestionRowModel = /** @class */ (function (_super) {
32085
32269
  QuestionRowModel.prototype.getRenderedWidthFromWidth = function (width) {
32086
32270
  return _helpers__WEBPACK_IMPORTED_MODULE_1__["Helpers"].isNumber(width) ? width + "px" : width;
32087
32271
  };
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
32272
  QuestionRowModel.prototype.dispose = function () {
32110
32273
  _super.prototype.dispose.call(this);
32111
32274
  this.stopLazyRendering();
@@ -32114,10 +32277,16 @@ var QuestionRowModel = /** @class */ (function (_super) {
32114
32277
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
32115
32278
  .append(this.panel.cssClasses.row)
32116
32279
  .append(this.panel.cssClasses.rowCompact, this.panel["isCompact"])
32117
- .append(this.panel.cssClasses.pageRow, this.panel.isPage || (!!this.panel.originalPage && !this.panel.survey.isShowingPreview))
32280
+ .append(this.panel.cssClasses.pageRow, this.panel.isPage || (!!this.panel.originalPage))
32118
32281
  .append(this.panel.cssClasses.rowMultiple, this.visibleElements.length > 1)
32119
32282
  .toString();
32120
32283
  };
32284
+ QuestionRowModel.prototype.setRootElement = function (element) {
32285
+ this.rootElement = element;
32286
+ };
32287
+ QuestionRowModel.prototype.getRootElement = function () {
32288
+ return this.rootElement;
32289
+ };
32121
32290
  QuestionRowModel.rowCounter = 100;
32122
32291
  __decorate([
32123
32292
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: null })
@@ -32135,9 +32304,13 @@ var PanelModelBase = /** @class */ (function (_super) {
32135
32304
  var _this = _super.call(this, name) || this;
32136
32305
  _this.isQuestionsReady = false;
32137
32306
  _this.questionsValue = new Array();
32307
+ _this.rowsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__["AnimationGroup"](_this.getRowsAnimationOptions(), function (value) {
32308
+ _this.setPropertyValue("visibleRows", value);
32309
+ }, function () { return _this.visibleRows; });
32138
32310
  _this.isRandomizing = false;
32139
32311
  _this.locCountRowUpdates = 0;
32140
- _this.createNewArray("rows");
32312
+ _this.createNewArray("rows", function (el, index) { _this.onAddRow(el); }, function (el) { _this.onRemoveRow(el); });
32313
+ _this.createNewArray("visibleRows");
32141
32314
  _this.elementsValue = _this.createNewArray("elements", _this.onAddElement.bind(_this), _this.onRemoveElement.bind(_this));
32142
32315
  _this.id = PanelModelBase.getPanelId();
32143
32316
  _this.addExpressionProperty("visibleIf", function (obj, res) { _this.visible = res === true; }, function (obj) { return !_this.areInvisibleElementsShowing; });
@@ -32157,16 +32330,62 @@ var PanelModelBase = /** @class */ (function (_super) {
32157
32330
  PanelModelBase.getPanelId = function () {
32158
32331
  return "sp_" + PanelModelBase.panelCounter++;
32159
32332
  };
32333
+ PanelModelBase.prototype.onAddRow = function (row) {
32334
+ var _this = this;
32335
+ this.onRowVisibleChanged();
32336
+ row.onVisibleChangedCallback = function () { return _this.onRowVisibleChanged(); };
32337
+ };
32338
+ PanelModelBase.prototype.getRowsAnimationOptions = function () {
32339
+ var _this = this;
32340
+ var beforeRunAnimation = function (el) {
32341
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
32342
+ };
32343
+ return {
32344
+ isAnimationEnabled: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].animationEnabled && _this.animationAllowed; },
32345
+ getAnimatedElement: function (row) { return row.getRootElement(); },
32346
+ getLeaveOptions: function (_) {
32347
+ return { cssClass: _this.cssClasses.rowFadeOut,
32348
+ onBeforeRunAnimation: beforeRunAnimation
32349
+ };
32350
+ },
32351
+ getEnterOptions: function (_) {
32352
+ return {
32353
+ cssClass: _this.cssClasses.rowFadeIn,
32354
+ onBeforeRunAnimation: beforeRunAnimation
32355
+ };
32356
+ }
32357
+ };
32358
+ };
32359
+ Object.defineProperty(PanelModelBase.prototype, "visibleRows", {
32360
+ get: function () {
32361
+ return this.getPropertyValue("visibleRows");
32362
+ },
32363
+ set: function (val) {
32364
+ this.rowsAnimation.sync(val);
32365
+ },
32366
+ enumerable: false,
32367
+ configurable: true
32368
+ });
32369
+ PanelModelBase.prototype.onRemoveRow = function (row) {
32370
+ row.visibleElementsAnimation.cancel();
32371
+ this.visibleRows = this.rows.filter(function (row) { return row.visible; });
32372
+ row.onVisibleChangedCallback = undefined;
32373
+ };
32374
+ PanelModelBase.prototype.onRowVisibleChanged = function () {
32375
+ this.visibleRows = this.rows.filter(function (row) { return row.visible; });
32376
+ };
32160
32377
  PanelModelBase.prototype.getType = function () {
32161
32378
  return "panelbase";
32162
32379
  };
32163
32380
  PanelModelBase.prototype.setSurveyImpl = function (value, isLight) {
32381
+ this.animationAllowed = false;
32164
32382
  _super.prototype.setSurveyImpl.call(this, value, isLight);
32165
32383
  if (this.isDesignMode)
32166
32384
  this.onVisibleChanged();
32167
32385
  for (var i = 0; i < this.elements.length; i++) {
32168
32386
  this.elements[i].setSurveyImpl(value, isLight);
32169
32387
  }
32388
+ this.animationAllowed = true;
32170
32389
  };
32171
32390
  PanelModelBase.prototype.endLoadingFromJson = function () {
32172
32391
  _super.prototype.endLoadingFromJson.call(this);
@@ -32382,7 +32601,7 @@ var PanelModelBase = /** @class */ (function (_super) {
32382
32601
  configurable: true
32383
32602
  });
32384
32603
  PanelModelBase.prototype.calcCssClasses = function (css) {
32385
- var classes = { panel: {}, error: {}, row: "", rowMultiple: "", pageRow: "", rowCompact: "" };
32604
+ var classes = { panel: {}, error: {}, row: "", rowFadeIn: "", rowFadeOut: "", rowFadeOutActive: "", rowMultiple: "", pageRow: "", rowCompact: "" };
32386
32605
  this.copyCssClasses(classes.panel, css.panel);
32387
32606
  this.copyCssClasses(classes.error, css.error);
32388
32607
  if (!!css.pageRow) {
@@ -32394,6 +32613,15 @@ var PanelModelBase = /** @class */ (function (_super) {
32394
32613
  if (!!css.row) {
32395
32614
  classes.row = css.row;
32396
32615
  }
32616
+ if (!!css.rowFadeIn) {
32617
+ classes.rowFadeIn = css.rowFadeIn;
32618
+ }
32619
+ if (!!css.rowFadeOut) {
32620
+ classes.rowFadeOut = css.rowFadeOut;
32621
+ }
32622
+ if (!!css.rowFadeOutActive) {
32623
+ classes.rowFadeOutActive = css.rowFadeOutActive;
32624
+ }
32397
32625
  if (!!css.rowMultiple) {
32398
32626
  classes.rowMultiple = css.rowMultiple;
32399
32627
  }
@@ -32972,10 +33200,13 @@ var PanelModelBase = /** @class */ (function (_super) {
32972
33200
  return new QuestionRowModel(this);
32973
33201
  };
32974
33202
  PanelModelBase.prototype.onSurveyLoad = function () {
33203
+ this.animationAllowed = false;
33204
+ _super.prototype.onSurveyLoad.call(this);
32975
33205
  for (var i = 0; i < this.elements.length; i++) {
32976
33206
  this.elements[i].onSurveyLoad();
32977
33207
  }
32978
33208
  this.onElementVisibilityChanged(this);
33209
+ this.animationAllowed = true;
32979
33210
  };
32980
33211
  PanelModelBase.prototype.onFirstRendering = function () {
32981
33212
  _super.prototype.onFirstRendering.call(this);
@@ -33009,7 +33240,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33009
33240
  PanelModelBase.prototype.onRowsChanged = function () {
33010
33241
  if (this.isLoadingFromJson)
33011
33242
  return;
33243
+ this.animationAllowed = false;
33012
33244
  this.setArrayPropertyDirectly("rows", this.buildRows());
33245
+ this.animationAllowed = true;
33013
33246
  };
33014
33247
  PanelModelBase.prototype.blockRowsUpdates = function () {
33015
33248
  this.locCountRowUpdates++;
@@ -33329,9 +33562,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33329
33562
  enumerable: false,
33330
33563
  configurable: true
33331
33564
  });
33332
- PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {
33333
- if (!this.visible)
33334
- return false;
33565
+ PanelModelBase.prototype.getIsContentVisible = function (exceptionQuestion) {
33566
+ if (this.areInvisibleElementsShowing)
33567
+ return true;
33335
33568
  for (var i = 0; i < this.elements.length; i++) {
33336
33569
  if (this.elements[i] == exceptionQuestion)
33337
33570
  continue;
@@ -33340,6 +33573,9 @@ var PanelModelBase = /** @class */ (function (_super) {
33340
33573
  }
33341
33574
  return false;
33342
33575
  };
33576
+ PanelModelBase.prototype.getIsPageVisible = function (exceptionQuestion) {
33577
+ return this.visible && this.getIsContentVisible(exceptionQuestion);
33578
+ };
33343
33579
  PanelModelBase.prototype.setVisibleIndex = function (index) {
33344
33580
  if (!this.isVisible || index < 0) {
33345
33581
  this.resetVisibleIndexes();
@@ -34007,6 +34243,7 @@ var PanelModel = /** @class */ (function (_super) {
34007
34243
  id: "cancel-preview",
34008
34244
  locTitle: this.survey.locEditText,
34009
34245
  innerCss: this.survey.cssNavigationEdit,
34246
+ component: "sv-nav-btn",
34010
34247
  action: function () { _this.cancelPreview(); }
34011
34248
  });
34012
34249
  }
@@ -34031,7 +34268,7 @@ var PanelModel = /** @class */ (function (_super) {
34031
34268
  Object.defineProperty(PanelModel.prototype, "hasEditButton", {
34032
34269
  get: function () {
34033
34270
  if (this.survey && this.survey.state === "preview")
34034
- return this.depth === 1;
34271
+ return (this.parent && this.parent instanceof _page__WEBPACK_IMPORTED_MODULE_13__["PageModel"]);
34035
34272
  return false;
34036
34273
  },
34037
34274
  enumerable: false,
@@ -34087,7 +34324,7 @@ var PanelModel = /** @class */ (function (_super) {
34087
34324
  };
34088
34325
  Object.defineProperty(PanelModel.prototype, "showPanelAsPage", {
34089
34326
  get: function () {
34090
- return !!this.originalPage && !this.survey.isShowingPreview;
34327
+ return !!this.originalPage;
34091
34328
  },
34092
34329
  enumerable: false,
34093
34330
  configurable: true
@@ -35709,7 +35946,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
35709
35946
  .append("sv-popup--dropdown-overlay", this.isOverlay && this.model.overlayDisplayMode !== "overlay")
35710
35947
  .append("sv-popup--tablet", this.isTablet && this.isOverlay)
35711
35948
  .append("sv-popup--show-pointer", !this.isOverlay && this.showHeader)
35712
- .append("sv-popup--" + this.popupDirection, !this.isOverlay && this.showHeader);
35949
+ .append("sv-popup--" + this.popupDirection, !this.isOverlay && (this.showHeader || this.popupDirection == "top" || this.popupDirection == "bottom"));
35713
35950
  };
35714
35951
  PopupDropdownViewModel.prototype.getShowHeader = function () {
35715
35952
  return this.model.showPointer && !this.isOverlay;
@@ -36391,12 +36628,7 @@ __webpack_require__.r(__webpack_exports__);
36391
36628
 
36392
36629
  function createPopupModalViewModel(options, rootElement) {
36393
36630
  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);
36631
+ 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
36632
  popupModel.displayMode = options.displayMode || "popup";
36401
36633
  popupModel.isFocusedContent = (_a = options.isFocusedContent) !== null && _a !== void 0 ? _a : true;
36402
36634
  var popupViewModel = new _popup_modal_view_model__WEBPACK_IMPORTED_MODULE_3__["PopupModalViewModel"](popupModel);
@@ -36408,6 +36640,15 @@ function createPopupModalViewModel(options, rootElement) {
36408
36640
  if (!popupViewModel.container) {
36409
36641
  popupViewModel.initializePopupContainer();
36410
36642
  }
36643
+ var onVisibilityChangedCallback = function (sender, options) {
36644
+ if (!options.isVisible) {
36645
+ if (!!container) {
36646
+ popupViewModel.resetComponentElement();
36647
+ }
36648
+ }
36649
+ popupViewModel.onVisibilityChanged.remove(onVisibilityChangedCallback);
36650
+ };
36651
+ popupViewModel.onVisibilityChanged.add(onVisibilityChangedCallback);
36411
36652
  return popupViewModel;
36412
36653
  }
36413
36654
  function createPopupViewModel(model, targetElement) {
@@ -36439,7 +36680,8 @@ __webpack_require__.r(__webpack_exports__);
36439
36680
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
36440
36681
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
36441
36682
  /* 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");
36683
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
36684
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
36443
36685
  var __extends = (undefined && undefined.__extends) || (function () {
36444
36686
  var extendStatics = function (d, b) {
36445
36687
  extendStatics = Object.setPrototypeOf ||
@@ -36468,19 +36710,64 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
36468
36710
 
36469
36711
 
36470
36712
 
36713
+
36471
36714
  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
36715
  var PopupBaseViewModel = /** @class */ (function (_super) {
36473
36716
  __extends(PopupBaseViewModel, _super);
36474
36717
  function PopupBaseViewModel(model) {
36475
36718
  var _this = _super.call(this) || this;
36476
- _this.subscriptionId = PopupBaseViewModel.SubscriptionId++;
36477
36719
  _this.popupSelector = ".sv-popup";
36478
36720
  _this.fixedPopupContainer = ".sv-popup";
36479
36721
  _this.containerSelector = ".sv-popup__container";
36480
36722
  _this.scrollingContentSelector = ".sv-popup__scrolling-content";
36723
+ _this.visibilityAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_6__["AnimationBoolean"](_this, function (val) {
36724
+ if (_this._isVisible !== val) {
36725
+ if (!val) {
36726
+ _this.updateOnHiding();
36727
+ _this.updateIsVisible(val);
36728
+ }
36729
+ else {
36730
+ _this.updateIsVisible(val);
36731
+ }
36732
+ }
36733
+ }, function () { return _this._isVisible; });
36734
+ _this.onVisibilityChanged = new _base__WEBPACK_IMPORTED_MODULE_0__["EventBase"]();
36735
+ _this.onModelIsVisibleChangedCallback = function () {
36736
+ _this.isVisible = _this.model.isVisible;
36737
+ };
36481
36738
  _this.model = model;
36482
36739
  return _this;
36483
36740
  }
36741
+ PopupBaseViewModel.prototype.updateIsVisible = function (val) {
36742
+ this._isVisible = val;
36743
+ this.onVisibilityChanged.fire(this, { isVisible: val });
36744
+ };
36745
+ PopupBaseViewModel.prototype.getLeaveOptions = function () {
36746
+ return { cssClass: "sv-popup--animate-leave" };
36747
+ };
36748
+ PopupBaseViewModel.prototype.getEnterOptions = function () {
36749
+ return { cssClass: "sv-popup--animate-enter" };
36750
+ };
36751
+ PopupBaseViewModel.prototype.getAnimatedElement = function () {
36752
+ return this.getAnimationContainer();
36753
+ };
36754
+ PopupBaseViewModel.prototype.isAnimationEnabled = function () {
36755
+ return this.model.displayMode !== "overlay" && _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].animationEnabled;
36756
+ };
36757
+ PopupBaseViewModel.prototype.getAnimationContainer = function () {
36758
+ var _a;
36759
+ return (_a = this.container) === null || _a === void 0 ? void 0 : _a.querySelector(this.fixedPopupContainer);
36760
+ };
36761
+ Object.defineProperty(PopupBaseViewModel.prototype, "isVisible", {
36762
+ get: function () {
36763
+ return this._isVisible;
36764
+ },
36765
+ set: function (val) {
36766
+ this.visibilityAnimation.sync(val);
36767
+ },
36768
+ enumerable: false,
36769
+ configurable: true
36770
+ });
36484
36771
  Object.defineProperty(PopupBaseViewModel.prototype, "container", {
36485
36772
  get: function () {
36486
36773
  return this.containerElement || this.createdContainer;
@@ -36539,20 +36826,13 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36539
36826
  PopupBaseViewModel.prototype.onModelChanging = function (newModel) {
36540
36827
  };
36541
36828
  PopupBaseViewModel.prototype.setupModel = function (model) {
36542
- var _this = this;
36543
36829
  if (!!this.model) {
36544
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
36830
+ this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);
36545
36831
  }
36546
36832
  this.onModelChanging(model);
36547
36833
  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();
36834
+ model.onVisibilityChanged.add(this.onModelIsVisibleChangedCallback);
36835
+ this.onModelIsVisibleChangedCallback();
36556
36836
  };
36557
36837
  Object.defineProperty(PopupBaseViewModel.prototype, "model", {
36558
36838
  get: function () {
@@ -36732,7 +37012,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36732
37012
  PopupBaseViewModel.prototype.dispose = function () {
36733
37013
  _super.prototype.dispose.call(this);
36734
37014
  if (this.model) {
36735
- this.model.unregisterPropertyChangedHandlers(["isVisible"], "PopupBaseViewModel" + this.subscriptionId);
37015
+ this.model.onVisibilityChanged.remove(this.onModelIsVisibleChangedCallback);
36736
37016
  }
36737
37017
  if (!!this.createdContainer) {
36738
37018
  this.createdContainer.remove();
@@ -36745,7 +37025,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36745
37025
  };
36746
37026
  PopupBaseViewModel.prototype.initializePopupContainer = function () {
36747
37027
  if (!this.container) {
36748
- var container = _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__["DomDocumentHelper"].createElement("div");
37028
+ var container = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].createElement("div");
36749
37029
  this.createdContainer = container;
36750
37030
  Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.popupMountContainer).appendChild(container);
36751
37031
  }
@@ -36762,7 +37042,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36762
37042
  PopupBaseViewModel.prototype.preventScrollOuside = function (event, deltaY) {
36763
37043
  var currentElement = event.target;
36764
37044
  while (currentElement !== this.container) {
36765
- if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_6__["DomDocumentHelper"].getComputedStyle(currentElement).overflowY === "auto" && currentElement.scrollHeight !== currentElement.offsetHeight) {
37045
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].getComputedStyle(currentElement).overflowY === "auto" && currentElement.scrollHeight !== currentElement.offsetHeight) {
36766
37046
  var scrollHeight = currentElement.scrollHeight, scrollTop = currentElement.scrollTop, clientHeight = currentElement.clientHeight;
36767
37047
  if (!(deltaY > 0 && Math.abs(scrollHeight - clientHeight - scrollTop) < 1) && !(deltaY < 0 && scrollTop <= 0)) {
36768
37048
  return;
@@ -36774,7 +37054,6 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36774
37054
  event.preventDefault();
36775
37055
  }
36776
37056
  };
36777
- PopupBaseViewModel.SubscriptionId = 0;
36778
37057
  __decorate([
36779
37058
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: "0px" })
36780
37059
  ], PopupBaseViewModel.prototype, "top", void 0);
@@ -36792,7 +37071,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
36792
37071
  ], PopupBaseViewModel.prototype, "minWidth", void 0);
36793
37072
  __decorate([
36794
37073
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
36795
- ], PopupBaseViewModel.prototype, "isVisible", void 0);
37074
+ ], PopupBaseViewModel.prototype, "_isVisible", void 0);
36796
37075
  __decorate([
36797
37076
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
36798
37077
  ], PopupBaseViewModel.prototype, "locale", void 0);
@@ -44927,6 +45206,7 @@ __webpack_require__.r(__webpack_exports__);
44927
45206
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
44928
45207
  /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./textPreProcessor */ "./src/textPreProcessor.ts");
44929
45208
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
45209
+ /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./error */ "./src/error.ts");
44930
45210
  var __extends = (undefined && undefined.__extends) || (function () {
44931
45211
  var extendStatics = function (d, b) {
44932
45212
  extendStatics = Object.setPrototypeOf ||
@@ -44948,6 +45228,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
44948
45228
 
44949
45229
 
44950
45230
 
45231
+
44951
45232
  var ComponentQuestionJSON = /** @class */ (function () {
44952
45233
  function ComponentQuestionJSON(name, json) {
44953
45234
  this.name = name;
@@ -44988,6 +45269,11 @@ var ComponentQuestionJSON = /** @class */ (function () {
44988
45269
  return;
44989
45270
  this.json.onUpdateQuestionCssClasses(question, element, css);
44990
45271
  };
45272
+ ComponentQuestionJSON.prototype.onSetQuestionValue = function (question, newValue) {
45273
+ if (!this.json.onSetQuestionValue)
45274
+ return;
45275
+ this.json.onSetQuestionValue(question, newValue);
45276
+ };
44991
45277
  ComponentQuestionJSON.prototype.onPropertyChanged = function (question, propertyName, newValue) {
44992
45278
  if (!this.json.onPropertyChanged)
44993
45279
  return;
@@ -45003,6 +45289,11 @@ var ComponentQuestionJSON = /** @class */ (function () {
45003
45289
  return newValue;
45004
45290
  return this.json.onValueChanging(question, name, newValue);
45005
45291
  };
45292
+ ComponentQuestionJSON.prototype.onGetErrorText = function (question) {
45293
+ if (!this.json.getErrorText)
45294
+ return undefined;
45295
+ return this.json.getErrorText(question);
45296
+ };
45006
45297
  ComponentQuestionJSON.prototype.onItemValuePropertyChanged = function (question, item, propertyName, name, newValue) {
45007
45298
  if (!this.json.onItemValuePropertyChanged)
45008
45299
  return;
@@ -45278,11 +45569,23 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
45278
45569
  if (updateIsAnswered === void 0) { updateIsAnswered = true; }
45279
45570
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
45280
45571
  this.updateElementCss();
45572
+ if (!!this.customQuestion) {
45573
+ this.customQuestion.onSetQuestionValue(this, newValue);
45574
+ }
45281
45575
  };
45282
45576
  QuestionCustomModelBase.prototype.setNewValue = function (newValue) {
45283
45577
  _super.prototype.setNewValue.call(this, newValue);
45284
45578
  this.updateElementCss();
45285
45579
  };
45580
+ QuestionCustomModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
45581
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
45582
+ if (!!this.customQuestion) {
45583
+ var text = this.customQuestion.onGetErrorText(this);
45584
+ if (!!text) {
45585
+ errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__["CustomError"](text, this));
45586
+ }
45587
+ }
45588
+ };
45286
45589
  //ISurveyImpl
45287
45590
  QuestionCustomModelBase.prototype.getSurveyData = function () {
45288
45591
  return this;
@@ -45297,6 +45600,9 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
45297
45600
  QuestionCustomModelBase.prototype.setValue = function (name, newValue, locNotification, allowNotifyValueChanged) {
45298
45601
  if (!this.data)
45299
45602
  return;
45603
+ if (!!this.customQuestion) {
45604
+ this.customQuestion.onValueChanged(this, name, newValue);
45605
+ }
45300
45606
  var newName = this.convertDataName(name);
45301
45607
  var valueForSurvey = this.convertDataValue(name, newValue);
45302
45608
  if (this.valueToDataCallback) {
@@ -45305,9 +45611,6 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
45305
45611
  this.data.setValue(newName, valueForSurvey, locNotification, allowNotifyValueChanged);
45306
45612
  this.updateIsAnswered();
45307
45613
  this.updateElementCss();
45308
- if (!!this.customQuestion) {
45309
- this.customQuestion.onValueChanged(this, name, newValue);
45310
- }
45311
45614
  };
45312
45615
  QuestionCustomModelBase.prototype.getQuestionByName = function (name) {
45313
45616
  return undefined;
@@ -45914,7 +46217,8 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
45914
46217
  this.contentPanel.questions.forEach(function (q) { return q.collectNestedQuestions(questions, visibleOnly); });
45915
46218
  };
45916
46219
  QuestionCompositeModel.prototype.convertDataValue = function (name, newValue) {
45917
- var val = this.getValueForContentPanel(this.value);
46220
+ var val = !!this.contentPanel && !this.isEditingSurveyElement ?
46221
+ this.contentPanel.getValue() : this.getValueForContentPanel(this.value);
45918
46222
  if (!val)
45919
46223
  val = {};
45920
46224
  if (this.isValueEmpty(newValue) && !this.isEditingSurveyElement) {
@@ -49153,11 +49457,12 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
49153
49457
  /**
49154
49458
  * Specifies the height of containers for images or videos. Accepts positive numbers and CSS values.
49155
49459
  *
49156
- * Default value: undefined
49460
+ * Default value: `auto`
49461
+ *
49462
+ * This property allows you to specify the exact image height. If you do not set it, the height will be calculated automatically based on the [`minImageHeight`](#minImageHeight) and [`maxImageHeight`](#maxImageHeight) values and available screen height.
49157
49463
  *
49158
- * Use the `imageFit` property to specify how to fit the images or videos into their containers.
49464
+ * Use the [`imageFit`](#imageFit) property to specify how to fit the images or videos into their containers.
49159
49465
  * @see imageWidth
49160
- * @see imageFit
49161
49466
  */
49162
49467
  get: function () {
49163
49468
  return this.getPropertyValue("imageHeight");
@@ -49180,11 +49485,12 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
49180
49485
  /**
49181
49486
  * Specifies the width of containers for images or videos. Accepts positive numbers and CSS values.
49182
49487
  *
49183
- * Default value: 200
49488
+ * Default value: `auto`
49184
49489
  *
49185
- * Use the `imageFit` property to specify how to fit the images or videos into their containers.
49490
+ * This property allows you to specify the exact image width. If you do not set it, the width will be calculated automatically based on the [`minImageWidth`](#minImageWidth) and [`maxImageWidth`](#maxImageWidth) values and available screen width.
49491
+ *
49492
+ * Use the [`imageFit`](#imageFit) property to specify how to fit the images or videos into their containers.
49186
49493
  * @see imageHeight
49187
- * @see imageFit
49188
49494
  */
49189
49495
  get: function () {
49190
49496
  return this.getPropertyValue("imageWidth");
@@ -53576,10 +53882,9 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
53576
53882
  });
53577
53883
  Object.defineProperty(MatrixDropdownColumn.prototype, "isRequired", {
53578
53884
  /**
53579
- * Marks the column as required. If a respondent skips any cell in a required column, the matrix displays a validation error.
53885
+ * Marks the column as required. If a respondent skips any cell in a required column, the matrix displays a [validation error](#requiredErrorText).
53580
53886
  *
53581
53887
  * If you want to mark the column as required based on a condition, specify the [`requiredIf`](#requiredIf) property.
53582
- * @see requiredErrorText
53583
53888
  * @see visible
53584
53889
  * @see readOnly
53585
53890
  */
@@ -55065,7 +55370,8 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
55065
55370
  };
55066
55371
  QuestionMatrixDropdownRenderedTable.prototype.getRowDragCell = function (rowIndex) {
55067
55372
  var cell = new QuestionMatrixDropdownRenderedCell();
55068
- cell.isDragHandlerCell = true;
55373
+ var lockedRows = this.matrix.lockedRowCount;
55374
+ cell.isDragHandlerCell = lockedRows < 1 || rowIndex >= lockedRows;
55069
55375
  cell.className = this.getActionsCellClassName(cell);
55070
55376
  cell.row = this.matrix.visibleRows[rowIndex];
55071
55377
  return cell;
@@ -55655,7 +55961,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
55655
55961
  _this.registerPropertyChangedHandlers(["hideColumnsIfEmpty", "allowAddRows"], function () {
55656
55962
  _this.updateShowTableAndAddRow();
55657
55963
  });
55658
- _this.registerPropertyChangedHandlers(["allowRowsDragAndDrop", "isReadOnly"], function () { _this.clearRowsAndResetRenderedTable(); });
55964
+ _this.registerPropertyChangedHandlers(["allowRowsDragAndDrop", "isReadOnly", "lockedRowCount"], function () { _this.clearRowsAndResetRenderedTable(); });
55659
55965
  _this.dragOrClickHelper = new _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_9__["DragOrClickHelper"](_this.startDragMatrixRow);
55660
55966
  return _this;
55661
55967
  }
@@ -55886,6 +56192,16 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
55886
56192
  enumerable: false,
55887
56193
  configurable: true
55888
56194
  });
56195
+ Object.defineProperty(QuestionMatrixDynamicModel.prototype, "lockedRowCount", {
56196
+ get: function () {
56197
+ return this.getPropertyValue("lockedRowCount", 0);
56198
+ },
56199
+ set: function (val) {
56200
+ this.setPropertyValue("lockedRowCount", val);
56201
+ },
56202
+ enumerable: false,
56203
+ configurable: true
56204
+ });
55889
56205
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "iconDragElement", {
55890
56206
  get: function () {
55891
56207
  return this.cssClasses.iconDragElement;
@@ -56043,7 +56359,10 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
56043
56359
  QuestionMatrixDynamicModel.prototype.canRemoveRow = function (row) {
56044
56360
  if (!this.survey)
56045
56361
  return true;
56046
- return this.survey.matrixAllowRemoveRow(this, row.index, row);
56362
+ var index = row.rowIndex - 1;
56363
+ if (this.lockedRowCount > 0 && index < this.lockedRowCount)
56364
+ return false;
56365
+ return this.survey.matrixAllowRemoveRow(this, index, row);
56047
56366
  };
56048
56367
  QuestionMatrixDynamicModel.prototype.addRowUI = function () {
56049
56368
  this.addRow(true);
@@ -56751,9 +57070,9 @@ var MultipleTextEditorModel = /** @class */ (function (_super) {
56751
57070
  }(_question_text__WEBPACK_IMPORTED_MODULE_3__["QuestionTextModel"]));
56752
57071
 
56753
57072
  /**
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.
57073
+ * 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
57074
  *
56756
- * [View Demo](https://surveyjs.io/form-library/examples/multiple-text-box-question/)
57075
+ * [View Demo](https://surveyjs.io/form-library/examples/multiple-text-box-question/ (linkStyle))
56757
57076
  */
56758
57077
  var MultipleTextItemModel = /** @class */ (function (_super) {
56759
57078
  __extends(MultipleTextItemModel, _super);
@@ -56765,6 +57084,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56765
57084
  _this.editor.focusIn();
56766
57085
  };
56767
57086
  _this.editorValue = _this.createEditor(name);
57087
+ _this.maskSettings = _this.editorValue.maskSettings;
56768
57088
  _this.editor.questionTitleTemplateCallback = function () {
56769
57089
  return "";
56770
57090
  };
@@ -56789,7 +57109,10 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56789
57109
  };
56790
57110
  Object.defineProperty(MultipleTextItemModel.prototype, "name", {
56791
57111
  /**
56792
- * The item name.
57112
+ * An item ID that is not visible to respondents.
57113
+ *
57114
+ * > Item IDs must be unique.
57115
+ * @see title
56793
57116
  */
56794
57117
  get: function () {
56795
57118
  return this.editor.name;
@@ -56840,7 +57163,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56840
57163
  };
56841
57164
  Object.defineProperty(MultipleTextItemModel.prototype, "isRequired", {
56842
57165
  /**
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.
57166
+ * Marks the item as required. If a respondent leaves this item empty, the question displays a [validation error](#requiredErrorText).
56844
57167
  */
56845
57168
  get: function () {
56846
57169
  return this.editor.isRequired;
@@ -56853,7 +57176,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56853
57176
  });
56854
57177
  Object.defineProperty(MultipleTextItemModel.prototype, "inputType", {
56855
57178
  /**
56856
- * Use this property to change the default input type.
57179
+ * 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.
57180
+ *
57181
+ * Default value: `"text"`
56857
57182
  */
56858
57183
  get: function () {
56859
57184
  return this.editor.inputType;
@@ -56866,8 +57191,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56866
57191
  });
56867
57192
  Object.defineProperty(MultipleTextItemModel.prototype, "title", {
56868
57193
  /**
56869
- * Item title. If it is empty, the item name is rendered as title. This property supports markdown.
56870
- * @see name
57194
+ * 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
57195
  */
56872
57196
  get: function () {
56873
57197
  return this.editor.title;
@@ -56894,9 +57218,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56894
57218
  });
56895
57219
  Object.defineProperty(MultipleTextItemModel.prototype, "maxLength", {
56896
57220
  /**
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
57221
+ * The maximum text length measured in characters. Assign 0 if the length should be unlimited.
57222
+ *
57223
+ * Default value: -1 (inherits the actual value from the `SurveyModel`'s [`maxTextLength`](https://surveyjs.io/form-library/documentation/surveymodel#maxTextLength) property).
56900
57224
  */
56901
57225
  get: function () {
56902
57226
  return this.editor.maxLength;
@@ -56913,7 +57237,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56913
57237
  };
56914
57238
  Object.defineProperty(MultipleTextItemModel.prototype, "placeholder", {
56915
57239
  /**
56916
- * The input place holder.
57240
+ * A placeholder for the input field.
56917
57241
  */
56918
57242
  get: function () {
56919
57243
  return this.editor.placeholder;
@@ -56950,7 +57274,7 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56950
57274
  });
56951
57275
  Object.defineProperty(MultipleTextItemModel.prototype, "requiredErrorText", {
56952
57276
  /**
56953
- * The custom text that will be shown on required error. Use this property, if you do not want to show the default text.
57277
+ * Specifies a custom error message for a [required item](#isRequired).
56954
57278
  */
56955
57279
  get: function () {
56956
57280
  return this.editor.requiredErrorText;
@@ -56970,7 +57294,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56970
57294
  });
56971
57295
  Object.defineProperty(MultipleTextItemModel.prototype, "size", {
56972
57296
  /**
56973
- * The input size.
57297
+ * A value passed on to the [`size`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/size) attribute of the underlying `<input>` element.
57298
+ *
57299
+ * 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
57300
  */
56975
57301
  get: function () {
56976
57302
  return this.editor.size;
@@ -56983,7 +57309,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56983
57309
  });
56984
57310
  Object.defineProperty(MultipleTextItemModel.prototype, "defaultValueExpression", {
56985
57311
  /**
56986
- * An expression used to calculate the [defaultValue](https://surveyjs.io/form-library/documentation/question#defaultValue).
57312
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the default item value.
57313
+ * @see minValueExpression
57314
+ * @see maxValueExpression
56987
57315
  */
56988
57316
  get: function () {
56989
57317
  return this.editor.defaultValueExpression;
@@ -56996,7 +57324,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
56996
57324
  });
56997
57325
  Object.defineProperty(MultipleTextItemModel.prototype, "minValueExpression", {
56998
57326
  /**
56999
- * The minimum value specified as an expression. For example, `"minValueExpression": "today(-1)"` sets the minimum value to yesterday.
57327
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the minimum item value.
57328
+ * @see maxValueExpression
57329
+ * @see defaultValueExpression
57000
57330
  */
57001
57331
  get: function () {
57002
57332
  return this.editor.minValueExpression;
@@ -57009,7 +57339,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57009
57339
  });
57010
57340
  Object.defineProperty(MultipleTextItemModel.prototype, "maxValueExpression", {
57011
57341
  /**
57012
- * The maximum value specified as an expression. For example, `"maxValueExpression": "today(1)"` sets the maximum value to tomorrow.
57342
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the maximum item value.
57343
+ * @see minValueExpression
57344
+ * @see defaultValueExpression
57013
57345
  */
57014
57346
  get: function () {
57015
57347
  return this.editor.maxValueExpression;
@@ -57022,7 +57354,9 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57022
57354
  });
57023
57355
  Object.defineProperty(MultipleTextItemModel.prototype, "validators", {
57024
57356
  /**
57025
- * The list of question validators.
57357
+ * Item validators.
57358
+ *
57359
+ * [Data Validation](https://surveyjs.io/form-library/documentation/data-validation (linkStyle))
57026
57360
  */
57027
57361
  get: function () {
57028
57362
  return this.editor.validators;
@@ -57036,9 +57370,71 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
57036
57370
  MultipleTextItemModel.prototype.getValidators = function () {
57037
57371
  return this.validators;
57038
57372
  };
57373
+ Object.defineProperty(MultipleTextItemModel.prototype, "maskType", {
57374
+ /**
57375
+ * Specifies the type of a mask applied to the input.
57376
+ *
57377
+ * Possible values:
57378
+ *
57379
+ * - `"none"` (default)
57380
+ * - `"numeric"`
57381
+ * - `"currency"`
57382
+ * - `"datetime"`
57383
+ * - `"pattern"`
57384
+ *
57385
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
57386
+ * @see maskSettings
57387
+ */
57388
+ get: function () {
57389
+ return this.editor.maskType;
57390
+ },
57391
+ set: function (val) {
57392
+ this.editor.maskType = val;
57393
+ this.maskSettings = this.editor.maskSettings;
57394
+ },
57395
+ enumerable: false,
57396
+ configurable: true
57397
+ });
57398
+ Object.defineProperty(MultipleTextItemModel.prototype, "maskSettings", {
57399
+ /**
57400
+ * An object with properties that configure the mask applied to the input.
57401
+ *
57402
+ * Available properties depend on the specified [`maskType`](#maskType) and belong to corresponding classes. Refer to the class APIs for a full list of properties:
57403
+ *
57404
+ * | `maskType` | Class |
57405
+ * | ---------- | ----- |
57406
+ * | `"numeric"` | [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/api-reference/inputmasknumeric) |
57407
+ * | `"currency"` | [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskcurrency) |
57408
+ * | `"datetime"` | [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskdatetime) |
57409
+ * | `"pattern"` | [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern) |
57410
+ *
57411
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
57412
+ */
57413
+ get: function () {
57414
+ return this.getPropertyValue("maskSettings");
57415
+ },
57416
+ set: function (val) {
57417
+ this.setPropertyValue("maskSettings", val);
57418
+ if (this.editor.maskSettings !== val) {
57419
+ this.editor.maskSettings = val;
57420
+ }
57421
+ },
57422
+ enumerable: false,
57423
+ configurable: true
57424
+ });
57425
+ Object.defineProperty(MultipleTextItemModel.prototype, "inputTextAlignment", {
57426
+ get: function () {
57427
+ return this.editor.inputTextAlignment;
57428
+ },
57429
+ set: function (val) {
57430
+ this.editor.inputTextAlignment = val;
57431
+ },
57432
+ enumerable: false,
57433
+ configurable: true
57434
+ });
57039
57435
  Object.defineProperty(MultipleTextItemModel.prototype, "value", {
57040
57436
  /**
57041
- * The item value.
57437
+ * An item value.
57042
57438
  */
57043
57439
  get: function () {
57044
57440
  return this.data ? this.data.getMultipleTextValue(this.name) : null;
@@ -57228,9 +57624,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
57228
57624
  };
57229
57625
  Object.defineProperty(QuestionMultipleTextModel.prototype, "items", {
57230
57626
  /**
57231
- * Gets or sets an array of `MultipleTextItemModel` objects that represent input items.
57627
+ * Gets or sets an array of [`MultipleTextItemModel`](https://surveyjs.io/form-library/documentation/api-reference/multipletextitemmodel) objects that represent input items.
57232
57628
  *
57233
- * This property accepts an array of objects with the following structure:
57629
+ * Each object in this array should have at least the following properties:
57234
57630
  *
57235
57631
  * ```js
57236
57632
  * {
@@ -57271,6 +57667,12 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
57271
57667
  }
57272
57668
  return null;
57273
57669
  };
57670
+ QuestionMultipleTextModel.prototype.getElementsInDesign = function (includeHidden) {
57671
+ if (includeHidden === void 0) { includeHidden = false; }
57672
+ var elements;
57673
+ elements = _super.prototype.getElementsInDesign.call(this, includeHidden);
57674
+ return elements.concat(this.items);
57675
+ };
57274
57676
  QuestionMultipleTextModel.prototype.addConditionObjectsByContext = function (objects, context) {
57275
57677
  for (var i = 0; i < this.items.length; i++) {
57276
57678
  var item = this.items[i];
@@ -57724,6 +58126,31 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextite
57724
58126
  default: "text",
57725
58127
  choices: _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].questions.inputTypes,
57726
58128
  },
58129
+ {
58130
+ name: "maskType:masktype",
58131
+ default: "none",
58132
+ visibleIndex: 0,
58133
+ dependsOn: "inputType",
58134
+ visibleIf: function (obj) {
58135
+ return obj.inputType === "text";
58136
+ }
58137
+ },
58138
+ {
58139
+ name: "maskSettings:masksettings",
58140
+ className: "masksettings",
58141
+ visibleIndex: 1,
58142
+ dependsOn: "inputType",
58143
+ visibleIf: function (obj) {
58144
+ return obj.inputType === "text";
58145
+ },
58146
+ onGetValue: function (obj) {
58147
+ return obj.maskSettings.getData();
58148
+ },
58149
+ onSetValue: function (obj, value) {
58150
+ obj.maskSettings.setData(value);
58151
+ },
58152
+ },
58153
+ { name: "inputTextAlignment", default: "auto", choices: ["left", "right", "auto"], visible: false },
57727
58154
  { name: "title", serializationProperty: "locTitle" },
57728
58155
  { name: "maxLength:number", default: -1 },
57729
58156
  { name: "size:number", minValue: 0 },
@@ -60772,6 +61199,7 @@ __webpack_require__.r(__webpack_exports__);
60772
61199
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
60773
61200
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
60774
61201
  /* harmony import */ var _src_settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../src/settings */ "./src/settings.ts");
61202
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
60775
61203
  var __extends = (undefined && undefined.__extends) || (function () {
60776
61204
  var extendStatics = function (d, b) {
60777
61205
  extendStatics = Object.setPrototypeOf ||
@@ -60803,6 +61231,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
60803
61231
 
60804
61232
 
60805
61233
 
61234
+
60806
61235
  /**
60807
61236
  * A class that describes the Ranking question type.
60808
61237
  *
@@ -60822,27 +61251,33 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60822
61251
  if (_this.visibleChoices.length === 1 && !_this.selectToRankEnabled) {
60823
61252
  _this.value = [];
60824
61253
  _this.value.push(_this.visibleChoices[0].value);
60825
- _this.updateRankingChoices();
61254
+ _this.updateRankingChoicesSync();
60826
61255
  return;
60827
61256
  }
60828
61257
  if (_this.isEmpty()) {
60829
- _this.updateRankingChoices();
61258
+ _this.updateRankingChoicesSync();
60830
61259
  return;
60831
61260
  }
60832
61261
  if (_this.selectToRankEnabled) {
60833
- _this.updateRankingChoices();
61262
+ _this.updateRankingChoicesSync();
60834
61263
  return;
60835
61264
  }
60836
61265
  if (_this.visibleChoices.length > _this.value.length)
60837
61266
  _this.addToValueByVisibleChoices();
60838
61267
  if (_this.visibleChoices.length < _this.value.length)
60839
61268
  _this.removeFromValueByVisibleChoices();
60840
- _this.updateRankingChoices();
61269
+ _this.updateRankingChoicesSync();
60841
61270
  };
60842
61271
  _this.localeChanged = function () {
60843
61272
  _super.prototype.localeChanged.call(_this);
60844
- _this.updateRankingChoices();
61273
+ _this.updateRankingChoicesSync();
60845
61274
  };
61275
+ _this._rankingChoicesAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_10__["AnimationGroup"](_this.getChoicesAnimation(true), function (val) {
61276
+ _this.setPropertyValue("rankingChoices", val);
61277
+ }, function () { return _this.rankingChoices; });
61278
+ _this._unRankingChoicesAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_10__["AnimationGroup"](_this.getChoicesAnimation(false), function (val) {
61279
+ _this.setPropertyValue("unRankingChoices", val);
61280
+ }, function () { return _this.unRankingChoices; });
60846
61281
  _this.handlePointerDown = function (event, choice, node) {
60847
61282
  var target = event.target;
60848
61283
  if (!_this.isDragStartNodeValid(target))
@@ -60895,6 +61330,8 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60895
61330
  _this.isValueSetByUser = false;
60896
61331
  _this.setValue = function () {
60897
61332
  var value = [];
61333
+ _this.rankingChoicesAnimation.cancel();
61334
+ _this.unRankingChoicesAnimation.cancel();
60898
61335
  _this.rankingChoices.forEach(function (choice) {
60899
61336
  value.push(choice.value);
60900
61337
  });
@@ -60902,10 +61339,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60902
61339
  _this.isValueSetByUser = true;
60903
61340
  };
60904
61341
  _this.createNewArray("rankingChoices");
61342
+ _this.createNewArray("unRankingChoices");
60905
61343
  _this.registerFunctionOnPropertyValueChanged("selectToRankEnabled", function () {
60906
61344
  _this.clearValue();
60907
61345
  _this.setDragDropRankingChoices();
60908
- _this.updateRankingChoices();
61346
+ _this.updateRankingChoicesSync();
60909
61347
  });
60910
61348
  return _this;
60911
61349
  }
@@ -60942,10 +61380,12 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60942
61380
  });
60943
61381
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
60944
61382
  var itemIndex = this.rankingChoices.indexOf(item);
61383
+ var unrankedItemIndex = this.unRankingChoices.indexOf(item);
60945
61384
  var dropTargetIndex = this.rankingChoices.indexOf(this.currentDropTarget);
61385
+ var isDrop = (this.selectToRankEnabled && itemIndex > -1 && unrankedItemIndex > -1) || this.currentDropTarget === item;
60946
61386
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
60947
61387
  .append(_super.prototype.getItemClassCore.call(this, item, options))
60948
- .append(this.cssClasses.itemGhostMod, this.currentDropTarget === item)
61388
+ .append(this.cssClasses.itemGhostMod, isDrop)
60949
61389
  .append("sv-dragdrop-movedown", itemIndex === dropTargetIndex + 1 && this.dropTargetNodeMove === "down")
60950
61390
  .append("sv-dragdrop-moveup", itemIndex === dropTargetIndex - 1 && this.dropTargetNodeMove === "up")
60951
61391
  .toString();
@@ -60997,10 +61437,15 @@ var QuestionRankingModel = /** @class */ (function (_super) {
60997
61437
  QuestionRankingModel.prototype.getNumberByIndex = function (index) {
60998
61438
  return this.isEmpty() ? "" : index + 1 + "";
60999
61439
  };
61440
+ QuestionRankingModel.prototype.updateRankingChoicesSync = function () {
61441
+ this.animationAllowed = false;
61442
+ this.updateRankingChoices();
61443
+ this.animationAllowed = true;
61444
+ };
61000
61445
  QuestionRankingModel.prototype.setSurveyImpl = function (value, isLight) {
61001
61446
  _super.prototype.setSurveyImpl.call(this, value, isLight);
61002
61447
  this.setDragDropRankingChoices();
61003
- this.updateRankingChoices();
61448
+ this.updateRankingChoicesSync();
61004
61449
  };
61005
61450
  QuestionRankingModel.prototype.isAnswerCorrect = function () {
61006
61451
  return _helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isArraysEqual(this.value, this.correctAnswer, false);
@@ -61014,7 +61459,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61014
61459
  _super.prototype.onSurveyValueChanged.call(this, newValue);
61015
61460
  if (this.isLoadingFromJson)
61016
61461
  return;
61017
- this.updateRankingChoices();
61462
+ this.updateRankingChoicesSync();
61018
61463
  };
61019
61464
  QuestionRankingModel.prototype.addToValueByVisibleChoices = function () {
61020
61465
  var newValue = this.value.slice();
@@ -61035,27 +61480,61 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61035
61480
  }
61036
61481
  this.value = newValue;
61037
61482
  };
61483
+ QuestionRankingModel.prototype.getChoicesAnimation = function (isRankingChoices) {
61484
+ var _this = this;
61485
+ return {
61486
+ isAnimationEnabled: function () { return _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].animationEnabled && _this.animationAllowed; },
61487
+ getLeaveOptions: function (item) {
61488
+ var choices = isRankingChoices ? _this.rankingChoices : _this.unRankingChoices;
61489
+ if (_this.renderedSelectToRankAreasLayout == "vertical" && choices.length == 1 && choices.indexOf(item) >= 0) {
61490
+ return { cssClass: "sv-ranking-item--animate-item-removing-empty" };
61491
+ }
61492
+ return { cssClass: "sv-ranking-item--animate-item-removing" };
61493
+ },
61494
+ getEnterOptions: function (item) {
61495
+ var choices = isRankingChoices ? _this.rankingChoices : _this.unRankingChoices;
61496
+ if (_this.renderedSelectToRankAreasLayout == "vertical" && choices.length == 1 && choices.indexOf(item) >= 0) {
61497
+ return { cssClass: "sv-ranking-item--animate-item-adding-empty" };
61498
+ }
61499
+ return { cssClass: "sv-ranking-item--animate-item-adding" };
61500
+ },
61501
+ getAnimatedElement: function (item) {
61502
+ var _a;
61503
+ var containerSelector = isRankingChoices ? ".sv-ranking__container--to" : ".sv-ranking__container--from";
61504
+ return (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(containerSelector + " .sv-ranking-item--ghost");
61505
+ }
61506
+ };
61507
+ };
61508
+ Object.defineProperty(QuestionRankingModel.prototype, "rankingChoicesAnimation", {
61509
+ get: function () {
61510
+ return this._rankingChoicesAnimation;
61511
+ },
61512
+ enumerable: false,
61513
+ configurable: true
61514
+ });
61515
+ Object.defineProperty(QuestionRankingModel.prototype, "unRankingChoicesAnimation", {
61516
+ get: function () {
61517
+ return this._unRankingChoicesAnimation;
61518
+ },
61519
+ enumerable: false,
61520
+ configurable: true
61521
+ });
61038
61522
  Object.defineProperty(QuestionRankingModel.prototype, "rankingChoices", {
61039
61523
  get: function () {
61040
61524
  return this.getPropertyValue("rankingChoices", []);
61041
61525
  },
61526
+ set: function (val) {
61527
+ this._rankingChoicesAnimation.sync(val);
61528
+ },
61042
61529
  enumerable: false,
61043
61530
  configurable: true
61044
61531
  });
61045
61532
  Object.defineProperty(QuestionRankingModel.prototype, "unRankingChoices", {
61046
61533
  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;
61534
+ return this.getPropertyValue("unRankingChoices", []);
61535
+ },
61536
+ set: function (val) {
61537
+ this._unRankingChoicesAnimation.sync(val);
61059
61538
  },
61060
61539
  enumerable: false,
61061
61540
  configurable: true
@@ -61087,20 +61566,32 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61087
61566
  });
61088
61567
  this.setPropertyValue("rankingChoices", newRankingChoices);
61089
61568
  };
61569
+ QuestionRankingModel.prototype.updateUnRankingChoices = function (newRankingChoices) {
61570
+ var unRankingChoices = [];
61571
+ this.visibleChoices.forEach(function (choice) {
61572
+ unRankingChoices.push(choice);
61573
+ });
61574
+ newRankingChoices.forEach(function (rankingChoice) {
61575
+ unRankingChoices.forEach(function (choice, index) {
61576
+ if (choice.value === rankingChoice.value)
61577
+ unRankingChoices.splice(index, 1);
61578
+ });
61579
+ });
61580
+ this.unRankingChoices = unRankingChoices;
61581
+ };
61090
61582
  QuestionRankingModel.prototype.updateRankingChoicesSelectToRankMode = function (forceUpdate) {
61091
61583
  var _this = this;
61092
- if (this.isEmpty()) {
61093
- this.setPropertyValue("rankingChoices", []);
61094
- return;
61095
- }
61096
61584
  var newRankingChoices = [];
61097
- this.value.forEach(function (valueItem) {
61098
- _this.visibleChoices.forEach(function (choice) {
61099
- if (choice.value === valueItem)
61100
- newRankingChoices.push(choice);
61585
+ if (!this.isEmpty()) {
61586
+ this.value.forEach(function (valueItem) {
61587
+ _this.visibleChoices.forEach(function (choice) {
61588
+ if (choice.value === valueItem)
61589
+ newRankingChoices.push(choice);
61590
+ });
61101
61591
  });
61102
- });
61103
- this.setPropertyValue("rankingChoices", newRankingChoices);
61592
+ }
61593
+ this.updateUnRankingChoices(newRankingChoices);
61594
+ this.rankingChoices = newRankingChoices;
61104
61595
  };
61105
61596
  QuestionRankingModel.prototype.endLoadingFromJson = function () {
61106
61597
  _super.prototype.endLoadingFromJson.call(this);
@@ -61176,14 +61667,18 @@ var QuestionRankingModel = /** @class */ (function (_super) {
61176
61667
  var toIndex;
61177
61668
  if (key === " " && !isMovedElementRanked) {
61178
61669
  toIndex = 0;
61670
+ this.animationAllowed = false;
61179
61671
  dnd.selectToRank(this, fromIndex, toIndex);
61672
+ this.animationAllowed = true;
61180
61673
  this.setValueAfterKeydown(toIndex, "to-container");
61181
61674
  return;
61182
61675
  }
61183
61676
  if (!isMovedElementRanked)
61184
61677
  return;
61185
61678
  if (key === " ") {
61679
+ this.animationAllowed = false;
61186
61680
  dnd.unselectFromRank(this, fromIndex);
61681
+ this.animationAllowed = true;
61187
61682
  toIndex = this.unRankingChoices.indexOf(movedElement); //'this.' leads to actual array after the 'unselectFromRank' method
61188
61683
  this.setValueAfterKeydown(toIndex, "from-container");
61189
61684
  return;
@@ -61886,7 +62381,7 @@ var QuestionRatingModel = /** @class */ (function (_super) {
61886
62381
  return this.inputId + "_" + index;
61887
62382
  };
61888
62383
  QuestionRatingModel.prototype.supportGoNextPageAutomatic = function () {
61889
- return this.isMouseDown === true;
62384
+ return this.isMouseDown === true || this.renderAs === "dropdown";
61890
62385
  };
61891
62386
  QuestionRatingModel.prototype.supportOther = function () {
61892
62387
  return false;
@@ -63636,6 +64131,8 @@ var QuestionTextModel = /** @class */ (function (_super) {
63636
64131
  Object.defineProperty(QuestionTextModel.prototype, "inputType", {
63637
64132
  /**
63638
64133
  * 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.
64134
+ *
64135
+ * Default value: `"text"`
63639
64136
  */
63640
64137
  get: function () {
63641
64138
  return this.getPropertyValue("inputType");
@@ -64980,9 +65477,14 @@ var SurveyQuestionBooleanRadio = /** @class */ (function (_super) {
64980
65477
  SurveyQuestionBooleanRadio.prototype.renderElement = function () {
64981
65478
  var cssClasses = this.question.cssClasses;
64982
65479
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: cssClasses.rootRadio },
64983
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("fieldset", { role: "presentation", className: cssClasses.radioFieldset },
64984
- this.renderRadioItem(false, this.question.locLabelFalse),
64985
- this.renderRadioItem(true, this.question.locLabelTrue))));
65480
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("fieldset", { role: "presentation", className: cssClasses.radioFieldset }, !this.question.swapOrder ?
65481
+ (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
65482
+ this.renderRadioItem(false, this.question.locLabelFalse),
65483
+ this.renderRadioItem(true, this.question.locLabelTrue)))
65484
+ :
65485
+ (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
65486
+ this.renderRadioItem(true, this.question.locLabelTrue),
65487
+ this.renderRadioItem(false, this.question.locLabelFalse))))));
64986
65488
  };
64987
65489
  return SurveyQuestionBooleanRadio;
64988
65490
  }(_boolean__WEBPACK_IMPORTED_MODULE_3__["SurveyQuestionBoolean"]));
@@ -67015,18 +67517,18 @@ var PopupContainer = /** @class */ (function (_super) {
67015
67517
  }
67016
67518
  this.prevIsVisible = this.model.isVisible;
67017
67519
  };
67018
- PopupContainer.prototype.renderContainer = function (PopupBaseViewModel) {
67520
+ PopupContainer.prototype.renderContainer = function (popupBaseViewModel) {
67019
67521
  var _this = this;
67020
- var headerPopup = PopupBaseViewModel.showHeader ? this.renderHeaderPopup(PopupBaseViewModel) : null;
67021
- var headerContent = !!PopupBaseViewModel.title ? this.renderHeaderContent() : null;
67522
+ var headerPopup = popupBaseViewModel.showHeader ? this.renderHeaderPopup(popupBaseViewModel) : null;
67523
+ var headerContent = !!popupBaseViewModel.title ? this.renderHeaderContent() : null;
67022
67524
  var content = this.renderContent();
67023
- var footerContent = PopupBaseViewModel.showFooter ? this.renderFooter(this.model) : null;
67525
+ var footerContent = popupBaseViewModel.showFooter ? this.renderFooter(this.model) : null;
67024
67526
  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,
67527
+ left: popupBaseViewModel.left,
67528
+ top: popupBaseViewModel.top,
67529
+ height: popupBaseViewModel.height,
67530
+ width: popupBaseViewModel.width,
67531
+ minWidth: popupBaseViewModel.minWidth,
67030
67532
  }, onClick: function (ev) {
67031
67533
  _this.clickInside(ev);
67032
67534
  } },
@@ -67090,11 +67592,14 @@ function showModal(componentName, data, onApply, onCancel, cssClass, title, disp
67090
67592
  return showDialog(options);
67091
67593
  }
67092
67594
  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
67595
  var popupViewModel = Object(survey_core__WEBPACK_IMPORTED_MODULE_2__["createPopupModalViewModel"])(dialogOptions, rootElement);
67596
+ var onVisibilityChangedCallback = function (_, options) {
67597
+ if (!options.isVisible) {
67598
+ react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.unmountComponentAtNode(popupViewModel.container);
67599
+ popupViewModel.dispose();
67600
+ }
67601
+ };
67602
+ popupViewModel.onVisibilityChanged.add(onVisibilityChangedCallback);
67098
67603
  react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.render(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(PopupContainer, { model: popupViewModel }), popupViewModel.container);
67099
67604
  popupViewModel.model.isVisible = true;
67100
67605
  return popupViewModel;
@@ -68521,6 +69026,7 @@ var SurveyRowElement = /** @class */ (function (_super) {
68521
69026
  function SurveyRowElement(props) {
68522
69027
  var _this = _super.call(this, props) || this;
68523
69028
  _this.element.cssClasses;
69029
+ _this.rootRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
68524
69030
  return _this;
68525
69031
  }
68526
69032
  SurveyRowElement.prototype.getStateElement = function () {
@@ -68568,9 +69074,27 @@ var SurveyRowElement = /** @class */ (function (_super) {
68568
69074
  enumerable: false,
68569
69075
  configurable: true
68570
69076
  });
69077
+ SurveyRowElement.prototype.componentDidMount = function () {
69078
+ _super.prototype.componentDidMount.call(this);
69079
+ if (this.rootRef.current) {
69080
+ (this.element).setWrapperElement(this.rootRef.current);
69081
+ }
69082
+ };
69083
+ SurveyRowElement.prototype.componentWillUnmount = function () {
69084
+ _super.prototype.componentWillUnmount.call(this);
69085
+ this.element.setWrapperElement(undefined);
69086
+ };
68571
69087
  SurveyRowElement.prototype.shouldComponentUpdate = function (nextProps, nextState) {
68572
69088
  if (!_super.prototype.shouldComponentUpdate.call(this, nextProps, nextState))
68573
69089
  return false;
69090
+ if (nextProps.element !== this.element) {
69091
+ if (nextProps.element) {
69092
+ nextProps.element.setWrapperElement(this.rootRef.current);
69093
+ }
69094
+ if (this.element) {
69095
+ this.element.setWrapperElement(undefined);
69096
+ }
69097
+ }
68574
69098
  this.element.cssClasses;
68575
69099
  return true;
68576
69100
  };
@@ -68584,7 +69108,7 @@ var SurveyRowElement = /** @class */ (function (_super) {
68584
69108
  el.focusIn();
68585
69109
  }
68586
69110
  };
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, })));
69111
+ 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
69112
  };
68589
69113
  SurveyRowElement.prototype.createElement = function (element, elementIndex) {
68590
69114
  var index = elementIndex ? "-" + elementIndex : 0;
@@ -69127,6 +69651,10 @@ var SurveyPage = /** @class */ (function (_super) {
69127
69651
  enumerable: false,
69128
69652
  configurable: true
69129
69653
  });
69654
+ // shouldComponentUpdate(nextProps: any, nextState: any): boolean {
69655
+ // if(!super.shouldComponentUpdate(nextProps, nextState)) return false;
69656
+ // return true;
69657
+ // }
69130
69658
  SurveyPage.prototype.renderElement = function () {
69131
69659
  var title = this.renderTitle();
69132
69660
  var description = this.renderDescription();
@@ -69267,13 +69795,15 @@ var SurveyPanelBase = /** @class */ (function (_super) {
69267
69795
  }
69268
69796
  }
69269
69797
  };
69798
+ SurveyPanelBase.prototype.getIsVisible = function () {
69799
+ return this.panelBase.isVisible;
69800
+ };
69270
69801
  SurveyPanelBase.prototype.canRender = function () {
69271
- return (_super.prototype.canRender.call(this) && !!this.survey && !!this.panelBase
69272
- && this.panelBase.isVisible && !!this.panelBase.survey);
69802
+ return (_super.prototype.canRender.call(this) && !!this.survey && !!this.panelBase && !!this.panelBase.survey && this.getIsVisible());
69273
69803
  };
69274
69804
  SurveyPanelBase.prototype.renderRows = function (css) {
69275
69805
  var _this = this;
69276
- return this.panelBase.rows.map(function (row) { return _this.createRow(row, css); });
69806
+ return this.panelBase.visibleRows.map(function (row) { return _this.createRow(row, css); });
69277
69807
  };
69278
69808
  SurveyPanelBase.prototype.createRow = function (row, css) {
69279
69809
  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 +69879,11 @@ var SurveyPanel = /** @class */ (function (_super) {
69349
69879
  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
69880
  var style = {
69351
69881
  paddingLeft: this.panel.innerPaddingLeft,
69352
- display: !this.panel.isCollapsed ? undefined : "none",
69882
+ display: this.panel.renderedIsExpanded ? undefined : "none",
69353
69883
  };
69354
69884
  var content = null;
69355
- if (!this.panel.isCollapsed || this.hasBeenExpanded) {
69356
- this.hasBeenExpanded = true;
69885
+ if (this.panel.renderedIsExpanded) {
69886
+ // this.hasBeenExpanded = true;
69357
69887
  var rows = this.renderRows(this.panelBase.cssClasses);
69358
69888
  var className = this.panelBase.cssClasses.panel.content;
69359
69889
  content = this.renderContent(style, rows, className);
@@ -69405,6 +69935,9 @@ var SurveyPanel = /** @class */ (function (_super) {
69405
69935
  return null;
69406
69936
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_action_bar_action_bar__WEBPACK_IMPORTED_MODULE_6__["SurveyActionBar"], { model: footerToolbar });
69407
69937
  };
69938
+ SurveyPanel.prototype.getIsVisible = function () {
69939
+ return this.panelBase.getIsContentVisible();
69940
+ };
69408
69941
  return SurveyPanel;
69409
69942
  }(_panel_base__WEBPACK_IMPORTED_MODULE_4__["SurveyPanelBase"]));
69410
69943
 
@@ -70387,8 +70920,7 @@ var SurveyQuestion = /** @class */ (function (_super) {
70387
70920
  return _this;
70388
70921
  }
70389
70922
  SurveyQuestion.renderQuestionBody = function (creator, question) {
70390
- if (!question.isVisible)
70391
- return null;
70923
+ // if (!question.isVisible) return null;
70392
70924
  var customWidget = question.customWidget;
70393
70925
  if (!customWidget) {
70394
70926
  return creator.createQuestionElement(question);
@@ -70454,13 +70986,12 @@ var SurveyQuestion = /** @class */ (function (_super) {
70454
70986
  SurveyQuestion.prototype.canRender = function () {
70455
70987
  return (_super.prototype.canRender.call(this) &&
70456
70988
  !!this.question &&
70457
- !!this.creator &&
70458
- this.question.isVisible);
70989
+ !!this.creator);
70459
70990
  };
70460
70991
  SurveyQuestion.prototype.renderQuestionContent = function () {
70461
70992
  var question = this.question;
70462
70993
  var contentStyle = {
70463
- display: !this.question.isCollapsed ? "" : "none",
70994
+ display: this.question.renderedIsExpanded ? "" : "none",
70464
70995
  };
70465
70996
  var cssClasses = question.cssClasses;
70466
70997
  var questionRender = this.renderQuestion();
@@ -74327,7 +74858,7 @@ var SurveyRow = /** @class */ (function (_super) {
74327
74858
  configurable: true
74328
74859
  });
74329
74860
  SurveyRow.prototype.canRender = function () {
74330
- return !!this.row && !!this.survey && !!this.creator && this.row.visible;
74861
+ return !!this.row && !!this.survey && !!this.creator;
74331
74862
  };
74332
74863
  SurveyRow.prototype.renderElementContent = function () {
74333
74864
  var _this = this;
@@ -74348,6 +74879,9 @@ var SurveyRow = /** @class */ (function (_super) {
74348
74879
  var _this = this;
74349
74880
  _super.prototype.componentDidMount.call(this);
74350
74881
  var el = this.rootRef.current;
74882
+ if (this.rootRef.current) {
74883
+ this.row.setRootElement(this.rootRef.current);
74884
+ }
74351
74885
  if (!!el && !this.row.isNeedRender) {
74352
74886
  var rowContainerDiv = el;
74353
74887
  setTimeout(function () {
@@ -74360,6 +74894,8 @@ var SurveyRow = /** @class */ (function (_super) {
74360
74894
  return false;
74361
74895
  if (nextProps.row !== this.row) {
74362
74896
  nextProps.row.isNeedRender = this.row.isNeedRender;
74897
+ nextProps.row.setRootElement(this.rootRef.current);
74898
+ this.row.setRootElement(undefined);
74363
74899
  this.stopLazyRendering();
74364
74900
  }
74365
74901
  this.recalculateCss();
@@ -74371,6 +74907,7 @@ var SurveyRow = /** @class */ (function (_super) {
74371
74907
  };
74372
74908
  SurveyRow.prototype.componentWillUnmount = function () {
74373
74909
  _super.prototype.componentWillUnmount.call(this);
74910
+ this.row.setRootElement(undefined);
74374
74911
  this.stopLazyRendering();
74375
74912
  };
74376
74913
  SurveyRow.prototype.createElement = function (element, elementIndex) {
@@ -76102,7 +76639,9 @@ __webpack_require__.r(__webpack_exports__);
76102
76639
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
76103
76640
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
76104
76641
  /* 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");
76642
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
76643
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
76644
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
76106
76645
  var __extends = (undefined && undefined.__extends) || (function () {
76107
76646
  var extendStatics = function (d, b) {
76108
76647
  extendStatics = Object.setPrototypeOf ||
@@ -76132,6 +76671,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
76132
76671
 
76133
76672
 
76134
76673
 
76674
+
76675
+
76135
76676
  /**
76136
76677
  * A base class for the [`SurveyElement`](https://surveyjs.io/form-library/documentation/surveyelement) and [`SurveyModel`](https://surveyjs.io/form-library/documentation/surveymodel) classes.
76137
76678
  */
@@ -76316,6 +76857,20 @@ var SurveyElement = /** @class */ (function (_super) {
76316
76857
  _this.isEditableTemplateElement = false;
76317
76858
  _this.isInteractiveDesignElement = true;
76318
76859
  _this.isSingleInRow = true;
76860
+ _this._renderedIsExpanded = true;
76861
+ _this._isAnimatingCollapseExpand = false;
76862
+ _this.animationCollapsed = new _utils_animation__WEBPACK_IMPORTED_MODULE_7__["AnimationBoolean"](_this.getExpandCollapseAnimationOptions(), function (val) {
76863
+ _this._renderedIsExpanded = val;
76864
+ if (_this.animationAllowed) {
76865
+ if (val) {
76866
+ _this.isAnimatingCollapseExpand = true;
76867
+ }
76868
+ else {
76869
+ _this.updateElementCss(false);
76870
+ }
76871
+ }
76872
+ }, function () { return _this.renderedIsExpanded; });
76873
+ _this.animationAllowedValue = true;
76319
76874
  _this.name = name;
76320
76875
  _this.createNewArray("errors");
76321
76876
  _this.createNewArray("titleActions");
@@ -76361,11 +76916,11 @@ var SurveyElement = /** @class */ (function (_super) {
76361
76916
  elLeft = el.getBoundingClientRect().left;
76362
76917
  needScroll = elLeft < 0;
76363
76918
  }
76364
- if (!needScroll && _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].isAvailable()) {
76365
- var height = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerHeight();
76919
+ if (!needScroll && _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].isAvailable()) {
76920
+ var height = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getInnerHeight();
76366
76921
  needScroll = height > 0 && height < elTop;
76367
76922
  if (!needScroll && checkLeft) {
76368
- var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getInnerWidth();
76923
+ var width = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getInnerWidth();
76369
76924
  needScroll = width > 0 && width < elLeft;
76370
76925
  }
76371
76926
  }
@@ -76393,7 +76948,7 @@ var SurveyElement = /** @class */ (function (_super) {
76393
76948
  return null;
76394
76949
  };
76395
76950
  SurveyElement.FocusElement = function (elementId) {
76396
- if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomDocumentHelper"].isAvailable())
76951
+ if (!elementId || !_global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].isAvailable())
76397
76952
  return false;
76398
76953
  var res = SurveyElement.focusElementCore(elementId);
76399
76954
  if (!res) {
@@ -76476,6 +77031,7 @@ var SurveyElement = /** @class */ (function (_super) {
76476
77031
  },
76477
77032
  set: function (val) {
76478
77033
  this.setPropertyValue("state", val);
77034
+ this.renderedIsExpanded = !(this.state === "collapsed" && !this.isDesignMode);
76479
77035
  },
76480
77036
  enumerable: false,
76481
77037
  configurable: true
@@ -77130,7 +77686,7 @@ var SurveyElement = /** @class */ (function (_super) {
77130
77686
  });
77131
77687
  Object.defineProperty(SurveyElement.prototype, "hasParent", {
77132
77688
  get: function () {
77133
- return (this.parent && !this.parent.isPage && (!this.parent.originalPage || this.survey.isShowingPreview)) || (this.parent === undefined);
77689
+ return (this.parent && !this.parent.isPage && (!this.parent.originalPage)) || (this.parent === undefined);
77134
77690
  },
77135
77691
  enumerable: false,
77136
77692
  configurable: true
@@ -77152,11 +77708,14 @@ var SurveyElement = /** @class */ (function (_super) {
77152
77708
  return this.shouldAddRunnerStyles() && (this.hasParent);
77153
77709
  };
77154
77710
  SurveyElement.prototype.getCssRoot = function (cssClasses) {
77711
+ var isExpanadable = !!this.isCollapsed || !!this.isExpanded;
77155
77712
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
77156
77713
  .append(cssClasses.withFrame, this.getHasFrameV2() && !this.isCompact)
77157
77714
  .append(cssClasses.compact, this.isCompact && this.getHasFrameV2())
77158
77715
  .append(cssClasses.collapsed, !!this.isCollapsed)
77159
- .append(cssClasses.expanded, !!this.isExpanded)
77716
+ .append(cssClasses.expandableAnimating, isExpanadable && this.isAnimatingCollapseExpand)
77717
+ .append(cssClasses.expanded, !!this.isExpanded && this.renderedIsExpanded)
77718
+ .append(cssClasses.expandable, isExpanadable)
77160
77719
  .append(cssClasses.nested, this.getIsNested())
77161
77720
  .toString();
77162
77721
  };
@@ -77308,12 +77867,12 @@ var SurveyElement = /** @class */ (function (_super) {
77308
77867
  });
77309
77868
  SurveyElement.prototype.isContainsSelection = function (el) {
77310
77869
  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"]) {
77870
+ var _document = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].getDocument();
77871
+ if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].isAvailable() && !!_document && _document["selection"]) {
77313
77872
  elementWithSelection = _document["selection"].createRange().parentElement();
77314
77873
  }
77315
77874
  else {
77316
- var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_7__["DomWindowHelper"].getSelection();
77875
+ var selection = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomWindowHelper"].getSelection();
77317
77876
  if (!!selection && selection.rangeCount > 0) {
77318
77877
  var range = selection.getRangeAt(0);
77319
77878
  if (range.startOffset !== range.endOffset) {
@@ -77378,6 +77937,84 @@ var SurveyElement = /** @class */ (function (_super) {
77378
77937
  });
77379
77938
  }
77380
77939
  };
77940
+ SurveyElement.prototype.setWrapperElement = function (element) {
77941
+ this.wrapperElement = element;
77942
+ };
77943
+ SurveyElement.prototype.getWrapperElement = function () {
77944
+ return this.wrapperElement;
77945
+ };
77946
+ Object.defineProperty(SurveyElement.prototype, "isAnimatingCollapseExpand", {
77947
+ get: function () {
77948
+ return this._isAnimatingCollapseExpand || this._renderedIsExpanded != this.isExpanded;
77949
+ },
77950
+ set: function (val) {
77951
+ if (val !== this._isAnimatingCollapseExpand) {
77952
+ this._isAnimatingCollapseExpand = val;
77953
+ this.updateElementCss(false);
77954
+ }
77955
+ },
77956
+ enumerable: false,
77957
+ configurable: true
77958
+ });
77959
+ SurveyElement.prototype.getExpandCollapseAnimationOptions = function () {
77960
+ var _this = this;
77961
+ var beforeRunAnimation = function (el) {
77962
+ _this.isAnimatingCollapseExpand = true;
77963
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
77964
+ };
77965
+ var afterRunAnimation = function (el) {
77966
+ _this.isAnimatingCollapseExpand = false;
77967
+ };
77968
+ return {
77969
+ getEnterOptions: function () {
77970
+ var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
77971
+ return {
77972
+ cssClass: cssClasses.contentFadeIn,
77973
+ onBeforeRunAnimation: beforeRunAnimation,
77974
+ onAfterRunAnimation: afterRunAnimation,
77975
+ };
77976
+ },
77977
+ getLeaveOptions: function () {
77978
+ var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
77979
+ return { cssClass: cssClasses.contentFadeOut,
77980
+ onBeforeRunAnimation: beforeRunAnimation,
77981
+ onAfterRunAnimation: afterRunAnimation
77982
+ };
77983
+ },
77984
+ getAnimatedElement: function () {
77985
+ var _a;
77986
+ var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
77987
+ if (cssClasses.content) {
77988
+ var selector = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["classesToSelector"])(cssClasses.content);
77989
+ if (selector) {
77990
+ return (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(selector);
77991
+ }
77992
+ }
77993
+ return undefined;
77994
+ },
77995
+ isAnimationEnabled: function () { return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].animationEnabled && _this.animationAllowed && !_this.isDesignMode; }
77996
+ };
77997
+ };
77998
+ Object.defineProperty(SurveyElement.prototype, "renderedIsExpanded", {
77999
+ get: function () {
78000
+ return !!this._renderedIsExpanded;
78001
+ },
78002
+ set: function (val) {
78003
+ this.animationCollapsed.sync(val);
78004
+ },
78005
+ enumerable: false,
78006
+ configurable: true
78007
+ });
78008
+ Object.defineProperty(SurveyElement.prototype, "animationAllowed", {
78009
+ get: function () {
78010
+ return !this.isLoadingFromJson && !this.isDisposed && !!this.survey && this.animationAllowedValue;
78011
+ },
78012
+ set: function (val) {
78013
+ this.animationAllowedValue = val;
78014
+ },
78015
+ enumerable: false,
78016
+ configurable: true
78017
+ });
77381
78018
  SurveyElement.prototype.dispose = function () {
77382
78019
  _super.prototype.dispose.call(this);
77383
78020
  if (this.titleToolbarValue) {
@@ -77400,6 +78037,9 @@ var SurveyElement = /** @class */ (function (_super) {
77400
78037
  __decorate([
77401
78038
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
77402
78039
  ], SurveyElement.prototype, "allowRootStyle", void 0);
78040
+ __decorate([
78041
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
78042
+ ], SurveyElement.prototype, "_renderedIsExpanded", void 0);
77403
78043
  return SurveyElement;
77404
78044
  }(SurveyElementCore));
77405
78045
 
@@ -85636,7 +86276,7 @@ var SurveyModel = /** @class */ (function (_super) {
85636
86276
  }
85637
86277
  }
85638
86278
  else if (isStrCiEqual(layoutElement.id, "advanced-header")) {
85639
- if (this.state === "running" && layoutElement.container === container) {
86279
+ if ((this.state === "running" || this.state === "starting") && layoutElement.container === container) {
85640
86280
  containerLayoutElements.push(layoutElement);
85641
86281
  }
85642
86282
  }
@@ -87771,6 +88411,290 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("runexpressiontr
87771
88411
  }, "surveytrigger");
87772
88412
 
87773
88413
 
88414
+ /***/ }),
88415
+
88416
+ /***/ "./src/utils/animation.ts":
88417
+ /*!********************************!*\
88418
+ !*** ./src/utils/animation.ts ***!
88419
+ \********************************/
88420
+ /*! exports provided: AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup */
88421
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
88422
+
88423
+ "use strict";
88424
+ __webpack_require__.r(__webpack_exports__);
88425
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return AnimationUtils; });
88426
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return AnimationPropertyUtils; });
88427
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return AnimationGroupUtils; });
88428
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return AnimationBoolean; });
88429
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return AnimationGroup; });
88430
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
88431
+ /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
88432
+ var __extends = (undefined && undefined.__extends) || (function () {
88433
+ var extendStatics = function (d, b) {
88434
+ extendStatics = Object.setPrototypeOf ||
88435
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
88436
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
88437
+ return extendStatics(d, b);
88438
+ };
88439
+ return function (d, b) {
88440
+ if (typeof b !== "function" && b !== null)
88441
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
88442
+ extendStatics(d, b);
88443
+ function __() { this.constructor = d; }
88444
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
88445
+ };
88446
+ })();
88447
+
88448
+
88449
+ var AnimationUtils = /** @class */ (function () {
88450
+ function AnimationUtils() {
88451
+ this.cancelQueue = [];
88452
+ }
88453
+ AnimationUtils.prototype.getMsFromRule = function (value) {
88454
+ if (value === "auto")
88455
+ return 0;
88456
+ return Number(value.slice(0, -1).replace(",", ".")) * 1000;
88457
+ };
88458
+ AnimationUtils.prototype.getAnimationsCount = function (element) {
88459
+ var animationName = "";
88460
+ if (getComputedStyle) {
88461
+ animationName = getComputedStyle(element).animationName;
88462
+ }
88463
+ return (animationName && animationName != "none" ? animationName.split(", ").length : 0);
88464
+ };
88465
+ AnimationUtils.prototype.getAnimationDuration = function (element) {
88466
+ var style = getComputedStyle(element);
88467
+ var delays = style["animationDelay"].split(", ");
88468
+ var durations = style["animationDuration"].split(", ");
88469
+ var duration = 0;
88470
+ for (var i = 0; i < Math.max(durations.length, delays.length); i++) {
88471
+ duration = Math.max(duration, this.getMsFromRule(durations[i % durations.length]) + this.getMsFromRule(delays[i % delays.length]));
88472
+ }
88473
+ return duration;
88474
+ };
88475
+ AnimationUtils.prototype.onAnimationEnd = function (element, callback, options) {
88476
+ var _this = this;
88477
+ var cancelTimeout;
88478
+ var animationsCount = this.getAnimationsCount(element);
88479
+ var onEndCallback = function (isCancel) {
88480
+ if (isCancel === void 0) { isCancel = true; }
88481
+ options.onAfterRunAnimation && options.onAfterRunAnimation(element);
88482
+ callback(isCancel);
88483
+ clearTimeout(cancelTimeout);
88484
+ _this.cancelQueue.splice(_this.cancelQueue.indexOf(onEndCallback), 1);
88485
+ element.removeEventListener("animationend", onAnimationEndCallback);
88486
+ };
88487
+ var onAnimationEndCallback = function (event) {
88488
+ if (event.target == event.currentTarget && --animationsCount <= 0) {
88489
+ onEndCallback(false);
88490
+ }
88491
+ };
88492
+ if (animationsCount > 0) {
88493
+ element.addEventListener("animationend", onAnimationEndCallback);
88494
+ this.cancelQueue.push(onEndCallback);
88495
+ cancelTimeout = setTimeout(function () {
88496
+ onEndCallback(false);
88497
+ }, this.getAnimationDuration(element) + 10);
88498
+ }
88499
+ else {
88500
+ callback(true);
88501
+ }
88502
+ };
88503
+ AnimationUtils.prototype.beforeAnimationRun = function (element, options) {
88504
+ if (element) {
88505
+ options.onBeforeRunAnimation && options.onBeforeRunAnimation(element);
88506
+ }
88507
+ };
88508
+ AnimationUtils.prototype.runLeaveAnimation = function (element, options, callback) {
88509
+ if (element && options.cssClass) {
88510
+ element.classList.add(options.cssClass);
88511
+ var onAnimationEndCallback = function (isCancel) {
88512
+ callback();
88513
+ if (isCancel) {
88514
+ element.classList.remove(options.cssClass);
88515
+ }
88516
+ else {
88517
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
88518
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
88519
+ element.classList.remove(options.cssClass);
88520
+ });
88521
+ });
88522
+ }
88523
+ };
88524
+ this.onAnimationEnd(element, onAnimationEndCallback, options);
88525
+ }
88526
+ else {
88527
+ callback();
88528
+ }
88529
+ };
88530
+ AnimationUtils.prototype.runEnterAnimation = function (element, options) {
88531
+ if (element && options.cssClass) {
88532
+ element.classList.add(options.cssClass);
88533
+ this.onAnimationEnd(element, function () {
88534
+ element.classList.remove(options.cssClass);
88535
+ }, options);
88536
+ }
88537
+ };
88538
+ AnimationUtils.prototype.cancel = function () {
88539
+ var cancelQueue = [].concat(this.cancelQueue);
88540
+ cancelQueue.forEach(function (callback) { return callback(); });
88541
+ this.cancelQueue = [];
88542
+ };
88543
+ return AnimationUtils;
88544
+ }());
88545
+
88546
+ var AnimationPropertyUtils = /** @class */ (function (_super) {
88547
+ __extends(AnimationPropertyUtils, _super);
88548
+ function AnimationPropertyUtils() {
88549
+ return _super !== null && _super.apply(this, arguments) || this;
88550
+ }
88551
+ AnimationPropertyUtils.prototype.onEnter = function (getElement, options) {
88552
+ var _this = this;
88553
+ var callback = function () {
88554
+ var element = getElement();
88555
+ _this.beforeAnimationRun(element, options);
88556
+ _this.runEnterAnimation(element, options);
88557
+ };
88558
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
88559
+ if (getElement()) {
88560
+ callback();
88561
+ }
88562
+ else {
88563
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(callback);
88564
+ }
88565
+ });
88566
+ };
88567
+ AnimationPropertyUtils.prototype.onLeave = function (getElement, callback, options) {
88568
+ var element = getElement();
88569
+ this.beforeAnimationRun(element, options);
88570
+ this.runLeaveAnimation(element, options, callback);
88571
+ };
88572
+ return AnimationPropertyUtils;
88573
+ }(AnimationUtils));
88574
+
88575
+ var AnimationGroupUtils = /** @class */ (function (_super) {
88576
+ __extends(AnimationGroupUtils, _super);
88577
+ function AnimationGroupUtils() {
88578
+ return _super !== null && _super.apply(this, arguments) || this;
88579
+ }
88580
+ AnimationGroupUtils.prototype.onEnter = function (getElement, getOptions, elements) {
88581
+ var _this = this;
88582
+ if (elements.length == 0)
88583
+ return;
88584
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
88585
+ var callback = function () {
88586
+ elements.forEach(function (el) {
88587
+ _this.beforeAnimationRun(getElement(el), getOptions(el));
88588
+ });
88589
+ elements.forEach(function (el) {
88590
+ _this.runEnterAnimation(getElement(el), getOptions(el));
88591
+ });
88592
+ };
88593
+ if (!getElement(elements[0])) {
88594
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(callback);
88595
+ }
88596
+ else {
88597
+ callback();
88598
+ }
88599
+ });
88600
+ };
88601
+ AnimationGroupUtils.prototype.onLeave = function (getElement, callback, getOptions, elements) {
88602
+ var _this = this;
88603
+ elements.forEach(function (el) {
88604
+ _this.beforeAnimationRun(getElement(el), getOptions(el));
88605
+ });
88606
+ var counter = elements.length;
88607
+ var onEndCallback = function () {
88608
+ if (--counter <= 0) {
88609
+ callback();
88610
+ }
88611
+ };
88612
+ elements.forEach(function (el) {
88613
+ _this.runLeaveAnimation(getElement(el), getOptions(el), onEndCallback);
88614
+ });
88615
+ };
88616
+ return AnimationGroupUtils;
88617
+ }(AnimationUtils));
88618
+
88619
+ var AnimationProperty = /** @class */ (function () {
88620
+ function AnimationProperty(animationOptions, update, getCurrentValue) {
88621
+ var _this = this;
88622
+ this.animationOptions = animationOptions;
88623
+ this.update = update;
88624
+ this.getCurrentValue = getCurrentValue;
88625
+ this._debouncedSync = Object(_taskmanager__WEBPACK_IMPORTED_MODULE_1__["debounce"])(function (newValue) {
88626
+ _this.animation.cancel();
88627
+ _this._sync(newValue);
88628
+ });
88629
+ }
88630
+ AnimationProperty.prototype.sync = function (newValue) {
88631
+ if (this.animationOptions.isAnimationEnabled()) {
88632
+ this._debouncedSync.run(newValue);
88633
+ }
88634
+ else {
88635
+ this.update(newValue);
88636
+ }
88637
+ };
88638
+ AnimationProperty.prototype.cancel = function () {
88639
+ this.animation.cancel();
88640
+ this._debouncedSync.cancel();
88641
+ };
88642
+ return AnimationProperty;
88643
+ }());
88644
+ var AnimationBoolean = /** @class */ (function (_super) {
88645
+ __extends(AnimationBoolean, _super);
88646
+ function AnimationBoolean() {
88647
+ var _this = _super !== null && _super.apply(this, arguments) || this;
88648
+ _this.animation = new AnimationPropertyUtils();
88649
+ return _this;
88650
+ }
88651
+ AnimationBoolean.prototype._sync = function (newValue) {
88652
+ var _this = this;
88653
+ if (newValue !== this.getCurrentValue()) {
88654
+ if (newValue) {
88655
+ this.update(newValue);
88656
+ this.animation.onEnter(function () { return _this.animationOptions.getAnimatedElement(); }, this.animationOptions.getEnterOptions());
88657
+ }
88658
+ else {
88659
+ this.animation.onLeave(function () { return _this.animationOptions.getAnimatedElement(); }, function () {
88660
+ _this.update(newValue);
88661
+ }, this.animationOptions.getLeaveOptions());
88662
+ }
88663
+ }
88664
+ else {
88665
+ this.update(newValue);
88666
+ }
88667
+ };
88668
+ return AnimationBoolean;
88669
+ }(AnimationProperty));
88670
+
88671
+ var AnimationGroup = /** @class */ (function (_super) {
88672
+ __extends(AnimationGroup, _super);
88673
+ function AnimationGroup() {
88674
+ var _this = _super !== null && _super.apply(this, arguments) || this;
88675
+ _this.animation = new AnimationGroupUtils();
88676
+ return _this;
88677
+ }
88678
+ AnimationGroup.prototype._sync = function (newValue) {
88679
+ var _this = this;
88680
+ var oldValue = this.getCurrentValue();
88681
+ var itemsToAdd = newValue.filter(function (el) { return oldValue.indexOf(el) < 0; });
88682
+ var deletedItems = oldValue.filter(function (el) { return newValue.indexOf(el) < 0; });
88683
+ this.animation.onEnter(function (el) { return _this.animationOptions.getAnimatedElement(el); }, function (el) { return _this.animationOptions.getEnterOptions(el); }, itemsToAdd);
88684
+ if (itemsToAdd.length == 0 && (deletedItems === null || deletedItems === void 0 ? void 0 : deletedItems.length) > 0) {
88685
+ this.animation.onLeave(function (el) { return _this.animationOptions.getAnimatedElement(el); }, function () {
88686
+ _this.update(newValue);
88687
+ }, function (el) { return _this.animationOptions.getLeaveOptions(el); }, deletedItems);
88688
+ }
88689
+ else {
88690
+ this.update(newValue);
88691
+ }
88692
+ };
88693
+ return AnimationGroup;
88694
+ }(AnimationProperty));
88695
+
88696
+
88697
+
87774
88698
  /***/ }),
87775
88699
 
87776
88700
  /***/ "./src/utils/camera.ts":
@@ -88510,6 +89434,117 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
88510
89434
 
88511
89435
 
88512
89436
 
89437
+ /***/ }),
89438
+
89439
+ /***/ "./src/utils/taskmanager.ts":
89440
+ /*!**********************************!*\
89441
+ !*** ./src/utils/taskmanager.ts ***!
89442
+ \**********************************/
89443
+ /*! exports provided: Task, TaskManger, debounce */
89444
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
89445
+
89446
+ "use strict";
89447
+ __webpack_require__.r(__webpack_exports__);
89448
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Task", function() { return Task; });
89449
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TaskManger", function() { return TaskManger; });
89450
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; });
89451
+ var Task = /** @class */ (function () {
89452
+ function Task(func, isMultiple) {
89453
+ var _this = this;
89454
+ if (isMultiple === void 0) { isMultiple = false; }
89455
+ this.func = func;
89456
+ this.isMultiple = isMultiple;
89457
+ this._isCompleted = false;
89458
+ this.execute = function () {
89459
+ if (!_this._isCompleted) {
89460
+ _this.func();
89461
+ _this._isCompleted = !_this.isMultiple;
89462
+ }
89463
+ };
89464
+ }
89465
+ Task.prototype.discard = function () {
89466
+ this._isCompleted = true;
89467
+ };
89468
+ Object.defineProperty(Task.prototype, "isCompleted", {
89469
+ get: function () {
89470
+ return this._isCompleted;
89471
+ },
89472
+ enumerable: false,
89473
+ configurable: true
89474
+ });
89475
+ return Task;
89476
+ }());
89477
+
89478
+ var TaskManger = /** @class */ (function () {
89479
+ function TaskManger(interval) {
89480
+ if (interval === void 0) { interval = 100; }
89481
+ this.interval = interval;
89482
+ setTimeout(TaskManger.Instance().tick, interval);
89483
+ }
89484
+ // dispose
89485
+ TaskManger.Instance = function () {
89486
+ if (!TaskManger.instance) {
89487
+ TaskManger.instance = new TaskManger();
89488
+ }
89489
+ return TaskManger.instance;
89490
+ };
89491
+ TaskManger.prototype.tick = function () {
89492
+ try {
89493
+ var newTasks = [];
89494
+ for (var i = 0; i < TaskManger.tasks.length; i++) {
89495
+ var task = TaskManger.tasks[i];
89496
+ task.execute();
89497
+ if (!task.isCompleted) {
89498
+ newTasks.push(task);
89499
+ }
89500
+ else {
89501
+ if (typeof task.dispose === "function") {
89502
+ task.dispose();
89503
+ }
89504
+ }
89505
+ }
89506
+ TaskManger.tasks = newTasks;
89507
+ }
89508
+ finally {
89509
+ setTimeout(TaskManger.Instance().tick, this.interval);
89510
+ }
89511
+ };
89512
+ TaskManger.schedule = function (task) {
89513
+ TaskManger.tasks.push(task);
89514
+ };
89515
+ TaskManger.instance = undefined;
89516
+ TaskManger.tasks = [];
89517
+ return TaskManger;
89518
+ }());
89519
+
89520
+ function debounce(func) {
89521
+ var _this = this;
89522
+ var isSheduled = false;
89523
+ var isCanceled = false;
89524
+ var funcArgs;
89525
+ return { run: (function () {
89526
+ var args = [];
89527
+ for (var _i = 0; _i < arguments.length; _i++) {
89528
+ args[_i] = arguments[_i];
89529
+ }
89530
+ isCanceled = false;
89531
+ funcArgs = args;
89532
+ if (!isSheduled) {
89533
+ isSheduled = true;
89534
+ queueMicrotask(function () {
89535
+ if (!isCanceled) {
89536
+ func.apply(_this, funcArgs);
89537
+ }
89538
+ isCanceled = false;
89539
+ isSheduled = false;
89540
+ });
89541
+ }
89542
+ }), cancel: function () {
89543
+ isCanceled = true;
89544
+ } };
89545
+ }
89546
+
89547
+
88513
89548
  /***/ }),
88514
89549
 
88515
89550
  /***/ "./src/utils/utils.ts":