survey-react 1.9.132 → 1.9.134

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.132
2
+ * surveyjs - Survey JavaScript library v1.9.134
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
  */
@@ -1075,6 +1075,7 @@ var Action = /** @class */ (function (_super) {
1075
1075
  return this._component;
1076
1076
  };
1077
1077
  Action.prototype.dispose = function () {
1078
+ this.updateCallback = undefined;
1078
1079
  this.action = undefined;
1079
1080
  _super.prototype.dispose.call(this);
1080
1081
  if (this.popupModel) {
@@ -4791,6 +4792,7 @@ var modernCss = {
4791
4792
  cell: "sv-table__cell",
4792
4793
  headerCell: "sv-table__cell sv-table__cell--header",
4793
4794
  row: "sv-table__row",
4795
+ rowTextCell: "sv-table__cell--row-text",
4794
4796
  rowAdditional: "sv-table__row--additional",
4795
4797
  detailRow: "sv-table__row--detail",
4796
4798
  detailRowText: "sv-table__cell--detail-rowtext",
@@ -5137,6 +5139,7 @@ var defaultStandardCss = {
5137
5139
  headerCell: "sv_matrix_cell_header",
5138
5140
  row: "sv_matrix_row",
5139
5141
  rowAdditional: "sv-matrix__row--additional",
5142
+ rowTextCell: "sv-table__cell--row-text",
5140
5143
  detailRow: "sv_matrix_detail_row",
5141
5144
  detailRowText: "sv_matrix_cell_detail_rowtext",
5142
5145
  detailCell: "sv_matrix_cell_detail",
@@ -5495,6 +5498,7 @@ var defaultV2Css = {
5495
5498
  progressText: "sd-progress__text",
5496
5499
  progressButtonsRoot: "sd-progress-buttons",
5497
5500
  progressButtonsNumbered: "sd-progress-buttons--numbered",
5501
+ progressButtonsFitSurveyWidth: "sd-progress-buttons--fit-survey-width",
5498
5502
  progressButtonsContainerCenter: "sd-progress-buttons__container-center",
5499
5503
  progressButtonsContainer: "sd-progress-buttons__container",
5500
5504
  progressButtonsConnector: "sd-progress-buttons__connector",
@@ -5967,6 +5971,7 @@ var defaultV2Css = {
5967
5971
  chooseFileAsIcon: "sd-file__choose-btn--icon",
5968
5972
  chooseFileIconId: "icon-choosefile",
5969
5973
  disabled: "sd-file__choose-btn--disabled",
5974
+ controlDisabled: "sd-file__choose-file-btn--disabled",
5970
5975
  //todo: remove it in v2
5971
5976
  removeButton: "sd-context-btn--negative",
5972
5977
  removeButtonBottom: "",
@@ -6878,11 +6883,13 @@ var DragDropCore = /** @class */ (function () {
6878
6883
  configurable: true
6879
6884
  });
6880
6885
  DragDropCore.prototype.startDrag = function (event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode) {
6881
- var _a;
6882
6886
  if (preventSaveTargetNode === void 0) { preventSaveTargetNode = false; }
6883
- this.domAdapter.rootContainer = (_a = this.survey) === null || _a === void 0 ? void 0 : _a.rootElement;
6887
+ this.domAdapter.rootContainer = this.getRootElement(this.survey, this.creator);
6884
6888
  this.domAdapter.startDrag(event, draggedElement, parentElement, draggedElementNode, preventSaveTargetNode);
6885
6889
  };
6890
+ DragDropCore.prototype.getRootElement = function (survey, creator) {
6891
+ return creator ? creator.rootElement : survey.rootElement;
6892
+ };
6886
6893
  DragDropCore.prototype.dragInit = function (event, draggedElement, parentElement, draggedElementNode) {
6887
6894
  this.draggedElement = draggedElement;
6888
6895
  this.parentElement = parentElement;
@@ -7682,15 +7689,12 @@ var DragDropRankingSelectToRank = /** @class */ (function (_super) {
7682
7689
  if (dragOverNode.dataset.ranking === "from-container" || dragOverNode.dataset.ranking === "to-container") {
7683
7690
  return dragOverNode;
7684
7691
  }
7685
- if (this.parentElement.rankingChoices.length === 0 ||
7686
- this.parentElement.unRankingChoices.length === 0) {
7687
- var toContainer = dragOverNode.closest("[data-ranking='to-container']");
7688
- var fromContainer = dragOverNode.closest("[data-ranking='from-container']");
7689
- if (!!toContainer)
7690
- return toContainer;
7691
- if (!!fromContainer)
7692
- return fromContainer;
7693
- }
7692
+ var toContainer = dragOverNode.closest("[data-ranking='to-container']");
7693
+ var fromContainer = dragOverNode.closest("[data-ranking='from-container']");
7694
+ if (this.parentElement.unRankingChoices.length === 0 && fromContainer)
7695
+ return fromContainer;
7696
+ if (this.parentElement.rankingChoices.length === 0 && toContainer)
7697
+ return toContainer;
7694
7698
  return _super.prototype.findDropTargetNodeByDragOverNode.call(this, dragOverNode);
7695
7699
  };
7696
7700
  DragDropRankingSelectToRank.prototype.getDropTargetByDataAttributeValue = function (dataAttributeValue) {
@@ -9068,7 +9072,7 @@ __webpack_require__.r(__webpack_exports__);
9068
9072
  /*!*************************************!*\
9069
9073
  !*** ./src/entries/chunks/model.ts ***!
9070
9074
  \*************************************/
9071
- /*! 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, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
9075
+ /*! 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 */
9072
9076
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9073
9077
 
9074
9078
  "use strict";
@@ -9525,32 +9529,47 @@ __webpack_require__.r(__webpack_exports__);
9525
9529
 
9526
9530
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["sanitizeEditableContent"]; });
9527
9531
 
9528
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
9529
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_84__["CssClassBuilder"]; });
9532
+ /* harmony import */ var _mask_mask_base__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../mask/mask_base */ "./src/mask/mask_base.ts");
9533
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskBase", function() { return _mask_mask_base__WEBPACK_IMPORTED_MODULE_84__["InputMaskBase"]; });
9534
+
9535
+ /* harmony import */ var _mask_mask_pattern__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../../mask/mask_pattern */ "./src/mask/mask_pattern.ts");
9536
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskPattern", function() { return _mask_mask_pattern__WEBPACK_IMPORTED_MODULE_85__["InputMaskPattern"]; });
9537
+
9538
+ /* harmony import */ var _mask_mask_numeric__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../../mask/mask_numeric */ "./src/mask/mask_numeric.ts");
9539
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskNumeric", function() { return _mask_mask_numeric__WEBPACK_IMPORTED_MODULE_86__["InputMaskNumeric"]; });
9540
+
9541
+ /* harmony import */ var _mask_mask_datetime__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../../mask/mask_datetime */ "./src/mask/mask_datetime.ts");
9542
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskDateTime", function() { return _mask_mask_datetime__WEBPACK_IMPORTED_MODULE_87__["InputMaskDateTime"]; });
9530
9543
 
9531
- /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../../defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
9532
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_85__["surveyCss"]; });
9544
+ /* harmony import */ var _mask_mask_currency__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../../mask/mask_currency */ "./src/mask/mask_currency.ts");
9545
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskCurrency", function() { return _mask_mask_currency__WEBPACK_IMPORTED_MODULE_88__["InputMaskCurrency"]; });
9533
9546
 
9534
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_85__["defaultV2Css"]; });
9547
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
9548
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_89__["CssClassBuilder"]; });
9535
9549
 
9536
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_85__["defaultV2ThemeName"]; });
9550
+ /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../../defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
9551
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_90__["surveyCss"]; });
9537
9552
 
9538
- /* harmony import */ var _dragdrop_core__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../../dragdrop/core */ "./src/dragdrop/core.ts");
9539
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _dragdrop_core__WEBPACK_IMPORTED_MODULE_86__["DragDropCore"]; });
9553
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2Css", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_90__["defaultV2Css"]; });
9540
9554
 
9541
- /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
9542
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_87__["DragDropChoices"]; });
9555
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultV2ThemeName", function() { return _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_90__["defaultV2ThemeName"]; });
9543
9556
 
9544
- /* harmony import */ var _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../../dragdrop/ranking-select-to-rank */ "./src/dragdrop/ranking-select-to-rank.ts");
9545
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_88__["DragDropRankingSelectToRank"]; });
9557
+ /* harmony import */ var _dragdrop_core__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../../dragdrop/core */ "./src/dragdrop/core.ts");
9558
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropCore", function() { return _dragdrop_core__WEBPACK_IMPORTED_MODULE_91__["DragDropCore"]; });
9559
+
9560
+ /* harmony import */ var _dragdrop_choices__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../../dragdrop/choices */ "./src/dragdrop/choices.ts");
9561
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropChoices", function() { return _dragdrop_choices__WEBPACK_IMPORTED_MODULE_92__["DragDropChoices"]; });
9562
+
9563
+ /* harmony import */ var _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../../dragdrop/ranking-select-to-rank */ "./src/dragdrop/ranking-select-to-rank.ts");
9564
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragDropRankingSelectToRank", function() { return _dragdrop_ranking_select_to_rank__WEBPACK_IMPORTED_MODULE_93__["DragDropRankingSelectToRank"]; });
9546
9565
 
9547
9566
  // styles
9548
9567
  // import "../../main.scss";
9549
9568
  //import "../../modern.scss";
9550
9569
  var Version;
9551
9570
  var ReleaseDate;
9552
- Version = "" + "1.9.132";
9553
- ReleaseDate = "" + "2024-02-27";
9571
+ Version = "" + "1.9.134";
9572
+ ReleaseDate = "" + "2024-03-13";
9554
9573
  function checkLibraryVersion(ver, libraryName) {
9555
9574
  if (Version != ver) {
9556
9575
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9710,6 +9729,11 @@ function checkPrefix(prefix) {
9710
9729
 
9711
9730
 
9712
9731
 
9732
+
9733
+
9734
+
9735
+
9736
+
9713
9737
 
9714
9738
 
9715
9739
  //Uncomment to include the "date" question type.
@@ -9725,7 +9749,7 @@ function checkPrefix(prefix) {
9725
9749
  /*!**************************************!*\
9726
9750
  !*** ./src/entries/core-wo-model.ts ***!
9727
9751
  \**************************************/
9728
- /*! 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, 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 */
9752
+ /*! 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 */
9729
9753
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9730
9754
 
9731
9755
  "use strict";
@@ -10105,6 +10129,16 @@ __webpack_require__.r(__webpack_exports__);
10105
10129
 
10106
10130
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10107
10131
 
10132
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskBase", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskBase"]; });
10133
+
10134
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskPattern", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskPattern"]; });
10135
+
10136
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskNumeric", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskNumeric"]; });
10137
+
10138
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskDateTime", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskDateTime"]; });
10139
+
10140
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskCurrency", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskCurrency"]; });
10141
+
10108
10142
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
10109
10143
 
10110
10144
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["surveyCss"]; });
@@ -10194,7 +10228,7 @@ __webpack_require__.r(__webpack_exports__);
10194
10228
  /*!*****************************!*\
10195
10229
  !*** ./src/entries/core.ts ***!
10196
10230
  \*****************************/
10197
- /*! 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, 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 */
10231
+ /*! 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 */
10198
10232
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10199
10233
 
10200
10234
  "use strict";
@@ -10574,6 +10608,16 @@ __webpack_require__.r(__webpack_exports__);
10574
10608
 
10575
10609
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10576
10610
 
10611
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskBase", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskBase"]; });
10612
+
10613
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskPattern", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskPattern"]; });
10614
+
10615
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskNumeric", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskNumeric"]; });
10616
+
10617
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskDateTime", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskDateTime"]; });
10618
+
10619
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskCurrency", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["InputMaskCurrency"]; });
10620
+
10577
10621
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
10578
10622
 
