survey-react 1.9.135 → 1.9.137

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/survey.react.d.ts CHANGED
@@ -650,15 +650,95 @@ declare module "utils/cssClassBuilder" {
650
650
  toString(): string;
651
651
  }
652
652
  }
653
+ declare module "utils/taskmanager" {
654
+ export interface IExecutable {
655
+ id?: string;
656
+ execute: () => void;
657
+ isCompleted: boolean;
658
+ dispose?: () => void;
659
+ }
660
+ export class Task implements IExecutable {
661
+ private func;
662
+ private isMultiple;
663
+ private _isCompleted;
664
+ constructor(func: () => void, isMultiple?: boolean);
665
+ execute: () => void;
666
+ discard(): void;
667
+ get isCompleted(): boolean;
668
+ }
669
+ export class TaskManger {
670
+ private interval;
671
+ private static instance;
672
+ private static tasks;
673
+ private constructor();
674
+ static Instance(): TaskManger;
675
+ private tick;
676
+ static schedule(task: IExecutable): void;
677
+ }
678
+ export function debounce<T extends (...args: any) => void>(func: T): {
679
+ run: T;
680
+ cancel: () => void;
681
+ };
682
+ }
683
+ declare module "utils/animation" {
684
+ export interface AnimationOptions {
685
+ cssClass: string;
686
+ onBeforeRunAnimation?: (element: HTMLElement) => void;
687
+ onAfterRunAnimation?: (element: HTMLElement) => void;
688
+ }
689
+ export interface IAnimationConsumer<T extends Array<any> = []> {
690
+ getLeaveOptions(...args: T): AnimationOptions;
691
+ getEnterOptions(...args: T): AnimationOptions;
692
+ getAnimatedElement(...args: T): HTMLElement;
693
+ isAnimationEnabled(): boolean;
694
+ }
695
+ export class AnimationUtils {
696
+ private getMsFromRule;
697
+ private getAnimationsCount;
698
+ private getAnimationDuration;
699
+ private cancelQueue;
700
+ protected onAnimationEnd(element: HTMLElement, callback: (isCancel?: boolean) => void, options: AnimationOptions): void;
701
+ protected beforeAnimationRun(element: HTMLElement, options: AnimationOptions | AnimationOptions): void;
702
+ protected runLeaveAnimation(element: HTMLElement, options: AnimationOptions, callback: () => void): void;
703
+ protected runEnterAnimation(element: HTMLElement, options: AnimationOptions): void;
704
+ cancel(): void;
705
+ }
706
+ export class AnimationPropertyUtils extends AnimationUtils {
707
+ onEnter(getElement: () => HTMLElement, options: AnimationOptions): void;
708
+ onLeave(getElement: () => HTMLElement, callback: () => void, options: AnimationOptions): void;
709
+ }
710
+ export class AnimationGroupUtils<T> extends AnimationUtils {
711
+ onEnter(getElement: (el: T) => HTMLElement, getOptions: (el: T) => AnimationOptions, elements: Array<T>): void;
712
+ onLeave(getElement: (el: T) => HTMLElement, callback: () => void, getOptions: (el: T) => AnimationOptions, elements: Array<T>): void;
713
+ }
714
+ abstract class AnimationProperty<T, S extends Array<any> = []> {
715
+ protected animationOptions: IAnimationConsumer<S>;
716
+ protected update: (val: T) => void;
717
+ protected getCurrentValue: () => T;
718
+ constructor(animationOptions: IAnimationConsumer<S>, update: (val: T) => void, getCurrentValue: () => T);
719
+ protected animation: AnimationUtils;
720
+ protected abstract _sync(newValue: T): void;
721
+ private _debouncedSync;
722
+ sync(newValue: T): void;
723
+ cancel(): void;
724
+ }
725
+ export class AnimationBoolean extends AnimationProperty<boolean> {
726
+ protected animation: AnimationPropertyUtils;
727
+ protected _sync(newValue: boolean): void;
728
+ }
729
+ export class AnimationGroup<T> extends AnimationProperty<Array<T>, [T]> {
730
+ protected animation: AnimationGroupUtils<T>;
731
+ protected _sync(newValue: Array<T>): void;
732
+ }
733
+ }
653
734
  declare module "popup-view-model" {
654
- import { Base } from "base";
735
+ import { Base, EventBase } from "base";
655
736
  import { PopupModel } from "popup";
656
737
  import { CssClassBuilder } from "utils/cssClassBuilder";
657
738
  import { ActionContainer } from "actions/container";
739
+ import { AnimationOptions, IAnimationConsumer } from "utils/animation";
658
740
  export const FOCUS_INPUT_SELECTOR = "input:not(:disabled):not([readonly]):not([type=hidden]),select:not(:disabled):not([readonly]),textarea:not(:disabled):not([readonly]), button:not(:disabled):not([readonly]), [tabindex]:not([tabindex^=\"-\"])";
659
- export class PopupBaseViewModel extends Base {
660
- private static SubscriptionId;
661
- private subscriptionId;
741
+ export class PopupBaseViewModel extends Base implements IAnimationConsumer {
662
742
  protected popupSelector: string;
663
743
  protected fixedPopupContainer: string;
664
744
  protected containerSelector: string;
@@ -670,8 +750,18 @@ declare module "popup-view-model" {
670
750
  height: string;
671
751
  width: string;
672
752
  minWidth: string;
673
- isVisible: boolean;
753
+ _isVisible: boolean;
674
754
  locale: string;
755
+ private updateIsVisible;
756
+ private visibilityAnimation;
757
+ getLeaveOptions(): AnimationOptions;
758
+ getEnterOptions(): AnimationOptions;
759
+ getAnimatedElement(): HTMLElement;
760
+ isAnimationEnabled(): boolean;
761
+ private getAnimationContainer;
762
+ set isVisible(val: boolean);
763
+ get isVisible(): boolean;
764
+ onVisibilityChanged: EventBase<PopupBaseViewModel, any>;
675
765
  get container(): HTMLElement;
676
766
  private containerElement;
677
767
  private createdContainer;
@@ -684,6 +774,7 @@ declare module "popup-view-model" {
684
774
  protected createFooterActionBar(): void;
685
775
  protected resetDimensionsAndPositionStyleProperties(): void;
686
776
  protected onModelChanging(newModel: PopupModel): void;
777
+ private onModelIsVisibleChangedCallback;
687
778
  private setupModel;
688
779
  private _model;
689
780
  get model(): PopupModel;
@@ -1357,6 +1448,10 @@ declare module "defaultCss/defaultV2Css" {
1357
1448
  edit: string;
1358
1449
  };
1359
1450
  panel: {
1451
+ contentFadeIn: string;
1452
+ contentFadeOut: string;
1453
+ fadeIn: string;
1454
+ fadeOut: string;
1360
1455
  asPage: string;
1361
1456
  number: string;
1362
1457
  title: string;
@@ -1379,6 +1474,8 @@ declare module "defaultCss/defaultV2Css" {
1379
1474
  header: string;
1380
1475
  collapsed: string;
1381
1476
  expanded: string;
1477
+ expandable: string;
1478
+ expandableAnimating: string;
1382
1479
  nested: string;
1383
1480
  invisible: string;
1384
1481
  navigationButton: string;
@@ -1438,6 +1535,9 @@ declare module "defaultCss/defaultV2Css" {
1438
1535
  progressButtonsContainerCenter: string;
1439
1536
  progressButtonsContainer: string;
1440
1537
  progressButtonsConnector: string;
1538
+ progressButtonsButton: string;
1539
+ progressButtonsButtonBackground: string;
1540
+ progressButtonsButtonContent: string;
1441
1541
  progressButtonsHeader: string;
1442
1542
  progressButtonsFooter: string;
1443
1543
  progressButtonsImageButtonLeft: string;
@@ -1463,8 +1563,14 @@ declare module "defaultCss/defaultV2Css" {
1463
1563
  row: string;
1464
1564
  rowMultiple: string;
1465
1565
  rowCompact: string;
1566
+ rowFadeIn: string;
1567
+ rowFadeOut: string;
1466
1568
  pageRow: string;
1467
1569
  question: {
1570
+ contentFadeIn: string;
1571
+ contentFadeOut: string;
1572
+ fadeIn: string;
1573
+ fadeOut: string;
1468
1574
  mainRoot: string;
1469
1575
  flowRoot: string;
1470
1576
  withFrame: string;
@@ -1507,6 +1613,8 @@ declare module "defaultCss/defaultV2Css" {
1507
1613
  hasErrorTop: string;
1508
1614
  hasErrorBottom: string;
1509
1615
  collapsed: string;
1616
+ expandable: string;
1617
+ expandableAnimating: string;
1510
1618
  expanded: string;
1511
1619
  nested: string;
1512
1620
  invisible: string;
@@ -2331,6 +2439,89 @@ declare module "textPreProcessor" {
2331
2439
  private processTextCore;
2332
2440
  }
2333
2441
  }
2442
+ declare module "error" {
2443
+ import { SurveyError } from "survey-error";
2444
+ import { ISurveyErrorOwner } from "base-interfaces";
2445
+ export class AnswerRequiredError extends SurveyError {
2446
+ text: string;
2447
+ constructor(text?: string, errorOwner?: ISurveyErrorOwner);
2448
+ getErrorType(): string;
2449
+ protected getDefaultText(): string;
2450
+ }
2451
+ export class OneAnswerRequiredError extends SurveyError {
2452
+ text: string;
2453
+ constructor(text?: string, errorOwner?: ISurveyErrorOwner);
2454
+ getErrorType(): string;
2455
+ protected getDefaultText(): string;
2456
+ }
2457
+ export class RequreNumericError extends SurveyError {
2458
+ text: string;
2459
+ constructor(text?: string, errorOwner?: ISurveyErrorOwner);
2460
+ getErrorType(): string;
2461
+ protected getDefaultText(): string;
2462
+ }
2463
+ export class ExceedSizeError extends SurveyError {
2464
+ private maxSize;
2465
+ constructor(maxSize: number, errorOwner?: ISurveyErrorOwner);
2466
+ getErrorType(): string;
2467
+ getDefaultText(): string;
2468
+ private getTextSize;
2469
+ }
2470
+ export class WebRequestError extends SurveyError {
2471
+ status: string;
2472
+ response: string;
2473
+ constructor(status: string, response: string, errorOwner?: ISurveyErrorOwner);
2474
+ getErrorType(): string;
2475
+ protected getDefaultText(): string;
2476
+ }
2477
+ export class WebRequestEmptyError extends SurveyError {
2478
+ text: string;
2479
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2480
+ getErrorType(): string;
2481
+ protected getDefaultText(): string;
2482
+ }
2483
+ export class OtherEmptyError extends SurveyError {
2484
+ text: string;
2485
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2486
+ getErrorType(): string;
2487
+ protected getDefaultText(): string;
2488
+ }
2489
+ export class UploadingFileError extends SurveyError {
2490
+ text: string;
2491
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2492
+ getErrorType(): string;
2493
+ protected getDefaultText(): string;
2494
+ }
2495
+ export class RequiredInAllRowsError extends SurveyError {
2496
+ text: string;
2497
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2498
+ getErrorType(): string;
2499
+ protected getDefaultText(): string;
2500
+ }
2501
+ export class EachRowUniqueError extends SurveyError {
2502
+ text: string;
2503
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2504
+ getErrorType(): string;
2505
+ protected getDefaultText(): string;
2506
+ }
2507
+ export class MinRowCountError extends SurveyError {
2508
+ minRowCount: number;
2509
+ constructor(minRowCount: number, errorOwner?: ISurveyErrorOwner);
2510
+ getErrorType(): string;
2511
+ protected getDefaultText(): string;
2512
+ }
2513
+ export class KeyDuplicationError extends SurveyError {
2514
+ text: string;
2515
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2516
+ getErrorType(): string;
2517
+ protected getDefaultText(): string;
2518
+ }
2519
+ export class CustomError extends SurveyError {
2520
+ text: string;
2521
+ constructor(text: string, errorOwner?: ISurveyErrorOwner);
2522
+ getErrorType(): string;
2523
+ }
2524
+ }
2334
2525
  declare module "question_custom" {
2335
2526
  import { Question, IConditionObject } from "question";
2336
2527
  import { JsonObjectProperty } from "jsonobject";
@@ -2340,6 +2531,7 @@ declare module "question_custom" {
2340
2531
  import { PanelModel } from "panel";
2341
2532
  import { HashTable } from "helpers";
2342
2533
  import { ItemValue } from "itemvalue";
2534
+ import { SurveyError } from "survey-error";
2343
2535
  /**
2344
2536
  * An interface used to create custom question types.
2345
2537
  *
@@ -2558,6 +2750,12 @@ declare module "question_custom" {
2558
2750
  * @see questionJSON
2559
2751
  */
2560
2752
  createQuestion?: any;
2753
+ /**
2754
+ * A function that allows you to display different error texts based on conditions.
2755
+ * @param question A custom question. Use the `question.value` property to access the question's value.
2756
+ * @returns An error text.
2757
+ */
2758
+ getErrorText?: (question: Question) => string;
2561
2759
  valueToQuestion?: (val: any) => any;
2562
2760
  valueFromQuestion?: (val: any) => any;
2563
2761
  getValue?: (val: any) => any;
@@ -2577,6 +2775,7 @@ declare module "question_custom" {
2577
2775
  onPropertyChanged(question: Question, propertyName: string, newValue: any): void;
2578
2776
  onValueChanged(question: Question, name: string, newValue: any): void;
2579
2777
  onValueChanging(question: Question, name: string, newValue: any): any;
2778
+ onGetErrorText(question: Question): string;
2580
2779
  onItemValuePropertyChanged(question: Question, item: ItemValue, propertyName: string, name: string, newValue: any): void;
2581
2780
  getDisplayValue(keyAsText: boolean, value: any, question: Question): any;
2582
2781
  get defaultQuestionTitle(): any;
@@ -2629,6 +2828,7 @@ declare module "question_custom" {
2629
2828
  protected onUpdateQuestionCssClasses(element: Question, css: any): void;
2630
2829
  protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
2631
2830
  protected setNewValue(newValue: any): void;
2831
+ protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
2632
2832
  getSurveyData(): ISurveyData;
2633
2833
  getTextProcessor(): ITextProcessor;
2634
2834
  getValue(name: string): any;
@@ -2768,89 +2968,6 @@ declare module "questionfactory" {
2768
2968
  createElement(elementType: string, name: string): IElement;
2769
2969
  }
2770
2970
  }
2771
- declare module "error" {
2772
- import { SurveyError } from "survey-error";
2773
- import { ISurveyErrorOwner } from "base-interfaces";
2774
- export class AnswerRequiredError extends SurveyError {
2775
- text: string;
2776
- constructor(text?: string, errorOwner?: ISurveyErrorOwner);
2777
- getErrorType(): string;
2778
- protected getDefaultText(): string;
2779
- }
2780
- export class OneAnswerRequiredError extends SurveyError {
2781
- text: string;
2782
- constructor(text?: string, errorOwner?: ISurveyErrorOwner);
2783
- getErrorType(): string;
2784
- protected getDefaultText(): string;
2785
- }
2786
- export class RequreNumericError extends SurveyError {
2787
- text: string;
2788
- constructor(text?: string, errorOwner?: ISurveyErrorOwner);
2789
- getErrorType(): string;
2790
- protected getDefaultText(): string;
2791
- }
2792
- export class ExceedSizeError extends SurveyError {
2793
- private maxSize;
2794
- constructor(maxSize: number, errorOwner?: ISurveyErrorOwner);
2795
- getErrorType(): string;
2796
- getDefaultText(): string;
2797
- private getTextSize;
2798
- }
2799
- export class WebRequestError extends SurveyError {
2800
- status: string;
2801
- response: string;
2802
- constructor(status: string, response: string, errorOwner?: ISurveyErrorOwner);
2803
- getErrorType(): string;
2804
- protected getDefaultText(): string;
2805
- }
2806
- export class WebRequestEmptyError extends SurveyError {
2807
- text: string;
2808
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2809
- getErrorType(): string;
2810
- protected getDefaultText(): string;
2811
- }
2812
- export class OtherEmptyError extends SurveyError {
2813
- text: string;
2814
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2815
- getErrorType(): string;
2816
- protected getDefaultText(): string;
2817
- }
2818
- export class UploadingFileError extends SurveyError {
2819
- text: string;
2820
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2821
- getErrorType(): string;
2822
- protected getDefaultText(): string;
2823
- }
2824
- export class RequiredInAllRowsError extends SurveyError {
2825
- text: string;
2826
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2827
- getErrorType(): string;
2828
- protected getDefaultText(): string;
2829
- }
2830
- export class EachRowUniqueError extends SurveyError {
2831
- text: string;
2832
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2833
- getErrorType(): string;
2834
- protected getDefaultText(): string;
2835
- }
2836
- export class MinRowCountError extends SurveyError {
2837
- minRowCount: number;
2838
- constructor(minRowCount: number, errorOwner?: ISurveyErrorOwner);
2839
- getErrorType(): string;
2840
- protected getDefaultText(): string;
2841
- }
2842
- export class KeyDuplicationError extends SurveyError {
2843
- text: string;
2844
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2845
- getErrorType(): string;
2846
- protected getDefaultText(): string;
2847
- }
2848
- export class CustomError extends SurveyError {
2849
- text: string;
2850
- constructor(text: string, errorOwner?: ISurveyErrorOwner);
2851
- getErrorType(): string;
2852
- }
2853
- }
2854
2971
  declare module "drag-drop-helper-v1" {
2855
2972
  import { IElement, ISurveyElement } from "base-interfaces";
2856
2973
  export class DragDropInfo {
@@ -2893,6 +3010,7 @@ declare module "panel" {
2893
3010
  import { IAction } from "actions/action";
2894
3011
  import { ActionContainer } from "actions/container";
2895
3012
  import { DragDropInfo } from "drag-drop-helper-v1";
3013
+ import { AnimationGroup } from "utils/animation";
2896
3014
  export class QuestionRowModel extends Base {
2897
3015
  panel: PanelModelBase;
2898
3016
  private static rowCounter;
@@ -2908,8 +3026,13 @@ declare module "panel" {
2908
3026
  setIsLazyRendering(val: boolean): void;
2909
3027
  isLazyRendering(): boolean;
2910
3028
  get id(): string;
3029
+ protected equalsCore(obj: Base): boolean;
2911
3030
  get elements(): Array<IElement>;
3031
+ private getVisibleElementsAnimationOptions;
3032
+ visibleElementsAnimation: AnimationGroup<IElement>;
3033
+ set visibleElements(val: Array<IElement>);
2912
3034
  get visibleElements(): Array<IElement>;
3035
+ onVisibleChangedCallback: () => void;
2913
3036
  get visible(): boolean;
2914
3037
  set visible(val: boolean);
2915
3038
  get isNeedRender(): boolean;
@@ -2921,11 +3044,12 @@ declare module "panel" {
2921
3044
  private getRenderedCalcWidth;
2922
3045
  private getElementWidth;
2923
3046
  private getRenderedWidthFromWidth;
2924
- private calcVisible;
2925
- private needToUpdateVisibleElements;
2926
3047
  dragTypeOverMe: DragTypeOverMeEnum;
2927
3048
  dispose(): void;
2928
3049
  getRowCss(): string;
3050
+ private rootElement?;
3051
+ setRootElement(element?: HTMLElement): void;
3052
+ getRootElement(): HTMLElement;
2929
3053
  }
2930
3054
  /**
2931
3055
  * A base class for the [PanelModel](https://surveyjs.io/form-library/documentation/panelmodel) and [PageModel](https://surveyjs.io/form-library/documentation/pagemodel) classes.
@@ -2940,6 +3064,13 @@ declare module "panel" {
2940
3064
  removeElementCallback: (element: IElement) => void;
2941
3065
  onGetQuestionTitleLocation: () => string;
2942
3066
  private dragDropPanelHelper;
3067
+ onAddRow(row: QuestionRowModel): void;
3068
+ private getRowsAnimationOptions;
3069
+ private rowsAnimation;
3070
+ get visibleRows(): Array<QuestionRowModel>;
3071
+ set visibleRows(val: Array<QuestionRowModel>);
3072
+ onRemoveRow(row: QuestionRowModel): void;
3073
+ onRowVisibleChanged(): void;
2943
3074
  constructor(name?: string);
2944
3075
  getType(): string;
2945
3076
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
@@ -3211,7 +3342,8 @@ declare module "panel" {
3211
3342
  * @see visible
3212
3343
  */
3213
3344
  get isVisible(): boolean;
3214
- getIsPageVisible(exceptionQuestion: IQuestion): boolean;
3345
+ getIsContentVisible(exceptionQuestion?: IQuestion): boolean;
3346
+ getIsPageVisible(exceptionQuestion?: IQuestion): boolean;
3215
3347
  private lastVisibleIndex;
3216
3348
  setVisibleIndex(index: number): number;
3217
3349
  private updateVisibleIndexes;
@@ -4830,10 +4962,9 @@ declare module "question_matrixdropdowncolumn" {
4830
4962
  get locTitle(): LocalizableString;
4831
4963
  get fullTitle(): string;
4832
4964
  /**
4833
- * Marks the column as required. If a respondent skips any cell in a required column, the matrix displays a validation error.
4965
+ * Marks the column as required. If a respondent skips any cell in a required column, the matrix displays a [validation error](#requiredErrorText).
4834
4966
  *
4835
4967
  * If you want to mark the column as required based on a condition, specify the [`requiredIf`](#requiredIf) property.
4836
- * @see requiredErrorText
4837
4968
  * @see visible
4838
4969
  * @see readOnly
4839
4970
  */
@@ -4918,8 +5049,8 @@ declare module "question_matrixdropdowncolumn" {
4918
5049
  * @see defaultValueExpression
4919
5050
  * @see resetValueIf
4920
5051
  */
4921
- get setValueExpession(): string;
4922
- set setValueExpession(val: string);
5052
+ get setValueExpression(): string;
5053
+ set setValueExpression(val: string);
4923
5054
  /**
4924
5055
  * Specifies whether a respondent is required to provide a unique response for each question within this column.
4925
5056
  *
@@ -5097,6 +5228,7 @@ declare module "dragdrop/dom-adapter" {
5097
5228
  startDrag(event: PointerEvent, draggedElement: any, parentElement: any, draggedElementNode: HTMLElement, preventSaveTargetNode: boolean): void;
5098
5229
  draggedElementShortcut: HTMLElement;
5099
5230
  rootContainer: HTMLElement;
5231
+ documentOrShadowRoot: Document | ShadowRoot;
5100
5232
  }
5101
5233
  export class DragDropDOMAdapter implements IDragDropDOMAdapter {
5102
5234
  private dd;
@@ -5113,6 +5245,7 @@ declare module "dragdrop/dom-adapter" {
5113
5245
  private savedTargetNodeIndex;
5114
5246
  private scrollIntervalId;
5115
5247
  constructor(dd: IDragDropEngine, longTap?: boolean, fitToContainer?: boolean);
5248
+ get documentOrShadowRoot(): Document | ShadowRoot;
5116
5249
  private get rootElement();
5117
5250
  private stopLongTapIfMoveEnough;
5118
5251
  private get isMicroMovement();
@@ -6485,7 +6618,7 @@ declare module "question_paneldynamic" {
6485
6618
  get progress(): string;
6486
6619
  getRootCss(): string;
6487
6620
  get cssHeader(): string;
6488
- getPanelWrapperCss(): string;
6621
+ getPanelWrapperCss(panel: PanelModel): string;
6489
6622
  getPanelRemoveButtonCss(): string;
6490
6623
  getAddButtonCss(): string;
6491
6624
  getPrevButtonCss(): string;
@@ -8229,6 +8362,7 @@ declare module "question_text" {
8229
8362
  * @see maskSettings
8230
8363
  */
8231
8364
  maskType: string;
8365
+ inputTextAlignment: "left" | "right" | "auto";
8232
8366
  get maskTypeIsEmpty(): boolean;
8233
8367
  /**
8234
8368
  * An object with properties that configure the mask applied to the input.
@@ -8254,6 +8388,8 @@ declare module "question_text" {
8254
8388
  onSurveyLoad(): void;
8255
8389
  /**
8256
8390
  * A value passed on to the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types) attribute of the underlying `<input>` element.
8391
+ *
8392
+ * Default value: `"text"`
8257
8393
  */
8258
8394
  get inputType(): string;
8259
8395
  set inputType(val: string);
@@ -8361,6 +8497,7 @@ declare module "question_text" {
8361
8497
  protected getControlCssClassBuilder(): CssClassBuilder;
8362
8498
  isReadOnlyRenderDiv(): boolean;
8363
8499
  get inputStyle(): any;
8500
+ private updateTextAlign;
8364
8501
  private _isWaitingForEnter;
8365
8502
  private updateValueOnEvent;
8366
8503
  onCompositionUpdate: (event: any) => void;
@@ -8383,6 +8520,7 @@ declare module "question_multipletext" {
8383
8520
  import { SurveyError } from "survey-error";
8384
8521
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
8385
8522
  import { HashTable } from "helpers";
8523
+ import { InputMaskBase } from "mask/mask_base";
8386
8524
  export interface IMultipleTextData extends ILocalizableOwner, IPanel {
8387
8525
  getSurvey(): ISurvey;
8388
8526
  getTextProcessor(): ITextProcessor;
@@ -8398,9 +8536,9 @@ declare module "question_multipletext" {
8398
8536
  get a11y_input_ariaDescribedBy(): string;
8399
8537
  }
8400
8538
  /**
8401
- * A class that describes an item in a [Multiple Textboxes](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model) question.
8539
+ * A class that describes an [item](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model#items) in a Multiple Textboxes question.
8402
8540
  *
8403
- * [View Demo](https://surveyjs.io/form-library/examples/multiple-text-box-question/)
8541
+ * [View Demo](https://surveyjs.io/form-library/examples/multiple-text-box-question/ (linkStyle))
8404
8542
  */
8405
8543
  export class MultipleTextItemModel extends Base implements IValidatorOwner, ISurveyData, ISurveyImpl {
8406
8544
  private editorValue;
@@ -8411,7 +8549,10 @@ declare module "question_multipletext" {
8411
8549
  get id(): string;
8412
8550
  getOriginalObj(): Base;
8413
8551
  /**
8414
- * The item name.
8552
+ * An item ID that is not visible to respondents.
8553
+ *
8554
+ * > Item IDs must be unique.
8555
+ * @see title
8415
8556
  */
8416
8557
  get name(): string;
8417
8558
  set name(val: string);
@@ -8424,33 +8565,34 @@ declare module "question_multipletext" {
8424
8565
  setData(data: IMultipleTextData): void;
8425
8566
  focusIn: () => void;
8426
8567
  /**
8427
- * Set this property to true, to make the item a required. If a user doesn't fill the item then a validation error will be generated.
8568
+ * Marks the item as required. If a respondent leaves this item empty, the question displays a [validation error](#requiredErrorText).
8428
8569
  */
8429
8570
  get isRequired(): boolean;
8430
8571
  set isRequired(val: boolean);
8431
8572
  /**
8432
- * Use this property to change the default input type.
8573
+ * A value passed on to the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types) attribute of the underlying `<input>` element.
8574
+ *
8575
+ * Default value: `"text"`
8433
8576
  */
8434
8577
  get inputType(): string;
8435
8578
  set inputType(val: string);
8436
8579
  /**
8437
- * Item title. If it is empty, the item name is rendered as title. This property supports markdown.
8438
- * @see name
8580
+ * A user-friendly item label to display. If `title` is undefined, [`name`](https://surveyjs.io/form-library/documentation/api-reference/multipletextitemmodel#name) is displayed instead.
8439
8581
  */
8440
8582
  get title(): string;
8441
8583
  set title(val: string);
8442
8584
  get locTitle(): LocalizableString;
8443
8585
  get fullTitle(): string;
8444
8586
  /**
8445
- * The maximum text length. If it is -1, defaul value, then the survey maxTextLength property will be used.
8446
- * If it is 0, then the value is unlimited
8447
- * @see SurveyModel.maxTextLength
8587
+ * The maximum text length measured in characters. Assign 0 if the length should be unlimited.
8588
+ *
8589
+ * Default value: -1 (inherits the actual value from the `SurveyModel`'s [`maxTextLength`](https://surveyjs.io/form-library/documentation/surveymodel#maxTextLength) property).
8448
8590
  */
8449
8591
  get maxLength(): number;
8450
8592
  set maxLength(val: number);
8451
8593
  getMaxLength(): any;
8452
8594
  /**
8453
- * The input place holder.
8595
+ * A placeholder for the input field.
8454
8596
  */
8455
8597
  get placeholder(): string;
8456
8598
  set placeholder(val: string);
@@ -8459,39 +8601,83 @@ declare module "question_multipletext" {
8459
8601
  set placeHolder(val: string);
8460
8602
  get locPlaceHolder(): LocalizableString;
8461
8603
  /**
8462
- * The custom text that will be shown on required error. Use this property, if you do not want to show the default text.
8604
+ * Specifies a custom error message for a [required item](#isRequired).
8463
8605
  */
8464
8606
  get requiredErrorText(): string;
8465
8607
  set requiredErrorText(val: string);
8466
8608
  get locRequiredErrorText(): LocalizableString;
8467
8609
  /**
8468
- * The input size.
8610
+ * A value passed on to the [`size`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/size) attribute of the underlying `<input>` element.
8611
+ *
8612
+ * If you want to set a uniform `size` for all text box items, use the [`itemSize`](https://surveyjs.io/form-library/documentation/api-reference/multiple-text-entry-question-model#itemSize) within the Multiple Textboxes configuration.
8469
8613
  */
8470
8614
  get size(): number;
8471
8615
  set size(val: number);
8472
8616
  /**
8473
- * An expression used to calculate the [defaultValue](https://surveyjs.io/form-library/documentation/question#defaultValue).
8617
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the default item value.
8618
+ * @see minValueExpression
8619
+ * @see maxValueExpression
8474
8620
  */
8475
8621
  get defaultValueExpression(): string;
8476
8622
  set defaultValueExpression(val: string);
8477
8623
  /**
8478
- * The minimum value specified as an expression. For example, `"minValueExpression": "today(-1)"` sets the minimum value to yesterday.
8624
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the minimum item value.
8625
+ * @see maxValueExpression
8626
+ * @see defaultValueExpression
8479
8627
  */
8480
8628
  get minValueExpression(): string;
8481
8629
  set minValueExpression(val: string);
8482
8630
  /**
8483
- * The maximum value specified as an expression. For example, `"maxValueExpression": "today(1)"` sets the maximum value to tomorrow.
8631
+ * An [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) used to calculate the maximum item value.
8632
+ * @see minValueExpression
8633
+ * @see defaultValueExpression
8484
8634
  */
8485
8635
  get maxValueExpression(): string;
8486
8636
  set maxValueExpression(val: string);
8487
8637
  /**
8488
- * The list of question validators.
8638
+ * Item validators.
8639
+ *
8640
+ * [Data Validation](https://surveyjs.io/form-library/documentation/data-validation (linkStyle))
8489
8641
  */
8490
8642
  get validators(): Array<SurveyValidator>;
8491
8643
  set validators(val: Array<SurveyValidator>);
8492
8644
  getValidators(): Array<SurveyValidator>;
8493
8645
  /**
8494
- * The item value.
8646
+ * Specifies the type of a mask applied to the input.
8647
+ *
8648
+ * Possible values:
8649
+ *
8650
+ * - `"none"` (default)
8651
+ * - `"numeric"`
8652
+ * - `"currency"`
8653
+ * - `"datetime"`
8654
+ * - `"pattern"`
8655
+ *
8656
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
8657
+ * @see maskSettings
8658
+ */
8659
+ get maskType(): string;
8660
+ set maskType(val: string);
8661
+ /**
8662
+ * An object with properties that configure the mask applied to the input.
8663
+ *
8664
+ * Available properties depend on the specified [`maskType`](#maskType) and belong to corresponding classes. Refer to the class APIs for a full list of properties:
8665
+ *
8666
+ * | `maskType` | Class |
8667
+ * | ---------- | ----- |
8668
+ * | `"numeric"` | [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/api-reference/inputmasknumeric) |
8669
+ * | `"currency"` | [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskcurrency) |
8670
+ * | `"datetime"` | [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskdatetime) |
8671
+ * | `"pattern"` | [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern) |
8672
+ *
8673
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
8674
+ */
8675
+ get maskSettings(): InputMaskBase;
8676
+ set maskSettings(val: InputMaskBase);
8677
+ get inputTextAlignment(): "left" | "right" | "auto";
8678
+ set inputTextAlignment(val: "left" | "right" | "auto");
8679
+ /**
8680
+ * An item value.
8495
8681
  */
8496
8682
  get value(): any;
8497
8683
  set value(value: any);
@@ -8538,9 +8724,9 @@ declare module "question_multipletext" {
8538
8724
  private editorsOnSurveyLoad;
8539
8725
  private performForEveryEditor;
8540
8726
  /**
8541
- * Gets or sets an array of `MultipleTextItemModel` objects that represent input items.
8727
+ * Gets or sets an array of [`MultipleTextItemModel`](https://surveyjs.io/form-library/documentation/api-reference/multipletextitemmodel) objects that represent input items.
8542
8728
  *
8543
- * This property accepts an array of objects with the following structure:
8729
+ * Each object in this array should have at least the following properties:
8544
8730
  *
8545
8731
  * ```js
8546
8732
  * {
@@ -8563,6 +8749,7 @@ declare module "question_multipletext" {
8563
8749
  */
8564
8750
  addItem(name: string, title?: string): MultipleTextItemModel;
8565
8751
  getItemByName(name: string): MultipleTextItemModel;
8752
+ getElementsInDesign(includeHidden?: boolean): Array<IElement>;
8566
8753
  addConditionObjectsByContext(objects: Array<IConditionObject>, context: any): void;
8567
8754
  protected collectNestedQuestionsCore(questions: Question[], visibleOnly: boolean): void;
8568
8755
  getConditionJson(operator?: string, path?: string): any;
@@ -12000,7 +12187,7 @@ declare module "survey-element" {
12000
12187
  protected setPage(parent: IPanel, newPage: IPage): void;
12001
12188
  protected getSearchableLocKeys(keys: Array<string>): void;
12002
12189
  get isDefaultV2Theme(): boolean;
12003
- get hasParent(): any;
12190
+ get hasParent(): boolean;
12004
12191
  isSingleInRow: boolean;
12005
12192
  private shouldAddRunnerStyles;
12006
12193
  protected get isCompact(): boolean;
@@ -12075,6 +12262,20 @@ declare module "survey-element" {
12075
12262
  protected getAdditionalTitleToolbar(): ActionContainer | null;
12076
12263
  protected getCssTitle(cssClasses: any): string;
12077
12264
  localeChanged(): void;
12265
+ private wrapperElement?;
12266
+ setWrapperElement(element?: HTMLElement): void;
12267
+ getWrapperElement(): HTMLElement;
12268
+ private _renderedIsExpanded;
12269
+ private _isAnimatingCollapseExpand;
12270
+ private set isAnimatingCollapseExpand(value);
12271
+ private get isAnimatingCollapseExpand();
12272
+ private getExpandCollapseAnimationOptions;
12273
+ private animationCollapsed;
12274
+ set renderedIsExpanded(val: boolean);
12275
+ get renderedIsExpanded(): boolean;
12276
+ private animationAllowedValue;
12277
+ get animationAllowed(): boolean;
12278
+ set animationAllowed(val: boolean);
12078
12279
  dispose(): void;
12079
12280
  }
12080
12281
  }
@@ -14888,12 +15089,12 @@ declare module "base" {
14888
15089
  private getValueInLowCase;
14889
15090
  getElementsInDesign(includeHidden?: boolean): Array<IElement>;
14890
15091
  }
14891
- export class ArrayChanges {
15092
+ export class ArrayChanges<T = any> {
14892
15093
  index: number;
14893
15094
  deleteCount: number;
14894
- itemsToAdd: any[];
14895
- deletedItems: any[];
14896
- constructor(index: number, deleteCount: number, itemsToAdd: any[], deletedItems: any[]);
15095
+ itemsToAdd: T[];
15096
+ deletedItems: T[];
15097
+ constructor(index: number, deleteCount: number, itemsToAdd: T[], deletedItems: T[]);
14897
15098
  }
14898
15099
  export class Event<CallbackFunction extends Function, Sender, Options> {
14899
15100
  onCallbacksChanged: () => void;
@@ -16263,6 +16464,7 @@ declare module "question_checkbox" {
16263
16464
  }>, isAddAll: boolean): void;
16264
16465
  protected isBuiltInChoice(item: ItemValue): boolean;
16265
16466
  isItemInList(item: ItemValue): boolean;
16467
+ protected getDisplayValueEmpty(): string;
16266
16468
  protected getDisplayValueCore(keysAsText: boolean, value: any): any;
16267
16469
  protected clearIncorrectValuesCore(): void;
16268
16470
  protected clearDisabledValuesCore(): void;
@@ -16609,7 +16811,7 @@ declare module "dragdrop/ranking-choices" {
16609
16811
  protected updateDraggedElementShortcut(newIndex: number): void;
16610
16812
  protected ghostPositionChanged(): void;
16611
16813
  protected doBanDropHere: () => any;
16612
- protected doDrop: () => any;
16814
+ protected doDrop(): any;
16613
16815
  clear(): void;
16614
16816
  }
16615
16817
  }
@@ -16628,21 +16830,26 @@ declare module "dragdrop/ranking-select-to-rank" {
16628
16830
  fromIndex: number;
16629
16831
  toIndex: number;
16630
16832
  };
16833
+ protected calculateIsBottom(clientY: number, dropTargetNode?: HTMLElement): boolean;
16631
16834
  private doUIEffects;
16632
16835
  private get isDraggedElementRanked();
16633
16836
  private get isDropTargetRanked();
16634
16837
  private get isDraggedElementUnranked();
16635
16838
  private get isDropTargetUnranked();
16636
- selectToRank(questionModel: QuestionRankingModel, fromIndex: number, toIndex: number): void;
16637
- unselectFromRank(questionModel: QuestionRankingModel, fromIndex: number, toIndex?: number): void;
16638
- reorderRankedItem(questionModel: QuestionRankingModel, fromIndex: number, toIndex: number): void;
16839
+ private updateChoices;
16840
+ selectToRank: (questionModel: QuestionRankingModel, fromIndex: number, toIndex: number) => void;
16841
+ unselectFromRank: (questionModel: QuestionRankingModel, fromIndex: number, toIndex?: number) => void;
16842
+ reorderRankedItem: (questionModel: QuestionRankingModel, fromIndex: number, toIndex: number, dropTargetNode?: HTMLElement) => void;
16843
+ clear(): void;
16639
16844
  }
16640
16845
  }
16641
16846
  declare module "question_ranking" {
16642
16847
  import { ISurveyImpl } from "base-interfaces";
16643
16848
  import { DragDropRankingChoices } from "dragdrop/ranking-choices";
16849
+ import { DragDropRankingSelectToRank } from "dragdrop/ranking-select-to-rank";
16644
16850
  import { ItemValue } from "itemvalue";
16645
16851
  import { QuestionCheckboxModel } from "question_checkbox";
16852
+ import { AnimationGroup } from "utils/animation";
16646
16853
  /**
16647
16854
  * A class that describes the Ranking question type.
16648
16855
  *
@@ -16662,6 +16869,7 @@ declare module "question_ranking" {
16662
16869
  get ghostPositionCssClass(): string;
16663
16870
  getItemIndexClasses(item: ItemValue): string;
16664
16871
  getNumberByIndex(index: number): string;
16872
+ private updateRankingChoicesSync;
16665
16873
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
16666
16874
  isAnswerCorrect(): boolean;
16667
16875
  get requireStrictCompare(): boolean;
@@ -16670,16 +16878,24 @@ declare module "question_ranking" {
16670
16878
  localeChanged: () => void;
16671
16879
  private addToValueByVisibleChoices;
16672
16880
  private removeFromValueByVisibleChoices;
16881
+ private getChoicesAnimation;
16882
+ private _rankingChoicesAnimation;
16883
+ get rankingChoicesAnimation(): AnimationGroup<ItemValue>;
16884
+ private _unRankingChoicesAnimation;
16885
+ get unRankingChoicesAnimation(): AnimationGroup<ItemValue>;
16673
16886
  get rankingChoices(): Array<ItemValue>;
16887
+ set rankingChoices(val: Array<ItemValue>);
16674
16888
  get unRankingChoices(): Array<ItemValue>;
16889
+ set unRankingChoices(val: Array<ItemValue>);
16675
16890
  private updateRankingChoices;
16891
+ updateUnRankingChoices(newRankingChoices: Array<ItemValue>): void;
16676
16892
  private updateRankingChoicesSelectToRankMode;
16677
16893
  dragDropRankingChoices: DragDropRankingChoices;
16678
16894
  currentDropTarget: ItemValue;
16679
16895
  dropTargetNodeMove: string;
16680
16896
  endLoadingFromJson(): void;
16681
16897
  private setDragDropRankingChoices;
16682
- protected createDragDropRankingChoices(): DragDropRankingChoices;
16898
+ protected createDragDropRankingChoices(): DragDropRankingChoices | DragDropRankingSelectToRank;
16683
16899
  handlePointerDown: (event: PointerEvent, choice: ItemValue, node: HTMLElement) => void;
16684
16900
  private isDragStartNodeValid;
16685
16901
  private get allowStartDrag();
@@ -18855,6 +19071,7 @@ declare module "entries/core-wo-model" {
18855
19071
  export * from "utils/responsivity-manager";
18856
19072
  export { unwrap, getOriginalEvent, getElement } from "utils/utils";
18857
19073
  export * from "actions/action";
19074
+ export * from "utils/animation";
18858
19075
  export * from "actions/adaptive-container";
18859
19076
  export * from "actions/container";
18860
19077
  export * from "utils/dragOrClickHelper";
@@ -25566,7 +25783,7 @@ declare module "react/components/popup/popup" {
25566
25783
  protected getStateElement(): Base;
25567
25784
  clickInside: (ev: any) => void;
25568
25785
  componentDidUpdate(prevProps: any, prevState: any): void;
25569
- renderContainer(PopupBaseViewModel: PopupBaseViewModel): JSX.Element;
25786
+ renderContainer(popupBaseViewModel: PopupBaseViewModel): JSX.Element;
25570
25787
  renderHeaderContent(): JSX.Element;
25571
25788
  renderContent(): JSX.Element;
25572
25789
  protected renderHeaderPopup(popupModel: PopupBaseViewModel): JSX.Element | null;
@@ -25806,6 +26023,8 @@ declare module "react/element" {
25806
26023
  private get survey();
25807
26024
  private get creator();
25808
26025
  protected get css(): any;
26026
+ componentDidMount(): void;
26027
+ componentWillUnmount(): void;
25809
26028
  shouldComponentUpdate(nextProps: any, nextState: any): boolean;
25810
26029
  protected renderElement(): JSX.Element;
25811
26030
  protected createElement(element: IElement, elementIndex?: number): JSX.Element;
@@ -25854,6 +26073,7 @@ declare module "react/panel-base" {
25854
26073
  componentWillUnmount(): void;
25855
26074
  componentDidUpdate(prevProps: any, prevState: any): void;
25856
26075
  private doAfterRender;
26076
+ protected getIsVisible(): boolean;
25857
26077
  protected canRender(): boolean;
25858
26078
  protected renderRows(css: any): Array<JSX.Element>;
25859
26079
  protected createRow(row: QuestionRowModel, css: any): JSX.Element;
@@ -26019,6 +26239,7 @@ declare module "react/panel" {
26019
26239
  protected renderTitle(): JSX.Element | null;
26020
26240
  protected renderDescription(): JSX.Element | null;
26021
26241
  protected renderBottom(): JSX.Element | null;
26242
+ protected getIsVisible(): boolean;
26022
26243
  }
26023
26244
  }
26024
26245
  declare module "react/flow-panel" {