10579
10623
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["surveyCss"]; });
@@ -11055,7 +11099,7 @@ __webpack_require__.r(__webpack_exports__);
11055
11099
  /*!******************************!*\
11056
11100
  !*** ./src/entries/react.ts ***!
11057
11101
  \******************************/
11058
- /*! 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, 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 */
11102
+ /*! 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 */
11059
11103
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11060
11104
 
11061
11105
  "use strict";
@@ -11435,6 +11479,16 @@ __webpack_require__.r(__webpack_exports__);
11435
11479
 
11436
11480
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
11437
11481
 
11482
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskBase", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["InputMaskBase"]; });
11483
+
11484
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskPattern", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["InputMaskPattern"]; });
11485
+
11486
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskNumeric", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["InputMaskNumeric"]; });
11487
+
11488
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskDateTime", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["InputMaskDateTime"]; });
11489
+
11490
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputMaskCurrency", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["InputMaskCurrency"]; });
11491
+
11438
11492
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
11439
11493
 
11440
11494
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "surveyCss", function() { return _core__WEBPACK_IMPORTED_MODULE_0__["surveyCss"]; });
@@ -16407,9 +16461,11 @@ function age(params) {
16407
16461
  var birthDate = new Date(params[0]);
16408
16462
  var today = new Date();
16409
16463
  var age = today.getFullYear() - birthDate.getFullYear();
16410
- var m = today.getMonth() - birthDate.getMonth();
16411
- if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
16412
- age -= age > 0 ? 1 : 0;
16464
+ if (age > 0) {
16465
+ var m = today.getMonth() - birthDate.getMonth();
16466
+ if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
16467
+ age -= 1;
16468
+ }
16413
16469
  }
16414
16470
  return age;
16415
16471
  }
@@ -29687,6 +29743,1209 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("matrixbase", [
29687
29743
  ], undefined, "question");
29688
29744
 
29689
29745
 
29746
+ /***/ }),
29747
+
29748
+ /***/ "./src/mask/input_element_adapter.ts":
29749
+ /*!*******************************************!*\
29750
+ !*** ./src/mask/input_element_adapter.ts ***!
29751
+ \*******************************************/
29752
+ /*! exports provided: InputElementAdapter */
29753
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
29754
+
29755
+ "use strict";
29756
+ __webpack_require__.r(__webpack_exports__);
29757
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputElementAdapter", function() { return InputElementAdapter; });
29758
+ var InputElementAdapter = /** @class */ (function () {
29759
+ function InputElementAdapter(inputMaskInstance, inputElement, value) {
29760
+ var _this = this;
29761
+ if (value === void 0) { value = ""; }
29762
+ this.inputMaskInstance = inputMaskInstance;
29763
+ this.inputElement = inputElement;
29764
+ this.prevUnmaskedValue = undefined;
29765
+ this.inputMaskInstancePropertyChangedHandler = function (sender, options) {
29766
+ if (options.name !== "saveMaskedValue") {
29767
+ var maskedValue = _this.inputMaskInstance.getMaskedValue(_this.prevUnmaskedValue);
29768
+ _this.inputElement.value = maskedValue;
29769
+ }
29770
+ };
29771
+ this.beforeInputHandler = function (event) {
29772
+ var args = _this.createArgs(event);
29773
+ var result = _this.inputMaskInstance.processInput(args);
29774
+ _this.inputElement.value = result.value;
29775
+ _this.inputElement.setSelectionRange(result.caretPosition, result.caretPosition);
29776
+ if (!result.cancelPreventDefault) {
29777
+ event.preventDefault();
29778
+ }
29779
+ };
29780
+ this.blurInputHandler = function (event) {
29781
+ var unmaskedValue = _this.inputMaskInstance.getUnmaskedValue(event.target.value);
29782
+ _this.prevUnmaskedValue = unmaskedValue;
29783
+ var maskedValue = _this.inputMaskInstance.getMaskedValue(unmaskedValue);
29784
+ _this.inputElement.value = maskedValue;
29785
+ };
29786
+ this.inputElement.value = inputMaskInstance.getMaskedValue(value);
29787
+ this.prevUnmaskedValue = value;
29788
+ inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);
29789
+ this.addInputEventListener();
29790
+ }
29791
+ InputElementAdapter.prototype.createArgs = function (event) {
29792
+ var args = {
29793
+ insertedChars: event.data,
29794
+ selectionStart: event.target.selectionStart,
29795
+ selectionEnd: event.target.selectionEnd,
29796
+ prevValue: event.target.value,
29797
+ inputDirection: "forward"
29798
+ };
29799
+ if (event.inputType === "deleteContentBackward") {
29800
+ args.inputDirection = "backward";
29801
+ if (args.selectionStart === args.selectionEnd) {
29802
+ args.selectionStart = Math.max(args.selectionStart - 1, 0);
29803
+ }
29804
+ }
29805
+ if (event.inputType === "deleteContentForward" && args.selectionStart === args.selectionEnd) {
29806
+ args.selectionEnd += 1;
29807
+ }
29808
+ return args;
29809
+ };
29810
+ InputElementAdapter.prototype.addInputEventListener = function () {
29811
+ if (!!this.inputElement) {
29812
+ this.inputElement.addEventListener("beforeinput", this.beforeInputHandler);
29813
+ this.inputElement.addEventListener("blur", this.blurInputHandler);
29814
+ }
29815
+ };
29816
+ InputElementAdapter.prototype.removeInputEventListener = function () {
29817
+ if (!!this.inputElement) {
29818
+ this.inputElement.removeEventListener("beforeinput", this.beforeInputHandler);
29819
+ this.inputElement.removeEventListener("blur", this.blurInputHandler);
29820
+ }
29821
+ };
29822
+ InputElementAdapter.prototype.dispose = function () {
29823
+ this.removeInputEventListener();
29824
+ this.inputMaskInstance.onPropertyChanged.remove(this.inputMaskInstancePropertyChangedHandler);
29825
+ };
29826
+ return InputElementAdapter;
29827
+ }());
29828
+
29829
+
29830
+
29831
+ /***/ }),
29832
+
29833
+ /***/ "./src/mask/mask_base.ts":
29834
+ /*!*******************************!*\
29835
+ !*** ./src/mask/mask_base.ts ***!
29836
+ \*******************************/
29837
+ /*! exports provided: InputMaskBase */
29838
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
29839
+
29840
+ "use strict";
29841
+ __webpack_require__.r(__webpack_exports__);
29842
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputMaskBase", function() { return InputMaskBase; });
29843
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../base */ "./src/base.ts");
29844
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
29845
+ var __extends = (undefined && undefined.__extends) || (function () {
29846
+ var extendStatics = function (d, b) {
29847
+ extendStatics = Object.setPrototypeOf ||
29848
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29849
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
29850
+ return extendStatics(d, b);
29851
+ };
29852
+ return function (d, b) {
29853
+ if (typeof b !== "function" && b !== null)
29854
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
29855
+ extendStatics(d, b);
29856
+ function __() { this.constructor = d; }
29857
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29858
+ };
29859
+ })();
29860
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29861
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29862
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29863
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29864
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29865
+ };
29866
+
29867
+
29868
+ var InputMaskBase = /** @class */ (function (_super) {
29869
+ __extends(InputMaskBase, _super);
29870
+ function InputMaskBase() {
29871
+ return _super !== null && _super.apply(this, arguments) || this;
29872
+ }
29873
+ InputMaskBase.prototype.getType = function () {
29874
+ return "masksettings";
29875
+ };
29876
+ InputMaskBase.prototype.setData = function (json) {
29877
+ var _this = this;
29878
+ var properties = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].getProperties(this.getType());
29879
+ properties.forEach(function (property) {
29880
+ var currentValue = json[property.name];
29881
+ _this[property.name] = currentValue !== undefined ? currentValue : property.defaultValue;
29882
+ });
29883
+ };
29884
+ InputMaskBase.prototype.getData = function () {
29885
+ var _this = this;
29886
+ var res = {};
29887
+ var properties = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].getProperties(this.getType());
29888
+ properties.forEach(function (property) {
29889
+ var currentValue = _this[property.name];
29890
+ if (!property.isDefaultValue(currentValue)) {
29891
+ res[property.name] = currentValue;
29892
+ }
29893
+ });
29894
+ return res;
29895
+ };
29896
+ // public get maskedInputValue(): string {
29897
+ // return this.input.value;
29898
+ // }
29899
+ // public get unmaskedInputValue(): string {
29900
+ // return this.getUnmaskedValue(this.input.value, true);
29901
+ // }
29902
+ InputMaskBase.prototype.processInput = function (args) {
29903
+ return { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };
29904
+ };
29905
+ InputMaskBase.prototype.getUnmaskedValue = function (src) { return src; };
29906
+ InputMaskBase.prototype.getMaskedValue = function (src) { return src; };
29907
+ __decorate([
29908
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
29909
+ ], InputMaskBase.prototype, "saveMaskedValue", void 0);
29910
+ return InputMaskBase;
29911
+ }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
29912
+
29913
+ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("masksettings", [
29914
+ {
29915
+ name: "saveMaskedValue:boolean",
29916
+ visibleIf: function (obj) {
29917
+ if (!obj)
29918
+ return false;
29919
+ return obj.getType() !== "masksettings";
29920
+ },
29921
+ },
29922
+ ], function () {
29923
+ return new InputMaskBase();
29924
+ });
29925
+
29926
+
29927
+ /***/ }),
29928
+
29929
+ /***/ "./src/mask/mask_currency.ts":
29930
+ /*!***********************************!*\
29931
+ !*** ./src/mask/mask_currency.ts ***!
29932
+ \***********************************/
29933
+ /*! exports provided: InputMaskCurrency */
29934
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
29935
+
29936
+ "use strict";
29937
+ __webpack_require__.r(__webpack_exports__);
29938
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputMaskCurrency", function() { return InputMaskCurrency; });
29939
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
29940
+ /* harmony import */ var _mask_numeric__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mask_numeric */ "./src/mask/mask_numeric.ts");
29941
+ var __extends = (undefined && undefined.__extends) || (function () {
29942
+ var extendStatics = function (d, b) {
29943
+ extendStatics = Object.setPrototypeOf ||
29944
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29945
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
29946
+ return extendStatics(d, b);
29947
+ };
29948
+ return function (d, b) {
29949
+ if (typeof b !== "function" && b !== null)
29950
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
29951
+ extendStatics(d, b);
29952
+ function __() { this.constructor = d; }
29953
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29954
+ };
29955
+ })();
29956
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29957
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29958
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29959
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29960
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29961
+ };
29962
+
29963
+
29964
+ var InputMaskCurrency = /** @class */ (function (_super) {
29965
+ __extends(InputMaskCurrency, _super);
29966
+ function InputMaskCurrency() {
29967
+ return _super !== null && _super.apply(this, arguments) || this;
29968
+ }
29969
+ InputMaskCurrency.prototype.getType = function () {
29970
+ return "currencymask";
29971
+ };
29972
+ InputMaskCurrency.prototype.wrapText = function (str) {
29973
+ var prefixValue = this.prefix || "";
29974
+ var suffixValue = this.suffix || "";
29975
+ var result = str;
29976
+ if (!result)
29977
+ return result;
29978
+ if (result.indexOf(prefixValue) === -1) {
29979
+ result = prefixValue + result;
29980
+ }
29981
+ if (result.indexOf(suffixValue) === -1) {
29982
+ result += suffixValue;
29983
+ }
29984
+ return result;
29985
+ };
29986
+ InputMaskCurrency.prototype.unwrapInputArgs = function (args) {
29987
+ var result = args.prevValue;
29988
+ if (!result)
29989
+ return;
29990
+ if (this.prefix && result.indexOf(this.prefix) !== -1) {
29991
+ result = result.slice(result.indexOf(this.prefix) + this.prefix.length);
29992
+ var preffixPadding = (this.prefix || "").length;
29993
+ args.selectionStart = Math.max((args.selectionStart - preffixPadding), 0);
29994
+ args.selectionEnd -= preffixPadding;
29995
+ }
29996
+ if (this.suffix && result.indexOf(this.suffix) !== -1) {
29997
+ result = result.slice(0, result.indexOf(this.suffix));
29998
+ }
29999
+ args.prevValue = result;
30000
+ };
30001
+ InputMaskCurrency.prototype.processInput = function (args) {
30002
+ this.unwrapInputArgs(args);
30003
+ var result = _super.prototype.processInput.call(this, args);
30004
+ var preffixPadding = (this.prefix || "").length;
30005
+ if (!!result.value) {
30006
+ result.caretPosition += preffixPadding;
30007
+ }
30008
+ result.value = this.wrapText(result.value);
30009
+ return result;
30010
+ };
30011
+ InputMaskCurrency.prototype.getMaskedValue = function (src) {
30012
+ var result = _super.prototype.getMaskedValue.call(this, src);
30013
+ return this.wrapText(result);
30014
+ };
30015
+ __decorate([
30016
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30017
+ ], InputMaskCurrency.prototype, "prefix", void 0);
30018
+ __decorate([
30019
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30020
+ ], InputMaskCurrency.prototype, "suffix", void 0);
30021
+ return InputMaskCurrency;
30022
+ }(_mask_numeric__WEBPACK_IMPORTED_MODULE_1__["InputMaskNumeric"]));
30023
+
30024
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("currencymask", [
30025
+ { name: "prefix" },
30026
+ { name: "suffix" },
30027
+ ], function () {
30028
+ return new InputMaskCurrency();
30029
+ }, "numericmask");
30030
+
30031
+
30032
+ /***/ }),
30033
+
30034
+ /***/ "./src/mask/mask_datetime.ts":
30035
+ /*!***********************************!*\
30036
+ !*** ./src/mask/mask_datetime.ts ***!
30037
+ \***********************************/
30038
+ /*! exports provided: getDateTimeLexems, InputMaskDateTime */
30039
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
30040
+
30041
+ "use strict";
30042
+ __webpack_require__.r(__webpack_exports__);
30043
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDateTimeLexems", function() { return getDateTimeLexems; });
30044
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputMaskDateTime", function() { return InputMaskDateTime; });
30045
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
30046
+ /* harmony import */ var _mask_pattern__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mask_pattern */ "./src/mask/mask_pattern.ts");
30047
+ /* harmony import */ var _mask_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mask_utils */ "./src/mask/mask_utils.ts");
30048
+ var __extends = (undefined && undefined.__extends) || (function () {
30049
+ var extendStatics = function (d, b) {
30050
+ extendStatics = Object.setPrototypeOf ||
30051
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30052
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
30053
+ return extendStatics(d, b);
30054
+ };
30055
+ return function (d, b) {
30056
+ if (typeof b !== "function" && b !== null)
30057
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
30058
+ extendStatics(d, b);
30059
+ function __() { this.constructor = d; }
30060
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30061
+ };
30062
+ })();
30063
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30064
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30065
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30066
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30067
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30068
+ };
30069
+
30070
+
30071
+
30072
+ function getMaxCountLexem(currentLexemType, count) {
30073
+ switch (currentLexemType) {
30074
+ case ("day"):
30075
+ case ("month"): {
30076
+ return 2;
30077
+ }
30078
+ case ("year"): {
30079
+ return count;
30080
+ }
30081
+ default: {
30082
+ return 1;
30083
+ }
30084
+ }
30085
+ }
30086
+ function trimDatePart(lexem, data) {
30087
+ var result = data;
30088
+ if (lexem.count < lexem.maxCount && ((lexem.type === "day" && parseInt(data[0]) === 0) || (lexem.type === "month" && parseInt(data[0]) === 0))) {
30089
+ result = data.slice(1, data.length);
30090
+ }
30091
+ return result;
30092
+ }
30093
+ function getDefaultYearForValidation(minYear, maxYear) {
30094
+ var defaultVal = 2000;
30095
+ if (defaultVal > maxYear) {
30096
+ defaultVal = parseInt(maxYear.toString().slice(0, maxYear.toString().length - 2)) * 100;
30097
+ }
30098
+ if (defaultVal < minYear) {
30099
+ var middle = (maxYear - minYear) / 2 + minYear;
30100
+ defaultVal = parseInt(middle.toString().slice(0, middle.toString().length - 1)) * 10;
30101
+ }
30102
+ if (defaultVal >= minYear && defaultVal <= maxYear) {
30103
+ return defaultVal;
30104
+ }
30105
+ return minYear;
30106
+ }
30107
+ function getDateTimeLexems(pattern) {
30108
+ var result = [];
30109
+ var prevLexemType;
30110
+ var createOrUpdateLexem = function (currentLexemType, currentChar) {
30111
+ if (!!prevLexemType && prevLexemType === currentLexemType) {
30112
+ result[result.length - 1].count++;
30113
+ var maxCount = getMaxCountLexem(currentLexemType, result[result.length - 1].count);
30114
+ result[result.length - 1].maxCount = maxCount;
30115
+ }
30116
+ else {
30117
+ var maxCount = getMaxCountLexem(currentLexemType, 1);
30118
+ // result.push({ type: currentLexemType, value: currentChar, count: 1, data: { value: "", isCompleted: false, isCorrect: false }, maxCount: maxCount });
30119
+ result.push({ type: currentLexemType, value: currentChar, count: 1, maxCount: maxCount });
30120
+ }
30121
+ };
30122
+ for (var index = 0; index < pattern.length; index++) {
30123
+ var currentChar = pattern[index];
30124
+ switch (currentChar) {
30125
+ case "m":
30126
+ createOrUpdateLexem("month", "m");
30127
+ break;
30128
+ case "d":
30129
+ createOrUpdateLexem("day", "d");
30130
+ break;
30131
+ case "y":
30132
+ createOrUpdateLexem("year", "y");
30133
+ break;
30134
+ default:
30135
+ result.push({ type: "separator", value: currentChar, count: 1, maxCount: 1 });
30136
+ break;
30137
+ }
30138
+ prevLexemType = result[result.length - 1].type;
30139
+ }
30140
+ return result;
30141
+ }
30142
+ var InputMaskDateTime = /** @class */ (function (_super) {
30143
+ __extends(InputMaskDateTime, _super);
30144
+ function InputMaskDateTime() {
30145
+ var _this = _super !== null && _super.apply(this, arguments) || this;
30146
+ _this.turnOfTheCentury = 68;
30147
+ _this.lexems = [];
30148
+ _this.inputDateTimeData = [];
30149
+ return _this;
30150
+ }
30151
+ InputMaskDateTime.prototype.getType = function () {
30152
+ return "datetimemask";
30153
+ };
30154
+ InputMaskDateTime.prototype.updateLiterals = function () {
30155
+ this.lexems = getDateTimeLexems(this.pattern || "");
30156
+ };
30157
+ InputMaskDateTime.prototype.leaveOnlyNumbers = function (input) {
30158
+ var result = "";
30159
+ for (var index = 0; index < input.length; index++) {
30160
+ if (input[index].match(_mask_utils__WEBPACK_IMPORTED_MODULE_2__["numberDefinition"])) {
30161
+ result += input[index];
30162
+ }
30163
+ }
30164
+ return result;
30165
+ };
30166
+ InputMaskDateTime.prototype.getMaskedStrFromISO = function (str) {
30167
+ var _this = this;
30168
+ var date = new Date(str);
30169
+ this.initInputDateTimeData();
30170
+ if (!isNaN(date)) {
30171
+ this.lexems.forEach(function (lexem, index) {
30172
+ var inputData = _this.inputDateTimeData[index];
30173
+ inputData.isCompleted = true;
30174
+ switch (lexem.type) {
30175
+ case ("day"): {
30176
+ inputData.value = date.getDate().toString();
30177
+ break;
30178
+ }
30179
+ case ("month"): {
30180
+ inputData.value = (date.getMonth() + 1).toString();
30181
+ break;
30182
+ }
30183
+ case ("year"): {
30184
+ var year = date.getFullYear();
30185
+ if (lexem.count == 2)
30186
+ year = year % 100;
30187
+ inputData.value = year.toString();
30188
+ break;
30189
+ }
30190
+ default: {
30191
+ break;
30192
+ }
30193
+ }
30194
+ });
30195
+ }
30196
+ return this.getFormatedString(true);
30197
+ };
30198
+ InputMaskDateTime.prototype.initInputDateTimeData = function () {
30199
+ var _this = this;
30200
+ this.inputDateTimeData = [];
30201
+ this.lexems.forEach(function (lexem) {
30202
+ _this.inputDateTimeData.push({ lexem: lexem, isCompleted: false, value: undefined });
30203
+ });
30204
+ };
30205
+ InputMaskDateTime.prototype.getISO_8601Format = function (dateTime) {
30206
+ if (dateTime.year === undefined || dateTime.month === undefined || dateTime.day === undefined)
30207
+ return "";
30208
+ var year = this.getPlaceholder(4, dateTime.year.toString(), "0") + dateTime.year;
30209
+ var month = this.getPlaceholder(2, dateTime.month.toString(), "0") + dateTime.month;
30210
+ var day = this.getPlaceholder(2, dateTime.day.toString(), "0") + dateTime.day;
30211
+ return [year, month, day].join("-");
30212
+ };
30213
+ InputMaskDateTime.prototype.isYearValid = function (dateTime) {
30214
+ if (dateTime.min === undefined && dateTime.max === undefined)
30215
+ return false;
30216
+ var data = dateTime.year.toString();
30217
+ var minYearPart = dateTime.min.toISOString().slice(0, data.length);
30218
+ var maxYearPart = dateTime.max.toISOString().slice(0, data.length);
30219
+ return dateTime.year >= parseInt(minYearPart) && dateTime.year <= parseInt(maxYearPart);
30220
+ };
30221
+ InputMaskDateTime.prototype.isDateValid = function (dateTime) {
30222
+ var min = dateTime.min;
30223
+ var max = dateTime.max;
30224
+ var year = dateTime.year !== undefined ? dateTime.year : getDefaultYearForValidation(min.getFullYear(), max.getFullYear());
30225
+ var month = dateTime.month !== undefined ? dateTime.month : 1;
30226
+ var day = dateTime.day !== undefined ? dateTime.day : 1;
30227
+ var date = new Date(this.getISO_8601Format({ year: year, month: month, day: day }));
30228
+ var monthIndex = month - 1;
30229
+ return !isNaN(date) &&
30230
+ date.getDate() === day &&
30231
+ date.getMonth() === monthIndex &&
30232
+ date.getFullYear() === year &&
30233
+ date >= dateTime.min && date <= dateTime.max;
30234
+ };
30235
+ InputMaskDateTime.prototype.getPlaceholder = function (lexemLength, str, char) {
30236
+ var paddingsLength = lexemLength - (str || "").length;
30237
+ var paddings = paddingsLength > 0 ? char.repeat(paddingsLength) : "";
30238
+ return paddings;
30239
+ };
30240
+ InputMaskDateTime.prototype.updateInputDateTimeData = function (newItem, dateTime) {
30241
+ var data = newItem.value;
30242
+ if (!data)
30243
+ return;
30244
+ var propertyName = newItem.lexem.type;
30245
+ dateTime[propertyName] = parseInt(data);
30246
+ if (data.length === newItem.lexem.maxCount) {
30247
+ if (this.isDateValid(dateTime)) {
30248
+ newItem.isCompleted = true;
30249
+ }
30250
+ else {
30251
+ data = data.slice(0, data.length - 1);
30252
+ }
30253
+ }
30254
+ else if (propertyName === "year" && !this.isYearValid(dateTime)) {
30255
+ data = data.slice(0, data.length - 1);
30256
+ }
30257
+ else if ((propertyName === "day" && parseInt(data[0]) > 3) || (propertyName === "month" && parseInt(data[0]) > 1)) {
30258
+ newItem.isCompleted = true;
30259
+ }
30260
+ newItem.value = data;
30261
+ dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;
30262
+ };
30263
+ InputMaskDateTime.prototype.getCorrectDatePartFormat = function (inputData, matchWholeMask) {
30264
+ var lexem = inputData.lexem;
30265
+ var dataStr = inputData.value || "";
30266
+ if (!!dataStr && inputData.isCompleted) {
30267
+ dataStr = parseInt(dataStr).toString();
30268
+ }
30269
+ if (!!dataStr && inputData.isCompleted) {
30270
+ var zeroPaddings = this.getPlaceholder(lexem.count, dataStr, "0");
30271
+ dataStr = zeroPaddings + dataStr;
30272
+ }
30273
+ else {
30274
+ // !!!
30275
+ dataStr = trimDatePart(lexem, dataStr);
30276
+ if (matchWholeMask) {
30277
+ dataStr += this.getPlaceholder(lexem.count, dataStr, lexem.value);
30278
+ }
30279
+ }
30280
+ return dataStr;
30281
+ };
30282
+ InputMaskDateTime.prototype.createIDateTimeComposition = function () {
30283
+ var tempDateTime = {
30284
+ day: undefined,
30285
+ month: undefined,
30286
+ year: undefined,
30287
+ min: new Date(this.min || "0001-01-01"),
30288
+ max: new Date(this.max || "9999-12-31")
30289
+ };
30290
+ return tempDateTime;
30291
+ };
30292
+ InputMaskDateTime.prototype.parseTwoDigitYear = function (data) {
30293
+ var inputData = data.value;
30294
+ if (data.lexem.type !== "year" || data.lexem.count > 2)
30295
+ return inputData;
30296
+ if (!!this.max && this.max.length >= 4) {
30297
+ this.turnOfTheCentury = parseInt(this.max.slice(2, 4));
30298
+ }
30299
+ var year = parseInt(inputData);
30300
+ var result = (year > this.turnOfTheCentury ? "19" : "20") + inputData;
30301
+ return result;
30302
+ };
30303
+ InputMaskDateTime.prototype.getFormatedString = function (matchWholeMask) {
30304
+ var result = "";
30305
+ var prevSeparator = "";
30306
+ var prevIsCompleted = false;
30307
+ for (var index = 0; index < this.inputDateTimeData.length; index++) {
30308
+ var inputData = this.inputDateTimeData[index];
30309
+ switch (inputData.lexem.type) {
30310
+ case "day":
30311
+ case "month":
30312
+ case "year":
30313
+ if (inputData.value === undefined && !matchWholeMask) {
30314
+ result += (prevIsCompleted ? prevSeparator : "");
30315
+ return result;
30316
+ }
30317
+ else {
30318
+ var data = this.getCorrectDatePartFormat(inputData, matchWholeMask);
30319
+ result += (prevSeparator + data);
30320
+ prevIsCompleted = inputData.isCompleted;
30321
+ }
30322
+ break;
30323
+ case "separator":
30324
+ prevSeparator = inputData.lexem.value;
30325
+ break;
30326
+ }
30327
+ }
30328
+ return result;
30329
+ };
30330
+ InputMaskDateTime.prototype.setInputDateTimeData = function (numberParts) {
30331
+ var _this = this;
30332
+ var numberPartsArrayIndex = 0;
30333
+ this.initInputDateTimeData();
30334
+ this.lexems.forEach(function (lexem, index) {
30335
+ if (lexem.type !== "separator" && numberParts.length > 0 && numberPartsArrayIndex < numberParts.length) {
30336
+ var inputData = _this.inputDateTimeData[index];
30337
+ var currentPart = numberParts[numberPartsArrayIndex];
30338
+ var _data = _this.leaveOnlyNumbers(currentPart);
30339
+ inputData.value = _data.slice(0, lexem.maxCount);
30340
+ numberPartsArrayIndex++;
30341
+ }
30342
+ });
30343
+ };
30344
+ InputMaskDateTime.prototype._getMaskedValue = function (src, matchWholeMask) {
30345
+ var _this = this;
30346
+ if (matchWholeMask === void 0) { matchWholeMask = true; }
30347
+ var input = (src === undefined || src === null) ? "" : src.toString();
30348
+ var inputParts = this.getParts(input);
30349
+ this.setInputDateTimeData(inputParts);
30350
+ var tempDateTime = this.createIDateTimeComposition();
30351
+ this.inputDateTimeData.forEach(function (itemData) { return _this.updateInputDateTimeData(itemData, tempDateTime); });
30352
+ var result = this.getFormatedString(matchWholeMask);
30353
+ return result;
30354
+ };
30355
+ InputMaskDateTime.prototype.getPartsOld = function (input) {
30356
+ var inputParts = [];
30357
+ var separatorLexems = this.lexems.filter(function (l) { return l.type === "separator"; });
30358
+ var separatorLexemsIndex = 0;
30359
+ do {
30360
+ if (!separatorLexems[separatorLexemsIndex]) {
30361
+ if (!!input) {
30362
+ inputParts.push(input);
30363
+ input = "";
30364
+ }
30365
+ break;
30366
+ }
30367
+ var separatorCharIndex = input.indexOf(separatorLexems[separatorLexemsIndex].value);
30368
+ if (separatorCharIndex !== -1) {
30369
+ var part = input.slice(0, separatorCharIndex);
30370
+ if (!!part) {
30371
+ inputParts.push(part);
30372
+ }
30373
+ input = input.slice(separatorCharIndex + 1);
30374
+ }
30375
+ else {
30376
+ }
30377
+ separatorLexemsIndex++;
30378
+ } while (!!input);
30379
+ return inputParts;
30380
+ };
30381
+ InputMaskDateTime.prototype.getParts = function (input) {
30382
+ var inputParts = [];
30383
+ var lexemsWithValue = this.lexems.filter(function (l) { return l.type !== "separator"; });
30384
+ var separators = this.lexems.filter(function (l) { return l.type === "separator"; }).map(function (s) { return s.value; });
30385
+ var curPart = "";
30386
+ var foundSeparator = false;
30387
+ var foundPseudoSeparator = false;
30388
+ for (var i = 0; i < input.length; i++) {
30389
+ var inputChar = input[i];
30390
+ if (inputChar.match(_mask_utils__WEBPACK_IMPORTED_MODULE_2__["numberDefinition"]) || inputChar === lexemsWithValue[inputParts.length].value) {
30391
+ foundSeparator = false;
30392
+ foundPseudoSeparator = false;
30393
+ curPart += inputChar;
30394
+ }
30395
+ else {
30396
+ if (separators.indexOf(inputChar) !== -1) {
30397
+ if (!foundPseudoSeparator) {
30398
+ foundSeparator = true;
30399
+ inputParts.push(curPart);
30400
+ curPart = "";
30401
+ }
30402
+ }
30403
+ else {
30404
+ if (!foundSeparator) {
30405
+ foundPseudoSeparator = true;
30406
+ inputParts.push(curPart);
30407
+ curPart = "";
30408
+ }
30409
+ }
30410
+ }
30411
+ if (inputParts.length >= lexemsWithValue.length) {
30412
+ foundSeparator = false;
30413
+ break;
30414
+ }
30415
+ }
30416
+ if (curPart != "" || foundSeparator) {
30417
+ inputParts.push(curPart);
30418
+ }
30419
+ return inputParts;
30420
+ };
30421
+ InputMaskDateTime.prototype.getUnmaskedValue = function (src) {
30422
+ var _this = this;
30423
+ var input = (src === undefined || src === null) ? "" : src.toString();
30424
+ var inputParts = this.getParts(input);
30425
+ this.setInputDateTimeData(inputParts);
30426
+ var tempDateTime = this.createIDateTimeComposition();
30427
+ this.inputDateTimeData.forEach(function (inputData) {
30428
+ var str = inputData.value;
30429
+ if (!str || str.length < inputData.lexem.count)
30430
+ return undefined;
30431
+ tempDateTime[inputData.lexem.type] = parseInt(_this.parseTwoDigitYear(inputData));
30432
+ });
30433
+ return this.getISO_8601Format(tempDateTime);
30434
+ };
30435
+ InputMaskDateTime.prototype.getMaskedValue = function (src) {
30436
+ if (this.saveMaskedValue) {
30437
+ return this._getMaskedValue(src);
30438
+ }
30439
+ else {
30440
+ return this.getMaskedStrFromISO(src);
30441
+ }
30442
+ };
30443
+ InputMaskDateTime.prototype.processInput = function (args) {
30444
+ var result = { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };
30445
+ var leftPart = args.prevValue.slice(0, args.selectionStart);
30446
+ var rightPart = args.prevValue.slice(args.selectionEnd);
30447
+ result.value = this._getMaskedValue(leftPart + (args.insertedChars || "") + rightPart);
30448
+ if (!args.insertedChars && args.inputDirection === "backward") {
30449
+ result.caretPosition = args.selectionStart;
30450
+ }
30451
+ else {
30452
+ result.caretPosition = this._getMaskedValue(leftPart + (args.insertedChars || ""), false).length;
30453
+ }
30454
+ return result;
30455
+ };
30456
+ __decorate([
30457
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30458
+ ], InputMaskDateTime.prototype, "min", void 0);
30459
+ __decorate([
30460
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30461
+ ], InputMaskDateTime.prototype, "max", void 0);
30462
+ return InputMaskDateTime;
30463
+ }(_mask_pattern__WEBPACK_IMPORTED_MODULE_1__["InputMaskPattern"]));
30464
+
30465
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("datetimemask", [
30466
+ {
30467
+ name: "min",
30468
+ type: "datetime",
30469
+ enableIf: function (obj) {
30470
+ return !!obj.pattern;
30471
+ }
30472
+ },
30473
+ {
30474
+ name: "max",
30475
+ type: "datetime",
30476
+ enableIf: function (obj) {
30477
+ return !!obj.pattern;
30478
+ }
30479
+ }
30480
+ ], function () {
30481
+ return new InputMaskDateTime();
30482
+ }, "patternmask");
30483
+
30484
+
30485
+ /***/ }),
30486
+
30487
+ /***/ "./src/mask/mask_numeric.ts":
30488
+ /*!**********************************!*\
30489
+ !*** ./src/mask/mask_numeric.ts ***!
30490
+ \**********************************/
30491
+ /*! exports provided: splitString, InputMaskNumeric */
30492
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
30493
+
30494
+ "use strict";
30495
+ __webpack_require__.r(__webpack_exports__);
30496
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitString", function() { return splitString; });
30497
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputMaskNumeric", function() { return InputMaskNumeric; });
30498
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
30499
+ /* harmony import */ var _mask_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mask_base */ "./src/mask/mask_base.ts");
30500
+ /* harmony import */ var _mask_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mask_utils */ "./src/mask/mask_utils.ts");
30501
+ var __extends = (undefined && undefined.__extends) || (function () {
30502
+ var extendStatics = function (d, b) {
30503
+ extendStatics = Object.setPrototypeOf ||
30504
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30505
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
30506
+ return extendStatics(d, b);
30507
+ };
30508
+ return function (d, b) {
30509
+ if (typeof b !== "function" && b !== null)
30510
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
30511
+ extendStatics(d, b);
30512
+ function __() { this.constructor = d; }
30513
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30514
+ };
30515
+ })();
30516
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30517
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30518
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30519
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30520
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30521
+ };
30522
+
30523
+
30524
+
30525
+ function splitString(str, reverse, n) {
30526
+ if (reverse === void 0) { reverse = true; }
30527
+ if (n === void 0) { n = 3; }
30528
+ var arr = [];
30529
+ if (reverse) {
30530
+ for (var i = str.length - n; i > -n; i -= n) {
30531
+ arr.push(str.substring(i, i + n));
30532
+ }
30533
+ arr = arr.reverse();
30534
+ }
30535
+ else {
30536
+ for (var i = 0; i < str.length; i += n) {
30537
+ arr.push(str.substring(i, i + n));
30538
+ }
30539
+ }
30540
+ return arr;
30541
+ }
30542
+ var InputMaskNumeric = /** @class */ (function (_super) {
30543
+ __extends(InputMaskNumeric, _super);
30544
+ function InputMaskNumeric() {
30545
+ return _super !== null && _super.apply(this, arguments) || this;
30546
+ }
30547
+ InputMaskNumeric.prototype.calccaretPosition = function (leftPart, args, maskedValue) {
30548
+ var leftPartMaskedLength = !!leftPart ? this.displayNumber(this.parseNumber(leftPart), false).length : 0;
30549
+ var validCharIndex = 0;
30550
+ var result = args.selectionStart;
30551
+ // let result = 0;
30552
+ var isDeleteKeyOperation = !args.insertedChars && args.inputDirection === "forward";
30553
+ for (var index = 0; index < maskedValue.length; index++) {
30554
+ var currentChar = maskedValue[index];
30555
+ if (currentChar !== this.thousandsSeparator) {
30556
+ validCharIndex++;
30557
+ }
30558
+ if (validCharIndex === (leftPartMaskedLength + (isDeleteKeyOperation ? 1 : 0))) {
30559
+ if (isDeleteKeyOperation) {
30560
+ result = index;
30561
+ }
30562
+ else {
30563
+ result = index + 1;
30564
+ }
30565
+ break;
30566
+ }
30567
+ // if (validCharIndex === leftPartMaskedLength) {
30568
+ // result = index + 1;
30569
+ // break;
30570
+ // }
30571
+ }
30572
+ return result;
30573
+ };
30574
+ InputMaskNumeric.prototype.displayNumber = function (parsedNumber, insertThousandsSeparator, matchWholeMask) {
30575
+ if (insertThousandsSeparator === void 0) { insertThousandsSeparator = true; }
30576
+ if (matchWholeMask === void 0) { matchWholeMask = false; }
30577
+ var displayIntegralPart = parsedNumber.integralPart;
30578
+ if (insertThousandsSeparator && !!displayIntegralPart) {
30579
+ displayIntegralPart = splitString(displayIntegralPart).join(this.thousandsSeparator);
30580
+ }
30581
+ var displayFractionalPart = parsedNumber.fractionalPart;
30582
+ var minusSign = parsedNumber.isNegative ? "-" : "";
30583
+ if (displayFractionalPart === "") {
30584
+ if (matchWholeMask) {
30585
+ return (!displayIntegralPart || displayIntegralPart === "0") ? displayIntegralPart : minusSign + displayIntegralPart;
30586
+ }
30587
+ else {
30588
+ var displayDecimalSeparator = parsedNumber.hasDecimalSeparator && !matchWholeMask ? this.decimalSeparator : "";
30589
+ var src = displayIntegralPart + displayDecimalSeparator;
30590
+ return src === "0" ? src : minusSign + src;
30591
+ }
30592
+ }
30593
+ else {
30594
+ displayIntegralPart = displayIntegralPart || "0";
30595
+ displayFractionalPart = displayFractionalPart.substring(0, this.precision);
30596
+ return [minusSign + displayIntegralPart, displayFractionalPart].join(this.decimalSeparator);
30597
+ }
30598
+ };
30599
+ InputMaskNumeric.prototype.convertNumber = function (parsedNumber) {
30600
+ var value;
30601
+ var minusSign = parsedNumber.isNegative ? "-" : "";
30602
+ if (!!parsedNumber.fractionalPart) {
30603
+ value = parseFloat(minusSign + (parsedNumber.integralPart || "0") + "." + parsedNumber.fractionalPart.substring(0, this.precision));
30604
+ }
30605
+ else {
30606
+ value = parseInt(minusSign + parsedNumber.integralPart || "0");
30607
+ }
30608
+ return value;
30609
+ };
30610
+ InputMaskNumeric.prototype.validateNumber = function (number) {
30611
+ var min = this.min || Number.MIN_SAFE_INTEGER;
30612
+ var max = this.max || Number.MAX_SAFE_INTEGER;
30613
+ if (this.min !== undefined || this.max !== undefined) {
30614
+ var value = this.convertNumber(number);
30615
+ if (Number.isNaN(value)) {
30616
+ return true;
30617
+ }
30618
+ return value >= min && value <= max;
30619
+ }
30620
+ return true;
30621
+ };
30622
+ InputMaskNumeric.prototype.parseNumber = function (src) {
30623
+ var result = { integralPart: "", fractionalPart: "", hasDecimalSeparator: false, isNegative: false };
30624
+ var input = (src === undefined || src === null) ? "" : src.toString();
30625
+ if (typeof src === "number") {
30626
+ input = src.toString().replace(".", this.decimalSeparator);
30627
+ }
30628
+ var minusCharCount = 0;
30629
+ for (var inputIndex = 0; inputIndex < input.length; inputIndex++) {
30630
+ var currentChar = input[inputIndex];
30631
+ switch (currentChar) {
30632
+ case "-": {
30633
+ if (this.allowNegativeValues) {
30634
+ minusCharCount++;
30635
+ }
30636
+ break;
30637
+ }
30638
+ case this.decimalSeparator: {
30639
+ if (this.precision > 0) {
30640
+ result.hasDecimalSeparator = true;
30641
+ }
30642
+ break;
30643
+ }
30644
+ case this.thousandsSeparator: {
30645
+ break;
30646
+ }
30647
+ default: {
30648
+ if (currentChar.match(_mask_utils__WEBPACK_IMPORTED_MODULE_2__["numberDefinition"])) {
30649
+ if (result.hasDecimalSeparator) {
30650
+ result.fractionalPart += currentChar;
30651
+ }
30652
+ else {
30653
+ result.integralPart += currentChar;
30654
+ }
30655
+ }
30656
+ }
30657
+ }
30658
+ }
30659
+ result.isNegative = minusCharCount % 2 !== 0;
30660
+ if (result.integralPart.length > 1 && result.integralPart[0] === "0") {
30661
+ result.integralPart = result.integralPart.slice(1);
30662
+ }
30663
+ return result;
30664
+ };
30665
+ InputMaskNumeric.prototype.getNumberMaskedValue = function (src, matchWholeMask) {
30666
+ if (matchWholeMask === void 0) { matchWholeMask = false; }
30667
+ var input = (src === undefined || src === null) ? "" : src;
30668
+ var parsedNumber = this.parseNumber(input);
30669
+ var displayText = this.displayNumber(parsedNumber, true, matchWholeMask);
30670
+ return displayText;
30671
+ };
30672
+ InputMaskNumeric.prototype.getNumberUnmaskedValue = function (str) {
30673
+ var parsedNumber = this.parseNumber(str);
30674
+ return this.convertNumber(parsedNumber);
30675
+ };
30676
+ InputMaskNumeric.prototype.getMaskedValue = function (src) {
30677
+ return this.getNumberMaskedValue(src, true);
30678
+ };
30679
+ InputMaskNumeric.prototype.getUnmaskedValue = function (src) {
30680
+ return this.getNumberUnmaskedValue(src);
30681
+ };
30682
+ InputMaskNumeric.prototype.processInput = function (args) {
30683
+ var result = { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };
30684
+ var leftPart = args.prevValue.slice(0, args.selectionStart) + (args.insertedChars || "");
30685
+ var rightPart = args.prevValue.slice(args.selectionEnd);
30686
+ var src = leftPart + rightPart;
30687
+ var parsedNumber = this.parseNumber(src);
30688
+ if (!this.validateNumber(parsedNumber)) {
30689
+ return result;
30690
+ }
30691
+ var maskedValue = this.getNumberMaskedValue(src);
30692
+ var caretPosition = this.calccaretPosition(leftPart, args, maskedValue);
30693
+ result.value = maskedValue;
30694
+ result.caretPosition = caretPosition;
30695
+ return result;
30696
+ };
30697
+ InputMaskNumeric.prototype.getType = function () {
30698
+ return "numericmask";
30699
+ };
30700
+ InputMaskNumeric.prototype.isPropertyEmpty = function (value) {
30701
+ return value === "" || value === undefined || value === null;
30702
+ };
30703
+ __decorate([
30704
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30705
+ ], InputMaskNumeric.prototype, "allowNegativeValues", void 0);
30706
+ __decorate([
30707
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30708
+ ], InputMaskNumeric.prototype, "decimalSeparator", void 0);
30709
+ __decorate([
30710
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30711
+ ], InputMaskNumeric.prototype, "precision", void 0);
30712
+ __decorate([
30713
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30714
+ ], InputMaskNumeric.prototype, "thousandsSeparator", void 0);
30715
+ __decorate([
30716
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30717
+ ], InputMaskNumeric.prototype, "min", void 0);
30718
+ __decorate([
30719
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
30720
+ ], InputMaskNumeric.prototype, "max", void 0);
30721
+ return InputMaskNumeric;
30722
+ }(_mask_base__WEBPACK_IMPORTED_MODULE_1__["InputMaskBase"]));
30723
+
30724
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("numericmask", [
30725
+ { name: "allowNegativeValues:boolean", default: true },
30726
+ { name: "decimalSeparator", default: ".", maxLength: 1 },
30727
+ { name: "thousandsSeparator", default: ",", maxLength: 1 },
30728
+ { name: "precision:number", default: 2, minValue: 0 },
30729
+ { name: "min:number" },
30730
+ { name: "max:number" },
30731
+ ], function () {
30732
+ return new InputMaskNumeric();
30733
+ }, "masksettings");
30734
+
30735
+
30736
+ /***/ }),
30737
+
30738
+ /***/ "./src/mask/mask_pattern.ts":
30739
+ /*!**********************************!*\
30740
+ !*** ./src/mask/mask_pattern.ts ***!
30741
+ \**********************************/
30742
+ /*! exports provided: getLiterals, getMaskedValueByPattern, getUnmaskedValueByPattern, InputMaskPattern */
30743
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
30744
+
30745
+ "use strict";
30746
+ __webpack_require__.r(__webpack_exports__);
30747
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLiterals", function() { return getLiterals; });
30748
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaskedValueByPattern", function() { return getMaskedValueByPattern; });
30749
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUnmaskedValueByPattern", function() { return getUnmaskedValueByPattern; });
30750
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputMaskPattern", function() { return InputMaskPattern; });
30751
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
30752
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../jsonobject */ "./src/jsonobject.ts");
30753
+ /* harmony import */ var _mask_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mask_base */ "./src/mask/mask_base.ts");
30754
+ var __extends = (undefined && undefined.__extends) || (function () {
30755
+ var extendStatics = function (d, b) {
30756
+ extendStatics = Object.setPrototypeOf ||
30757
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30758
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
30759
+ return extendStatics(d, b);
30760
+ };
30761
+ return function (d, b) {
30762
+ if (typeof b !== "function" && b !== null)
30763
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
30764
+ extendStatics(d, b);
30765
+ function __() { this.constructor = d; }
30766
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30767
+ };
30768
+ })();
30769
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30770
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30771
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30772
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30773
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30774
+ };
30775
+
30776
+
30777
+
30778
+ function getLiterals(pattern) {
30779
+ var result = [];
30780
+ var prevCharIsEscaped = false;
30781
+ var definitionsKeys = Object.keys(_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].maskSettings.patternDefinitions);
30782
+ for (var index = 0; index < pattern.length; index++) {
30783
+ var currentChar = pattern[index];
30784
+ if (currentChar === _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].maskSettings.patternEscapeChar) {
30785
+ prevCharIsEscaped = true;
30786
+ }
30787
+ else if (prevCharIsEscaped) {
30788
+ prevCharIsEscaped = false;
30789
+ result.push({ type: "fixed", value: currentChar });
30790
+ }
30791
+ else {
30792
+ result.push({ type: definitionsKeys.indexOf(currentChar) !== -1 ? "regex" : "const", value: currentChar });
30793
+ }
30794
+ }
30795
+ return result;
30796
+ }
30797
+ function getFirstMatch(str, strIndex, literal) {
30798
+ var currentDefinition = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].maskSettings.patternDefinitions[literal.value];
30799
+ while (strIndex < str.length) {
30800
+ if (str[strIndex].match(currentDefinition)) {
30801
+ return strIndex;
30802
+ }
30803
+ strIndex++;
30804
+ }
30805
+ return strIndex;
30806
+ }
30807
+ function getMaskedValueByPattern(src, pattern, matchWholeMask) {
30808
+ var input = (src === undefined || src === null) ? "" : src;
30809
+ var result = "";
30810
+ var strIndex = 0;
30811
+ var literals = (typeof pattern === "string") ? getLiterals(pattern) : pattern;
30812
+ for (var maskIndex = 0; maskIndex < literals.length; maskIndex++) {
30813
+ switch (literals[maskIndex].type) {
30814
+ case "regex":
30815
+ if (strIndex < input.length) {
30816
+ strIndex = getFirstMatch(input, strIndex, literals[maskIndex]);
30817
+ }
30818
+ if (strIndex < input.length) {
30819
+ result += input[strIndex];
30820
+ }
30821
+ else if (matchWholeMask) {
30822
+ result += _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].maskSettings.patternPlaceholderChar;
30823
+ }
30824
+ else {
30825
+ return result;
30826
+ }
30827
+ strIndex++;
30828
+ break;
30829
+ case "const":
30830
+ case "fixed":
30831
+ result += literals[maskIndex].value;
30832
+ if (literals[maskIndex].value === input[strIndex]) {
30833
+ strIndex++;
30834
+ }
30835
+ break;
30836
+ }
30837
+ }
30838
+ return result;
30839
+ }
30840
+ function getUnmaskedValueByPattern(str, pattern, matchWholeMask, skipFixedChar) {
30841
+ if (skipFixedChar === void 0) { skipFixedChar = false; }
30842
+ var result = "";
30843
+ if (!str)
30844
+ return result;
30845
+ var literals = (typeof pattern === "string") ? getLiterals(pattern) : pattern;
30846
+ for (var index = 0; index < literals.length; index++) {
30847
+ if (literals[index].type === "fixed" && !skipFixedChar) {
30848
+ result += literals[index].value;
30849
+ }
30850
+ if (literals[index].type === "regex") {
30851
+ var currentDefinition = _settings__WEBPACK_IMPORTED_MODULE_0__["settings"].maskSettings.patternDefinitions[literals[index].value];
30852
+ if (!!str[index] && str[index].match(currentDefinition)) {
30853
+ result += str[index];
30854
+ }
30855
+ else if (matchWholeMask) {
30856
+ result = "";
30857
+ break;
30858
+ }
30859
+ else {
30860
+ break;
30861
+ }
30862
+ }
30863
+ }
30864
+ return result;
30865
+ }
30866
+ var InputMaskPattern = /** @class */ (function (_super) {
30867
+ __extends(InputMaskPattern, _super);
30868
+ function InputMaskPattern() {
30869
+ var _this = _super !== null && _super.apply(this, arguments) || this;
30870
+ _this.literals = [];
30871
+ return _this;
30872
+ }
30873
+ InputMaskPattern.prototype.updateLiterals = function () {
30874
+ this.literals = getLiterals(this.pattern || "");
30875
+ };
30876
+ InputMaskPattern.prototype.onPropertyValueChanged = function (name, oldValue, newValue) {
30877
+ if (name === "pattern") {
30878
+ this.updateLiterals();
30879
+ }
30880
+ };
30881
+ InputMaskPattern.prototype.getType = function () {
30882
+ return "patternmask";
30883
+ };
30884
+ InputMaskPattern.prototype.fromJSON = function (json, options) {
30885
+ _super.prototype.fromJSON.call(this, json, options);
30886
+ this.updateLiterals();
30887
+ };
30888
+ InputMaskPattern.prototype._getMaskedValue = function (src, matchWholeMask) {
30889
+ if (matchWholeMask === void 0) { matchWholeMask = false; }
30890
+ var input = (src === undefined || src === null) ? "" : src;
30891
+ return getMaskedValueByPattern(input, this.literals, matchWholeMask);
30892
+ };
30893
+ InputMaskPattern.prototype._getUnmaskedValue = function (src, matchWholeMask) {
30894
+ if (matchWholeMask === void 0) { matchWholeMask = false; }
30895
+ var input = (src === undefined || src === null) ? "" : src;
30896
+ return getUnmaskedValueByPattern(input, this.literals, matchWholeMask);
30897
+ };
30898
+ InputMaskPattern.prototype.processInput = function (args) {
30899
+ var result = { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };
30900
+ if (!args.insertedChars && args.selectionStart === args.selectionEnd) {
30901
+ return result;
30902
+ }
30903
+ var leftPart = args.prevValue.slice(0, args.selectionStart) + (args.insertedChars || "");
30904
+ var leftPartUnmasked = getUnmaskedValueByPattern(args.prevValue.slice(0, args.selectionStart), this.literals.slice(0, args.selectionStart), false);
30905
+ var rightPartUnmasked = getUnmaskedValueByPattern(args.prevValue.slice(args.selectionEnd), this.literals.slice(args.selectionEnd), false, true);
30906
+ result.value = this._getMaskedValue(leftPartUnmasked + (args.insertedChars || "") + rightPartUnmasked, true);
30907
+ if (!args.insertedChars && args.inputDirection === "backward") {
30908
+ result.caretPosition = args.selectionStart;
30909
+ }
30910
+ else {
30911
+ result.caretPosition = this._getMaskedValue(leftPart).length;
30912
+ }
30913
+ return result;
30914
+ };
30915
+ InputMaskPattern.prototype.getMaskedValue = function (src) {
30916
+ return this._getMaskedValue(src, true);
30917
+ };
30918
+ InputMaskPattern.prototype.getUnmaskedValue = function (src) {
30919
+ return this._getUnmaskedValue(src, true);
30920
+ };
30921
+ __decorate([
30922
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
30923
+ ], InputMaskPattern.prototype, "pattern", void 0);
30924
+ return InputMaskPattern;
30925
+ }(_mask_base__WEBPACK_IMPORTED_MODULE_2__["InputMaskBase"]));
30926
+
30927
+ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("patternmask", [
30928
+ { name: "pattern" },
30929
+ ], function () {
30930
+ return new InputMaskPattern();
30931
+ }, "masksettings");
30932
+
30933
+
30934
+ /***/ }),
30935
+
30936
+ /***/ "./src/mask/mask_utils.ts":
30937
+ /*!********************************!*\
30938
+ !*** ./src/mask/mask_utils.ts ***!
30939
+ \********************************/
30940
+ /*! exports provided: numberDefinition */
30941
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
30942
+
30943
+ "use strict";
30944
+ __webpack_require__.r(__webpack_exports__);
30945
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numberDefinition", function() { return numberDefinition; });
30946
+ var numberDefinition = /[0-9]/;
30947
+
30948
+
29690
30949
  /***/ }),
29691
30950
 
29692
30951
  /***/ "./src/multiSelectListModel.ts":
@@ -35517,6 +36776,9 @@ var ProgressButtons = /** @class */ (function (_super) {
35517
36776
  if (this.showItemNumbers && this.survey.css.progressButtonsNumbered) {
35518
36777
  result += " " + this.survey.css.progressButtonsNumbered;
35519
36778
  }
36779
+ if (this.isFitToSurveyWidth) {
36780
+ result += " " + this.survey.css.progressButtonsFitSurveyWidth;
36781
+ }
35520
36782
  return result;
35521
36783
  };
35522
36784
  ProgressButtons.prototype.getListElementCss = function (index) {
@@ -35574,11 +36836,32 @@ var ProgressButtons = /** @class */ (function (_super) {
35574
36836
  if (!listContainerElement)
35575
36837
  return;
35576
36838
  var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
35577
- var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - 4;
36839
+ var circleWidth = this.showItemNumbers ? 17 : 7;
36840
+ var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - circleWidth;
35578
36841
  for (var i = 0; i < listContainerElements.length; i++) {
35579
36842
  listContainerElements[i].style.width = connectorWidth + "px";
35580
36843
  }
35581
36844
  };
36845
+ Object.defineProperty(ProgressButtons.prototype, "isFitToSurveyWidth", {
36846
+ get: function () {
36847
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
36848
+ return false;
36849
+ }
36850
+ return this.survey.progressBarInheritWidthFrom === "survey" && this.survey.widthMode == "static";
36851
+ },
36852
+ enumerable: false,
36853
+ configurable: true
36854
+ });
36855
+ Object.defineProperty(ProgressButtons.prototype, "progressWidth", {
36856
+ get: function () {
36857
+ if (this.isFitToSurveyWidth) {
36858
+ return this.survey.width;
36859
+ }
36860
+ return "";
36861
+ },
36862
+ enumerable: false,
36863
+ configurable: true
36864
+ });
35582
36865
  Object.defineProperty(ProgressButtons.prototype, "showItemNumbers", {
35583
36866
  get: function () {
35584
36867
  if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
@@ -40561,7 +41844,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
40561
41844
  vals.push(!onGetValueCallback ? value[i] : onGetValueCallback(i));
40562
41845
  }
40563
41846
  if (_helpers__WEBPACK_IMPORTED_MODULE_8__["Helpers"].isTwoValueEquals(this.value, vals)) {
40564
- this.getMultipleSelectedItems().forEach(function (item) { return strs.push(_this.getItemDisplayValue(item)); });
41847
+ this.getMultipleSelectedItems().forEach(function (item, index) { return strs.push(_this.getItemDisplayValue(item, vals[index])); });
40565
41848
  }
40566
41849
  if (strs.length === 0) {
40567
41850
  for (var i = 0; i < vals.length; i++) {
@@ -40573,9 +41856,15 @@ var QuestionSelectBase = /** @class */ (function (_super) {
40573
41856
  }
40574
41857
  return strs.join(", ");
40575
41858
  };
40576
- QuestionSelectBase.prototype.getItemDisplayValue = function (item) {
40577
- if (item === this.otherItem && this.comment)
40578
- return this.comment;
41859
+ QuestionSelectBase.prototype.getItemDisplayValue = function (item, val) {
41860
+ if (item === this.otherItem) {
41861
+ if (this.hasOther && this.showCommentArea && !!val) {
41862
+ return val;
41863
+ }
41864
+ if (this.comment) {
41865
+ return this.comment;
41866
+ }
41867
+ }
40579
41868
  return item.locText.textOrHtml;
40580
41869
  };
40581
41870
  QuestionSelectBase.prototype.getFilteredChoices = function () {
@@ -40815,7 +42104,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
40815
42104
  newValue = this.setOtherValueIntoValue(newValue);
40816
42105
  }
40817
42106
  else {
40818
- newComment = this.data.getComment(this.getValueName());
42107
+ if (this.data) {
42108
+ newComment = this.data.getComment(this.getValueName());
42109
+ }
40819
42110
  }
40820
42111
  }
40821
42112
  _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);
@@ -45766,6 +47057,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
45766
47057
  id: "sv-file-choose-file",
45767
47058
  iconSize: "auto",
45768
47059
  data: { question: _this },
47060
+ enabledIf: function () { return !_this.isInputReadOnly; },
45769
47061
  component: "sv-file-choose-btn"
45770
47062
  });
45771
47063
  _this.startCameraAction = new _actions_action__WEBPACK_IMPORTED_MODULE_8__["Action"]({
@@ -56144,7 +57436,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextite
56144
57436
  });
56145
57437
  _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletext", [
56146
57438
  { name: "!items:textitems", className: "multipletextitem", isArray: true },
56147
- { name: "itemSize:number", minValue: 0 },
57439
+ { name: "itemSize:number", minValue: 0, visible: false },
56148
57440
  { name: "colCount:number", default: 1, choices: [1, 2, 3, 4, 5] },
56149
57441
  { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false },
56150
57442
  { name: "itemTitleWidth", category: "layout" }
@@ -60206,6 +61498,9 @@ var QuestionRatingModel = /** @class */ (function (_super) {
60206
61498
  else {
60207
61499
  rateValues = this.createRateValues();
60208
61500
  }
61501
+ if (this.autoGenerate) {
61502
+ this.rateMax = rateValues[rateValues.length - 1].value;
61503
+ }
60209
61504
  if (this.rateType == "smileys" && rateValues.length > 10)
60210
61505
  rateValues = rateValues.slice(0, 10);
60211
61506
  this.renderedRateItems = rateValues.map(function (v, i) {
@@ -61827,6 +63122,7 @@ __webpack_require__.r(__webpack_exports__);
61827
63122
  /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./error */ "./src/error.ts");
61828
63123
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
61829
63124
  /* harmony import */ var _question_textbase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./question_textbase */ "./src/question_textbase.ts");
63125
+ /* harmony import */ var _mask_input_element_adapter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./mask/input_element_adapter */ "./src/mask/input_element_adapter.ts");
61830
63126
  var __extends = (undefined && undefined.__extends) || (function () {
61831
63127
  var extendStatics = function (d, b) {
61832
63128
  extendStatics = Object.setPrototypeOf ||
@@ -61842,6 +63138,13 @@ var __extends = (undefined && undefined.__extends) || (function () {
61842
63138
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
61843
63139
  };
61844
63140
  })();
63141
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
63142
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
63143
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
63144
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
63145
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
63146
+ };
63147
+
61845
63148
 
61846
63149
 
61847
63150
 
@@ -61891,7 +63194,8 @@ var QuestionTextModel = /** @class */ (function (_super) {
61891
63194
  _this.onTextKeyDownHandler(event);
61892
63195
  };
61893
63196
  _this.onChange = function (event) {
61894
- if (event.target === _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].environment.root.activeElement) {
63197
+ var elementIsFocused = event.target === _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].environment.root.activeElement;
63198
+ if (elementIsFocused) {
61895
63199
  if (_this.isInputTextUpdate) {
61896
63200
  _this.updateValueOnEvent(event);
61897
63201
  }
@@ -61910,6 +63214,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
61910
63214
  };
61911
63215
  _this.createLocalizableString("minErrorText", _this, true, "minError");
61912
63216
  _this.createLocalizableString("maxErrorText", _this, true, "maxError");
63217
+ _this.setNewMaskSettingsProperty();
61913
63218
  _this.locDataListValue = new _localizablestring__WEBPACK_IMPORTED_MODULE_2__["LocalizableStrings"](_this);
61914
63219
  _this.locDataListValue.onValueChanged = function (oldValue, newValue) {
61915
63220
  _this.propertyValueChanged("dataList", oldValue, newValue);
@@ -61923,6 +63228,57 @@ var QuestionTextModel = /** @class */ (function (_super) {
61923
63228
  });
61924
63229
  return _this;
61925
63230
  }
63231
+ QuestionTextModel.prototype.createMaskAdapter = function () {
63232
+ if (!!this.input && !this.maskTypeIsEmpty) {
63233
+ this.maskInputAdapter = new _mask_input_element_adapter__WEBPACK_IMPORTED_MODULE_8__["InputElementAdapter"](this.maskInstance, this.input, this.value);
63234
+ }
63235
+ };
63236
+ QuestionTextModel.prototype.deleteMaskAdapter = function () {
63237
+ if (this.maskInputAdapter) {
63238
+ this.maskInputAdapter.dispose();
63239
+ this.maskInputAdapter = undefined;
63240
+ }
63241
+ };
63242
+ QuestionTextModel.prototype.updateMaskAdapter = function () {
63243
+ this.deleteMaskAdapter();
63244
+ this.createMaskAdapter();
63245
+ };
63246
+ QuestionTextModel.prototype.onSetMaskType = function (newValue) {
63247
+ this.setNewMaskSettingsProperty();
63248
+ this.updateMaskAdapter();
63249
+ };
63250
+ Object.defineProperty(QuestionTextModel.prototype, "maskTypeIsEmpty", {
63251
+ get: function () {
63252
+ return this.maskType === "none";
63253
+ },
63254
+ enumerable: false,
63255
+ configurable: true
63256
+ });
63257
+ Object.defineProperty(QuestionTextModel.prototype, "maskSettings", {
63258
+ get: function () {
63259
+ return this.getPropertyValue("maskSettings");
63260
+ },
63261
+ set: function (val) {
63262
+ if (!val)
63263
+ return;
63264
+ this.setNewMaskSettingsProperty();
63265
+ this.maskSettings.fromJSON(val.toJSON());
63266
+ this.updateMaskAdapter();
63267
+ },
63268
+ enumerable: false,
63269
+ configurable: true
63270
+ });
63271
+ QuestionTextModel.prototype.setNewMaskSettingsProperty = function () {
63272
+ this.setPropertyValue("maskSettings", this.createMaskSettings());
63273
+ };
63274
+ QuestionTextModel.prototype.createMaskSettings = function () {
63275
+ var maskClassName = (!this.maskType || this.maskType === "none") ? "masksettings" : (this.maskType + "mask");
63276
+ if (!_jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].findClass(maskClassName)) {
63277
+ maskClassName = "masksettings";
63278
+ }
63279
+ var inputMask = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(maskClassName);
63280
+ return inputMask;
63281
+ };
61926
63282
  QuestionTextModel.prototype.isTextValue = function () {
61927
63283
  return ["text", "number", "password"].indexOf(this.inputType) > -1;
61928
63284
  };
@@ -62169,6 +63525,30 @@ var QuestionTextModel = /** @class */ (function (_super) {
62169
63525
  enumerable: false,
62170
63526
  configurable: true
62171
63527
  });
63528
+ Object.defineProperty(QuestionTextModel.prototype, "maskInstance", {
63529
+ get: function () {
63530
+ return this.maskSettings;
63531
+ },
63532
+ enumerable: false,
63533
+ configurable: true
63534
+ });
63535
+ Object.defineProperty(QuestionTextModel.prototype, "inputValue", {
63536
+ get: function () {
63537
+ return !this.maskTypeIsEmpty ? this.maskInstance.getMaskedValue(this.value) : this.value;
63538
+ },
63539
+ set: function (val) {
63540
+ var value = val;
63541
+ if (!this.maskTypeIsEmpty) {
63542
+ value = this.maskInstance.getUnmaskedValue(val);
63543
+ if (!!value && this.maskSettings.saveMaskedValue) {
63544
+ value = this.maskInstance.getMaskedValue(value);
63545
+ }
63546
+ }
63547
+ this.value = value;
63548
+ },
63549
+ enumerable: false,
63550
+ configurable: true
63551
+ });
62172
63552
  QuestionTextModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
62173
63553
  var _this = this;
62174
63554
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
@@ -62367,9 +63747,24 @@ var QuestionTextModel = /** @class */ (function (_super) {
62367
63747
  QuestionTextModel.prototype.updateValueOnEvent = function (event) {
62368
63748
  var newValue = event.target.value;
62369
63749
  if (!this.isTwoValueEquals(this.value, newValue)) {
62370
- this.value = newValue;
63750
+ this.inputValue = newValue;
63751
+ }
63752
+ };
63753
+ QuestionTextModel.prototype.afterRenderQuestionElement = function (el) {
63754
+ if (!!el) {
63755
+ this.input = el instanceof HTMLInputElement ? el : el.querySelector("input");
63756
+ this.createMaskAdapter();
62371
63757
  }
63758
+ _super.prototype.afterRenderQuestionElement.call(this, el);
63759
+ };
63760
+ QuestionTextModel.prototype.beforeDestroyQuestionElement = function (el) {
63761
+ this.deleteMaskAdapter();
62372
63762
  };
63763
+ __decorate([
63764
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
63765
+ onSet: function (newValue, target) { target.onSetMaskType(newValue); }
63766
+ })
63767
+ ], QuestionTextModel.prototype, "maskType", void 0);
62373
63768
  return QuestionTextModel;
62374
63769
  }(_question_textbase__WEBPACK_IMPORTED_MODULE_7__["QuestionTextBase"]));
62375
63770
 
@@ -62533,6 +63928,30 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
62533
63928
  return isMinMaxType(obj);
62534
63929
  },
62535
63930
  },
63931
+ {
63932
+ name: "maskType:masktype",
63933
+ default: "none",
63934
+ visibleIndex: 0,
63935
+ dependsOn: "inputType",
63936
+ visibleIf: function (obj) {
63937
+ return obj.inputType === "text";
63938
+ }
63939
+ },
63940
+ {
63941
+ name: "maskSettings:masksettings",
63942
+ className: "masksettings",
63943
+ visibleIndex: 1,
63944
+ dependsOn: "inputType",
63945
+ visibleIf: function (obj) {
63946
+ return obj.inputType === "text";
63947
+ },
63948
+ onGetValue: function (obj) {
63949
+ return obj.maskSettings.getData();
63950
+ },
63951
+ onSetValue: function (obj, value) {
63952
+ obj.maskSettings.setData(value);
63953
+ },
63954
+ },
62536
63955
  {
62537
63956
  name: "step:number",
62538
63957
  dependsOn: "inputType",
@@ -63624,6 +65043,19 @@ var SurveyActionBar = /** @class */ (function (_super) {
63624
65043
  this.model.resetResponsivityManager();
63625
65044
  }
63626
65045
  };
65046
+ SurveyActionBar.prototype.componentDidUpdate = function (prevProps, prevState) {
65047
+ _super.prototype.componentDidUpdate.call(this, prevProps, prevState);
65048
+ if (prevProps.model == this.props.model) {
65049
+ return;
65050
+ }
65051
+ if (!!this.model.hasActions) {
65052
+ this.model.resetResponsivityManager();
65053
+ var container = this.rootRef.current;
65054
+ if (!!container) {
65055
+ this.model.initResponsivityManager(container, function (callback) { setTimeout(callback); });
65056
+ }
65057
+ }
65058
+ };
63627
65059
  SurveyActionBar.prototype.getStateElement = function () {
63628
65060
  return this.model;
63629
65061
  };
@@ -67763,7 +69195,7 @@ var SurveyProgressButtons = /** @class */ (function (_super) {
67763
69195
  };
67764
69196
  SurveyProgressButtons.prototype.render = function () {
67765
69197
  var _this = this;
67766
- return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.model.getRootCss(this.props.container), role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": "progress" },
69198
+ return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.model.getRootCss(this.props.container), style: { "maxWidth": this.model.progressWidth }, role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": "progress" },
67767
69199
  this.state.canShowHeader ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsHeader },
67768
69200
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsPageTitle, title: this.model.headerText }, this.model.headerText)) : null,
67769
69201
  react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: this.css.progressButtonsContainer },
@@ -72234,7 +73666,7 @@ var SurveyQuestionText = /** @class */ (function (_super) {
72234
73666
  var inputClass = this.question.getControlClass();
72235
73667
  var placeholder = this.question.renderedPlaceholder;
72236
73668
  if (this.question.isReadOnlyRenderDiv()) {
72237
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, this.question.value);
73669
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, this.question.inputValue);
72238
73670
  }
72239
73671
  var counter = !!this.question.getMaxLength() ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_character_counter__WEBPACK_IMPORTED_MODULE_3__["CharacterCounterComponent"], { counter: this.question.characterCounter, remainingCharacterCounter: this.question.cssClasses.remainingCharacterCounter })) : null;
72240
73672
  return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
@@ -72250,6 +73682,12 @@ var SurveyQuestionText = /** @class */ (function (_super) {
72250
73682
  this.renderDataList()) :
72251
73683
  this.renderInput());
72252
73684
  };
73685
+ SurveyQuestionText.prototype.setValueCore = function (newValue) {
73686
+ this.question.inputValue = newValue;
73687
+ };
73688
+ SurveyQuestionText.prototype.getValueCore = function () {
73689
+ return this.question.inputValue;
73690
+ };
72253
73691
  SurveyQuestionText.prototype.renderDataList = function () {
72254
73692
  if (!this.question.dataListId)
72255
73693
  return null;
@@ -73838,7 +75276,16 @@ var settings = {
73838
75276
  "impp",
73839
75277
  ]
73840
75278
  },
73841
- legacyProgressBarView: false
75279
+ legacyProgressBarView: false,
75280
+ maskSettings: {
75281
+ patternPlaceholderChar: "_",
75282
+ patternEscapeChar: "\\",
75283
+ patternDefinitions: {
75284
+ "9": /[0-9]/,
75285
+ "a": /[a-zA-Z]/,
75286
+ "#": /[a-zA-Z0-9]/
75287
+ }
75288
+ }
73842
75289
  };
73843
75290
 
73844
75291
 
@@ -74501,13 +75948,25 @@ var SurveyElement = /** @class */ (function (_super) {
74501
75948
  if (!elementId || typeof root === "undefined")
74502
75949
  return false;
74503
75950
  var el = root.getElementById(elementId);
75951
+ return SurveyElement.ScrollElementToViewCore(el, false, scrollIfVisible);
75952
+ };
75953
+ SurveyElement.ScrollElementToViewCore = function (el, checkLeft, scrollIfVisible) {
74504
75954
  if (!el || !el.scrollIntoView)
74505
75955
  return false;
74506
- var elemTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
74507
- var needScroll = elemTop < 0;
74508
- if (!needScroll && !!window) {
75956
+ var elTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
75957
+ var needScroll = elTop < 0;
75958
+ var elLeft = -1;
75959
+ if (!needScroll && checkLeft) {
75960
+ elLeft = el.getBoundingClientRect().left;
75961
+ needScroll = elLeft < 0;
75962
+ }
75963
+ if (!!window && !needScroll) {
74509
75964
  var height = window.innerHeight;
74510
- needScroll = height > 0 && height < elemTop;
75965
+ needScroll = height > 0 && height < elTop;
75966
+ if (!needScroll && checkLeft) {
75967
+ var width = window.innerWidth;
75968
+ needScroll = width > 0 && width < elLeft;
75969
+ }
74511
75970
  }
74512
75971
  if (needScroll) {
74513
75972
  el.scrollIntoView();
@@ -74550,6 +76009,7 @@ var SurveyElement = /** @class */ (function (_super) {
74550
76009
  var el = root.getElementById(elementId);
74551
76010
  // https://stackoverflow.com/questions/19669786/check-if-element-is-visible-in-dom
74552
76011
  if (el && !el["disabled"] && el.style.display !== "none" && el.offsetParent !== null) {
76012
+ SurveyElement.ScrollElementToViewCore(el, true, false);
74553
76013
  el.focus();
74554
76014
  return true;
74555
76015
  }
@@ -76498,7 +77958,7 @@ var SurveyModel = /** @class */ (function (_super) {
76498
77958
  _this.registerPropertyChangedHandlers(["questionStartIndex", "requiredText", "questionTitlePattern"], function () {
76499
77959
  _this.resetVisibleIndexes();
76500
77960
  });
76501
- _this.registerPropertyChangedHandlers(["isLoading", "isCompleted", "isCompletedBefore", "mode", "isStartedState", "currentPage"], function () { _this.updateState(); });
77961
+ _this.registerPropertyChangedHandlers(["isLoading", "isCompleted", "isCompletedBefore", "mode", "isStartedState", "currentPage", "isShowingPreview"], function () { _this.updateState(); });
76502
77962
  _this.registerPropertyChangedHandlers(["state", "currentPage", "showPreviewBeforeComplete"], function () { _this.onStateAndCurrentPageChanged(); });
76503
77963
  _this.registerPropertyChangedHandlers(["logo", "logoPosition"], function () { _this.updateHasLogo(); });
76504
77964
  _this.registerPropertyChangedHandlers(["backgroundImage"], function () { _this.updateRenderBackgroundImage(); });
@@ -77414,7 +78874,7 @@ var SurveyModel = /** @class */ (function (_super) {
77414
78874
  * @see [`settings.autoAdvanceDelay`](https://surveyjs.io/form-library/documentation/api-reference/settings#autoAdvanceDelay)
77415
78875
  */
77416
78876
  get: function () {
77417
- return this.getPropertyValue("allowCompleteSurveyAutomatic", true);
78877
+ return this.getPropertyValue("allowCompleteSurveyAutomatic");
77418
78878
  },
77419
78879
  set: function (val) {
77420
78880
  this.setPropertyValue("allowCompleteSurveyAutomatic", val);
@@ -78927,6 +80387,9 @@ var SurveyModel = /** @class */ (function (_super) {
78927
80387
  this.onEditingObjPropertyChanged = function (sender, options) {
78928
80388
  if (!_jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].hasOriginalProperty(_this.editingObj, options.name))
78929
80389
  return;
80390
+ if (options.name === "locale") {
80391
+ _this.setDataCore({});
80392
+ }
78930
80393
  _this.updateOnSetValue(options.name, _this.editingObj[options.name], options.oldValue);
78931
80394
  };
78932
80395
  this.editingObj.onPropertyChanged.add(this.onEditingObjPropertyChanged);
@@ -80332,7 +81795,7 @@ var SurveyModel = /** @class */ (function (_super) {
80332
81795
  return;
80333
81796
  if (this.isShowingPreview) {
80334
81797
  this.runningPages = this.pages.slice(0, this.pages.length);
80335
- this.setupPagesForPageModes(true);
81798
+ this.setupPagesForPageModes(true, false);
80336
81799
  }
80337
81800
  else {
80338
81801
  if (this.runningPages) {
@@ -80359,7 +81822,8 @@ var SurveyModel = /** @class */ (function (_super) {
80359
81822
  }
80360
81823
  }
80361
81824
  };
80362
- SurveyModel.prototype.onQuestionsOnPageModeChanged = function (oldValue) {
81825
+ SurveyModel.prototype.onQuestionsOnPageModeChanged = function (oldValue, isFirstLoad) {
81826
+ if (isFirstLoad === void 0) { isFirstLoad = false; }
80363
81827
  if (this.isShowingPreview)
80364
81828
  return;
80365
81829
  if (this.questionsOnPageMode == "standard" || this.isDesignMode) {
@@ -80372,7 +81836,7 @@ var SurveyModel = /** @class */ (function (_super) {
80372
81836
  if (!oldValue || oldValue == "standard") {
80373
81837
  this.originalPages = this.pages.slice(0, this.pages.length);
80374
81838
  }
80375
- this.setupPagesForPageModes(this.isSinglePage);
81839
+ this.setupPagesForPageModes(this.isSinglePage, isFirstLoad);
80376
81840
  }
80377
81841
  this.runConditions();
80378
81842
  this.updateVisibleIndexes();
@@ -80389,9 +81853,9 @@ var SurveyModel = /** @class */ (function (_super) {
80389
81853
  SurveyModel.prototype.getPageStartIndex = function () {
80390
81854
  return this.firstPageIsStarted && this.pages.length > 0 ? 1 : 0;
80391
81855
  };
80392
- SurveyModel.prototype.setupPagesForPageModes = function (isSinglePage) {
81856
+ SurveyModel.prototype.setupPagesForPageModes = function (isSinglePage, isFirstLoad) {
80393
81857
  this.questionHashesClear();
80394
- this.isCreatingPagesForPreview = true;
81858
+ this.isLockingUpdateOnPageModes = !isFirstLoad;
80395
81859
  var startIndex = this.getPageStartIndex();
80396
81860
  _super.prototype.startLoadingFromJson.call(this);
80397
81861
  var newPages = this.createPagesForQuestionOnPageMode(isSinglePage, startIndex);
@@ -80406,7 +81870,7 @@ var SurveyModel = /** @class */ (function (_super) {
80406
81870
  }
80407
81871
  this.doElementsOnLoad();
80408
81872
  this.updateCurrentPage();
80409
- this.isCreatingPagesForPreview = false;
81873
+ this.isLockingUpdateOnPageModes = false;
80410
81874
  };
80411
81875
  SurveyModel.prototype.createPagesForQuestionOnPageMode = function (isSinglePage, startIndex) {
80412
81876
  if (isSinglePage) {
@@ -82278,7 +83742,7 @@ var SurveyModel = /** @class */ (function (_super) {
82278
83742
  SurveyModel.prototype.endLoadingFromJson = function () {
82279
83743
  this.isEndLoadingFromJson = "processing";
82280
83744
  this.onFirstPageIsStartedChanged();
82281
- this.onQuestionsOnPageModeChanged("standard");
83745
+ this.onQuestionsOnPageModeChanged("standard", true);
82282
83746
  _super.prototype.endLoadingFromJson.call(this);
82283
83747
  if (this.hasCookie) {
82284
83748
  this.isCompletedBefore = true;
@@ -82607,7 +84071,7 @@ var SurveyModel = /** @class */ (function (_super) {
82607
84071
  SurveyModel.prototype.setValue = function (name, newQuestionValue, locNotification, allowNotifyValueChanged, questionName) {
82608
84072
  if (locNotification === void 0) { locNotification = false; }
82609
84073
  if (allowNotifyValueChanged === void 0) { allowNotifyValueChanged = true; }
82610
- if (this.isCreatingPagesForPreview)
84074
+ if (this.isLockingUpdateOnPageModes)
82611
84075
  return;
82612
84076
  var newValue = newQuestionValue;
82613
84077
  if (allowNotifyValueChanged) {
@@ -83962,6 +85426,9 @@ var SurveyModel = /** @class */ (function (_super) {
83962
85426
  __decorate([
83963
85427
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
83964
85428
  ], SurveyModel.prototype, "progressBarShowPageNumbers", void 0);
85429
+ __decorate([
85430
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
85431
+ ], SurveyModel.prototype, "progressBarInheritWidthFrom", void 0);
83965
85432
  __decorate([
83966
85433
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
83967
85434
  ], SurveyModel.prototype, "rootCss", void 0);
@@ -84125,6 +85592,13 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
84125
85592
  category: "navigation",
84126
85593
  visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
84127
85594
  },
85595
+ {
85596
+ name: "progressBarInheritWidthFrom",
85597
+ default: "container",
85598
+ choices: ["container", "survey"],
85599
+ category: "navigation",
85600
+ visibleIf: function (obj) { return obj.showProgressBar !== "off" && obj.progressBarType === "pages"; }
85601
+ },
84128
85602
  {
84129
85603
  name: "showTOC:switch",
84130
85604
  default: false
@@ -84147,6 +85621,10 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
84147
85621
  obj.setPropertyValue("goNextPageAutomatic", value);
84148
85622
  }
84149
85623
  },
85624
+ {
85625
+ name: "allowCompleteSurveyAutomatic:boolean", default: true,
85626
+ visibleIf: function (obj) { return obj.goNextPageAutomatic === true; }
85627
+ },
84150
85628
  {
84151
85629
  name: "clearInvisibleValues",
84152
85630
  default: "onComplete",