survey-react 1.9.134 → 1.9.136

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
@@ -1,4 +1,33 @@
1
1
  /// <reference types="react" />
2
+ declare module "global_variables_utils" {
3
+ export class DomWindowHelper {
4
+ static isAvailable(): boolean;
5
+ static isFileReaderAvailable(): boolean;
6
+ static getLocation(): Location;
7
+ static getVisualViewport(): VisualViewport | null;
8
+ static getInnerWidth(): number;
9
+ static getInnerHeight(): number;
10
+ static getWindow(): Window;
11
+ static hasOwn(propertyName: string): boolean;
12
+ static getSelection(): Selection | null;
13
+ static requestAnimationFrame(callback: FrameRequestCallback): number;
14
+ static addEventListener(type: string, listener: (e?: any) => void): void;
15
+ static removeEventListener(type: string, listener: (e?: any) => void): void;
16
+ }
17
+ export class DomDocumentHelper {
18
+ static isAvailable(): boolean;
19
+ static getBody(): HTMLElement;
20
+ static getDocumentElement(): HTMLElement;
21
+ static getDocument(): Document;
22
+ static getCookie(): string;
23
+ static setCookie(newCookie: string): void;
24
+ static activeElementBlur(): Document;
25
+ static createElement(tagName: string): HTMLElement;
26
+ static getComputedStyle(elt: Element): CSSStyleDeclaration;
27
+ static addEventListener(type: string, listener: (e?: any) => void): void;
28
+ static removeEventListener(type: string, listener: (e?: any) => void): void;
29
+ }
30
+ }
2
31
  declare module "helpers" {
3
32
  export interface HashTable<T = any> {
4
33
  [key: string]: T;
@@ -814,6 +843,7 @@ declare module "list" {
814
843
  itemWithIcon: string;
815
844
  itemDisabled: string;
816
845
  itemFocused: string;
846
+ itemTextWrap: string;
817
847
  itemIcon: string;
818
848
  itemSeparator: string;
819
849
  itemBody: string;
@@ -851,6 +881,7 @@ declare module "list" {
851
881
  isAllDataLoaded: boolean;
852
882
  showSearchClearButton: boolean;
853
883
  renderElements: boolean;
884
+ textWrapEnabled: boolean;
854
885
  static INDENT: number;
855
886
  static MINELEMENTCOUNT: number;
856
887
  scrollHandler: (e?: any) => void;
@@ -876,6 +907,7 @@ declare module "list" {
876
907
  itemWithIcon: string;
877
908
  itemDisabled: string;
878
909
  itemFocused: string;
910
+ itemTextWrap: string;
879
911
  itemIcon: string;
880
912
  itemSeparator: string;
881
913
  itemBody: string;
@@ -1406,6 +1438,9 @@ declare module "defaultCss/defaultV2Css" {
1406
1438
  progressButtonsContainerCenter: string;
1407
1439
  progressButtonsContainer: string;
1408
1440
  progressButtonsConnector: string;
1441
+ progressButtonsButton: string;
1442
+ progressButtonsButtonBackground: string;
1443
+ progressButtonsButtonContent: string;
1409
1444
  progressButtonsHeader: string;
1410
1445
  progressButtonsFooter: string;
1411
1446
  progressButtonsImageButtonLeft: string;
@@ -1497,6 +1532,7 @@ declare module "defaultCss/defaultV2Css" {
1497
1532
  mainRoot: string;
1498
1533
  root: string;
1499
1534
  withFrame: string;
1535
+ nested: string;
1500
1536
  };
1501
1537
  error: {
1502
1538
  root: string;
@@ -1677,6 +1713,7 @@ declare module "defaultCss/defaultV2Css" {
1677
1713
  mainRoot: string;
1678
1714
  tableWrapper: string;
1679
1715
  root: string;
1716
+ columnsAutoWidth: string;
1680
1717
  noHeader: string;
1681
1718
  rootVerticalAlignTop: string;
1682
1719
  rootVerticalAlignMiddle: string;
@@ -1705,6 +1742,7 @@ declare module "defaultCss/defaultV2Css" {
1705
1742
  mainRoot: string;
1706
1743
  rootScroll: string;
1707
1744
  root: string;
1745
+ columnsAutoWidth: string;
1708
1746
  noHeader: string;
1709
1747
  hasFooter: string;
1710
1748
  rootVerticalAlignTop: string;
@@ -1747,6 +1785,7 @@ declare module "defaultCss/defaultV2Css" {
1747
1785
  rootScroll: string;
1748
1786
  empty: string;
1749
1787
  root: string;
1788
+ columnsAutoWidth: string;
1750
1789
  noHeader: string;
1751
1790
  hasFooter: string;
1752
1791
  tableWrapper: string;
@@ -4095,6 +4134,7 @@ declare module "question_baseselect" {
4095
4134
  protected updateSelectedItemValues(): void;
4096
4135
  private setCustomValuesIntoItems;
4097
4136
  protected hasUnknownValue(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
4137
+ protected hasUnknownValueItem(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
4098
4138
  protected isValueDisabled(val: any): boolean;
4099
4139
  /**
4100
4140
  * If the clearIncorrectValuesCallback is set, it is used to clear incorrect values instead of default behaviour.
@@ -4881,8 +4921,8 @@ declare module "question_matrixdropdowncolumn" {
4881
4921
  * @see defaultValueExpression
4882
4922
  * @see resetValueIf
4883
4923
  */
4884
- get setValueExpession(): string;
4885
- set setValueExpession(val: string);
4924
+ get setValueExpression(): string;
4925
+ set setValueExpression(val: string);
4886
4926
  /**
4887
4927
  * Specifies whether a respondent is required to provide a unique response for each question within this column.
4888
4928
  *
@@ -5060,6 +5100,7 @@ declare module "dragdrop/dom-adapter" {
5060
5100
  startDrag(event: PointerEvent, draggedElement: any, parentElement: any, draggedElementNode: HTMLElement, preventSaveTargetNode: boolean): void;
5061
5101
  draggedElementShortcut: HTMLElement;
5062
5102
  rootContainer: HTMLElement;
5103
+ documentOrShadowRoot: Document | ShadowRoot;
5063
5104
  }
5064
5105
  export class DragDropDOMAdapter implements IDragDropDOMAdapter {
5065
5106
  private dd;
@@ -5076,6 +5117,7 @@ declare module "dragdrop/dom-adapter" {
5076
5117
  private savedTargetNodeIndex;
5077
5118
  private scrollIntervalId;
5078
5119
  constructor(dd: IDragDropEngine, longTap?: boolean, fitToContainer?: boolean);
5120
+ get documentOrShadowRoot(): Document | ShadowRoot;
5079
5121
  private get rootElement();
5080
5122
  private stopLongTapIfMoveEnough;
5081
5123
  private get isMicroMovement();
@@ -6448,7 +6490,7 @@ declare module "question_paneldynamic" {
6448
6490
  get progress(): string;
6449
6491
  getRootCss(): string;
6450
6492
  get cssHeader(): string;
6451
- getPanelWrapperCss(): string;
6493
+ getPanelWrapperCss(panel: PanelModel): string;
6452
6494
  getPanelRemoveButtonCss(): string;
6453
6495
  getAddButtonCss(): string;
6454
6496
  getPrevButtonCss(): string;
@@ -7138,9 +7180,18 @@ declare module "survey-events-api" {
7138
7180
  */
7139
7181
  input: HTMLInputElement;
7140
7182
  /**
7141
- * A question, panel, page, or survey for which this event is raised.
7183
+ * A survey element (question, panel, page, or survey) or a theme JSON schema for which this event is raised.
7142
7184
  */
7143
7185
  element: Base;
7186
+ /**
7187
+ * The type of the element passed as the `options.element` parameter.\
7188
+ * Possible values: `"theme"`, `"header"`, or any value returned from the [`getType()`](https://surveyjs.io/form-library/documentation/api-reference/question#getType) method.
7189
+ */
7190
+ elementType: String;
7191
+ /**
7192
+ * The name of the survey element property or theme property for which files are being selected.
7193
+ */
7194
+ propertyName: String;
7144
7195
  /**
7145
7196
  * A choice item for which the event is raised. This parameter has a value only when the dialog window is opened to select images for an [Image Picker](https://surveyjs.io/form-library/documentation/api-reference/image-picker-question-model) question.
7146
7197
  */
@@ -7349,6 +7400,24 @@ declare module "survey-events-api" {
7349
7400
  */
7350
7401
  allow: boolean;
7351
7402
  }
7403
+ export interface MatrixDetailPanelVisibleChangedEvent extends MatrixDropdownQuestionEventMixin {
7404
+ /**
7405
+ * A matrix row to which the detail section belongs.
7406
+ */
7407
+ row: MatrixDropdownRowModelBase;
7408
+ /**
7409
+ * A zero-based row index.
7410
+ */
7411
+ rowIndex: number;
7412
+ /**
7413
+ * A [PanelModel](https://surveyjs.io/form-library/documentation/panelmodel) that represents the detail section.
7414
+ */
7415
+ detailPanel: PanelModel;
7416
+ /**
7417
+ * Indicates whether the detail section is visible now.
7418
+ */
7419
+ visible: boolean;
7420
+ }
7352
7421
  export interface MatrixCellCreatingBaseEvent extends MatrixDropdownQuestionEventMixin {
7353
7422
  /**
7354
7423
  * A [matrix column](https://surveyjs.io/form-library/documentation/api-reference/multi-select-matrix-column-values) to which the cell belongs.
@@ -7847,7 +7916,7 @@ declare module "surveytimer" {
7847
7916
  export var surveyTimerFunctions: {
7848
7917
  setTimeout: (func: () => any) => number;
7849
7918
  clearTimeout: (timerId: number) => void;
7850
- safeTimeOut: (func: () => any, delay: number) => number;
7919
+ safeTimeOut: (func: () => any, delay: number) => number | any;
7851
7920
  };
7852
7921
  export class SurveyTimer {
7853
7922
  private static instanceValue;
@@ -8089,7 +8158,20 @@ declare module "mask/mask_utils" {
8089
8158
  declare module "mask/mask_base" {
8090
8159
  import { Base } from "base";
8091
8160
  import { IInputMask, IMaskedInputResult, ITextInputParams } from "mask/mask_utils";
8161
+ /**
8162
+ * A base class for classes that implement input masks:
8163
+ *
8164
+ * - [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/inputmasknumeric)
8165
+ * - [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/inputmaskcurrency)
8166
+ * - [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/inputmaskdatetime)
8167
+ * - [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/inputmaskpattern)
8168
+ */
8092
8169
  export class InputMaskBase extends Base implements IInputMask {
8170
+ /**
8171
+ * Specifies whether to store the question value with an applied mask in survey results.
8172
+ *
8173
+ * Default value: `false`
8174
+ */
8093
8175
  saveMaskedValue: boolean;
8094
8176
  getType(): string;
8095
8177
  setData(json: any): void;
@@ -8109,7 +8191,6 @@ declare module "mask/input_element_adapter" {
8109
8191
  constructor(inputMaskInstance: InputMaskBase, inputElement: HTMLInputElement, value?: string);
8110
8192
  inputMaskInstancePropertyChangedHandler: (sender: any, options: any) => void;
8111
8193
  beforeInputHandler: (event: any) => void;
8112
- blurInputHandler: (event: any) => void;
8113
8194
  createArgs(event: any): ITextInputParams;
8114
8195
  addInputEventListener(): void;
8115
8196
  removeInputEventListener(): void;
@@ -8138,8 +8219,37 @@ declare module "question_text" {
8138
8219
  private deleteMaskAdapter;
8139
8220
  private updateMaskAdapter;
8140
8221
  onSetMaskType(newValue: string): void;
8222
+ /**
8223
+ * Specifies the type of a mask applied to the input.
8224
+ *
8225
+ * Possible values:
8226
+ *
8227
+ * - `"none"` (default)
8228
+ * - `"numeric"`
8229
+ * - `"currency"`
8230
+ * - `"datetime"`
8231
+ * - `"pattern"`
8232
+ *
8233
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
8234
+ * @see maskSettings
8235
+ */
8141
8236
  maskType: string;
8237
+ inputTextAlignment: "left" | "right" | "auto";
8142
8238
  get maskTypeIsEmpty(): boolean;
8239
+ /**
8240
+ * An object with properties that configure the mask applied to the input.
8241
+ *
8242
+ * Available properties depend on the specified [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType) and belong to corresponding classes. Refer to the class APIs for a full list of properties:
8243
+ *
8244
+ * | `maskType` | Class |
8245
+ * | ---------- | ----- |
8246
+ * | `"numeric"` | [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/api-reference/inputmasknumeric) |
8247
+ * | `"currency"` | [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskcurrency) |
8248
+ * | `"datetime"` | [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskdatetime) |
8249
+ * | `"pattern"` | [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern) |
8250
+ *
8251
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
8252
+ */
8143
8253
  get maskSettings(): InputMaskBase;
8144
8254
  set maskSettings(val: InputMaskBase);
8145
8255
  private setNewMaskSettingsProperty;
@@ -8220,9 +8330,12 @@ declare module "question_text" {
8220
8330
  * @see max
8221
8331
  */
8222
8332
  get isMinMaxType(): boolean;
8333
+ _inputValue: string;
8223
8334
  get maskInstance(): IInputMask;
8224
8335
  get inputValue(): string;
8225
8336
  set inputValue(val: string);
8337
+ protected onChangeQuestionValue(newValue: any): void;
8338
+ private updateInputValue;
8226
8339
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
8227
8340
  protected canSetValueToSurvey(): boolean;
8228
8341
  protected convertFuncValuetoQuestionValue(val: any): any;
@@ -8254,6 +8367,7 @@ declare module "question_text" {
8254
8367
  protected getControlCssClassBuilder(): CssClassBuilder;
8255
8368
  isReadOnlyRenderDiv(): boolean;
8256
8369
  get inputStyle(): any;
8370
+ private updateTextAlign;
8257
8371
  private _isWaitingForEnter;
8258
8372
  private updateValueOnEvent;
8259
8373
  onCompositionUpdate: (event: any) => void;
@@ -8748,7 +8862,7 @@ declare module "survey" {
8748
8862
  import { ActionContainer } from "actions/container";
8749
8863
  import { QuestionPanelDynamicModel } from "question_paneldynamic";
8750
8864
  import { Notifier } from "notifier";
8751
- import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent } from "survey-events-api";
8865
+ import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixDetailPanelVisibleChangedEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent } from "survey-events-api";
8752
8866
  import { QuestionMatrixDropdownModelBase } from "question_matrixdropdownbase";
8753
8867
  import { QuestionMatrixDynamicModel } from "question_matrixdynamic";
8754
8868
  import { QuestionFileModel } from "question_file";
@@ -8893,7 +9007,7 @@ declare module "survey" {
8893
9007
  * Refer to the following help topic for information on how to implement conditional visibility: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-visibility).
8894
9008
  */
8895
9009
  onQuestionVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
8896
- onVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
9010
+ onVisibleChanged: EventBase<SurveyModel, any>;
8897
9011
  /**
8898
9012
  * An event that is raised after page visibility is changed.
8899
9013
  *
@@ -8903,7 +9017,7 @@ declare module "survey" {
8903
9017
  */
8904
9018
  onPageVisibleChanged: EventBase<SurveyModel, PageVisibleChangedEvent>;
8905
9019
  /**
8906
- * An event that is raised after page visibility is changed.
9020
+ * An event that is raised after panel visibility is changed.
8907
9021
  *
8908
9022
  * For information on event handler parameters, refer to descriptions within the interface.
8909
9023
  *
@@ -9298,6 +9412,10 @@ declare module "survey" {
9298
9412
  * This event is obsolete. Use the [`onMatrixRenderRemoveButton`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixRenderRemoveButton) event instead.
9299
9413
  */
9300
9414
  onMatrixAllowRemoveRow: EventBase<SurveyModel, MatrixAllowRemoveRowEvent>;
9415
+ /**
9416
+ * An event that is raised after the visibility of an [expandable detail section](https://surveyjs.io/form-library/examples/add-expandable-details-section-under-matrix-rows/) is changed. This event can be raised for [Multi-Select](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
9417
+ */
9418
+ onMatrixDetailPanelVisibleChanged: EventBase<SurveyModel, MatrixDetailPanelVisibleChangedEvent>;
9301
9419
  /**
9302
9420
  * An event that is raised before a cell in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) is created. Use this event to change the type of individual matrix cells.
9303
9421
  * @see onAfterRenderMatrixCell
@@ -9502,13 +9620,12 @@ declare module "survey" {
9502
9620
  /**
9503
9621
  * Specifies whether to enable lazy rendering.
9504
9622
  *
9505
- * In default mode, a survey renders the entire current page. With lazy rendering, the survey renders the page gradually as a user scrolls it. This helps reduce survey startup time and oprimizes large surveys for low-end devices.
9623
+ * In default mode, a survey renders the entire current page. With lazy rendering, the survey renders the page gradually as a user scrolls it. This helps reduce survey startup time and optimizes large surveys for low-end devices.
9506
9624
  *
9507
9625
  * Default value: `false`
9508
9626
  *
9509
9627
  * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
9510
- *
9511
- * > This is an experimental feature that may not work properly in certain cases.
9628
+ * @see [settings.lazyRender](https://surveyjs.io/form-library/documentation/api-reference/settings#lazyRender)
9512
9629
  */
9513
9630
  get lazyRendering(): boolean;
9514
9631
  set lazyRendering(val: boolean);
@@ -10165,7 +10282,7 @@ declare module "survey" {
10165
10282
  * - `"belowHeader"` - Displays the progress bar below the survey header.
10166
10283
  * - `"bottom"` - Displays the progress bar below survey content.
10167
10284
  * - `"topBottom"` - Displays the progress bar above and below survey content.
10168
- * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
10285
+ * - `"auto"` - Displays the progress bar below the survey header if the header has a [background image](https://surveyjs.io/form-library/documentation/api-reference/iheader#backgroundImage) or color. Otherwise, the progress bar is displayed above the header.
10169
10286
  * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
10170
10287
  * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
10171
10288
  *
@@ -10882,6 +10999,7 @@ declare module "survey" {
10882
10999
  matrixRowRemoved(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): void;
10883
11000
  matrixRowRemoving(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): boolean;
10884
11001
  matrixAllowRemoveRow(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): boolean;
11002
+ matrixDetailPanelVisibleChanged(question: QuestionMatrixDropdownModelBase, rowIndex: number, row: any, visible: boolean): void;
10885
11003
  matrixCellCreating(question: QuestionMatrixDropdownModelBase, options: any): void;
10886
11004
  matrixCellCreated(question: QuestionMatrixDropdownModelBase, options: any): void;
10887
11005
  matrixAfterCellRender(question: QuestionMatrixDropdownModelBase, options: any): void;
@@ -10914,8 +11032,10 @@ declare module "survey" {
10914
11032
  * @see onUploadFile
10915
11033
  */
10916
11034
  chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
10917
- element: ISurveyElement;
11035
+ element: Base;
10918
11036
  item?: any;
11037
+ elementType?: string;
11038
+ propertyName?: string;
10919
11039
  }): void;
10920
11040
  /**
10921
11041
  * Uploads files to a server.
@@ -13109,6 +13229,7 @@ declare module "martixBase" {
13109
13229
  protected clearInvisibleValuesInRows(): void;
13110
13230
  private restoreNewVisibleRowsValues;
13111
13231
  needResponsiveWidth(): boolean;
13232
+ protected get columnsAutoWidth(): boolean;
13112
13233
  getTableCss(): string;
13113
13234
  /**
13114
13235
  * Aligns matrix cell content in the vertical direction.
@@ -13796,6 +13917,7 @@ declare module "base-interfaces" {
13796
13917
  matrixRowRemoved(question: IQuestion, rowIndex: number, row: any): any;
13797
13918
  matrixRowRemoving(question: IQuestion, rowIndex: number, row: any): boolean;
13798
13919
  matrixAllowRemoveRow(question: IQuestion, rowIndex: number, row: any): boolean;
13920
+ matrixDetailPanelVisibleChanged(question: IQuestion, rowIndex: number, row: any, visible: boolean): void;
13799
13921
  matrixCellCreating(question: IQuestion, options: any): any;
13800
13922
  matrixCellCreated(question: IQuestion, options: any): any;
13801
13923
  matrixAfterCellRender(question: IQuestion, options: any): any;
@@ -13818,8 +13940,10 @@ declare module "base-interfaces" {
13818
13940
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
13819
13941
  processPopupVisiblityChanged(question: IQuestion, popupModel: PopupModel, visible: boolean): void;
13820
13942
  chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
13821
- element: ISurveyElement;
13943
+ element: Base;
13822
13944
  item?: any;
13945
+ elementType?: string;
13946
+ propertyName?: string;
13823
13947
  }): void;
13824
13948
  }
13825
13949
  export interface ISurveyImpl {
@@ -14933,7 +15057,7 @@ declare module "settings" {
14933
15057
  * Nested properties:
14934
15058
  *
14935
15059
  * - `useLocalTimeZone`: `boolean`\
14936
- * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.). Default value: `true`.
15060
+ * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear()`, `setHours()`, etc.). Default value: `true`.
14937
15061
  *
14938
15062
  * - `defaultLocaleName`: `string`\
14939
15063
  * A property key that stores a translation for the default locale. Default value: `"default"`.
@@ -15059,7 +15183,8 @@ declare module "settings" {
15059
15183
  * - `enabled`: `boolean`\
15060
15184
  * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
15061
15185
  *
15062
- * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
15186
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
15187
+ * @see [SurveyModel.lazyRendering](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#lazyRendering)
15063
15188
  */
15064
15189
  lazyRender: {
15065
15190
  enabled: boolean;
@@ -15441,6 +15566,20 @@ declare module "settings" {
15441
15566
  dataList: string[];
15442
15567
  };
15443
15568
  legacyProgressBarView: boolean;
15569
+ /**
15570
+ * An object with properties that configure input masks.
15571
+ *
15572
+ * Nested properties:
15573
+ *
15574
+ * - `patternPlaceholderChar`: `string`\
15575
+ * A symbol used as a placeholder for characters to be entered in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"_"`.
15576
+ *
15577
+ * - `patternEscapeChar`: `string`\
15578
+ * A symbol used to insert literal representations of special characters in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"\\"`.
15579
+ *
15580
+ * - `patternDefinitions`: `<{ [key: string]: RegExp }>`\
15581
+ * An object that maps placeholder symbols to regular expressions in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `{ "9": /[0-9]/, "a": /[a-zA-Z]/, "#": /[a-zA-Z0-9]/ }`.
15582
+ */
15444
15583
  maskSettings: {
15445
15584
  patternPlaceholderChar: string;
15446
15585
  patternEscapeChar: string;
@@ -15532,6 +15671,7 @@ declare module "dropdownListModel" {
15532
15671
  private updatePopupFocusFirstInputSelector;
15533
15672
  protected createPopup(): void;
15534
15673
  private setFilterStringToListModel;
15674
+ private setTextWrapEnabled;
15535
15675
  protected popupRecalculatePosition(isResetHeight: boolean): void;
15536
15676
  protected onHidePopup(): void;
15537
15677
  protected getAvailableItems(): Array<ItemValue>;
@@ -15698,6 +15838,14 @@ declare module "question_dropdown" {
15698
15838
  * @see [SurveyModel.onChoicesSearch](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onChoicesSearch)
15699
15839
  */
15700
15840
  searchMode: "contains" | "startsWith";
15841
+ /**
15842
+ * Specifies whether to wrap long texts in choice options onto a new line.
15843
+ *
15844
+ * Default value: `true`
15845
+ *
15846
+ * Disable this property if you want the texts to be truncated with ellipsis.
15847
+ */
15848
+ textWrapEnabled: boolean;
15701
15849
  inputHasValue: boolean;
15702
15850
  readOnlyText: string;
15703
15851
  /**
@@ -16122,6 +16270,7 @@ declare module "question_checkbox" {
16122
16270
  }>, isAddAll: boolean): void;
16123
16271
  protected isBuiltInChoice(item: ItemValue): boolean;
16124
16272
  isItemInList(item: ItemValue): boolean;
16273
+ protected getDisplayValueEmpty(): string;
16125
16274
  protected getDisplayValueCore(keysAsText: boolean, value: any): any;
16126
16275
  protected clearIncorrectValuesCore(): void;
16127
16276
  protected clearDisabledValuesCore(): void;
@@ -16258,6 +16407,7 @@ declare module "question_tagbox" {
16258
16407
  * Specifies whether to close the drop-down menu after a user selects a value.
16259
16408
  */
16260
16409
  closeOnSelect: number;
16410
+ textWrapEnabled: boolean;
16261
16411
  /**
16262
16412
  * A text displayed in the input field when it doesn't have a value.
16263
16413
  */
@@ -16690,6 +16840,7 @@ declare module "question_html" {
16690
16840
  get processedHtml(): string;
16691
16841
  private processHtml;
16692
16842
  get isNewA11yStructure(): boolean;
16843
+ get renderCssRoot(): string;
16693
16844
  }
16694
16845
  }
16695
16846
  declare module "question_radiogroup" {
@@ -17465,8 +17616,55 @@ declare module "mask/mask_pattern" {
17465
17616
  export function getLiterals(pattern: string): Array<IMaskLiteral>;
17466
17617
  export function getMaskedValueByPattern(src: string, pattern: string | Array<IMaskLiteral>, matchWholeMask: boolean): string;
17467
17618
  export function getUnmaskedValueByPattern(str: string, pattern: string | Array<IMaskLiteral>, matchWholeMask: boolean, skipFixedChar?: boolean): string;
17619
+ /**
17620
+ * A class that describes an input mask of the `"pattern"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17621
+ *
17622
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17623
+ *
17624
+ * ```js
17625
+ * const surveyJson = {
17626
+ * "elements": [{
17627
+ * "name": "textquestion1"
17628
+ * "type": "text",
17629
+ * "maskType": "pattern",
17630
+ * "maskSettings": {
17631
+ * // Specify the properties of a pattern input mask here
17632
+ * }
17633
+ * }]
17634
+ * }
17635
+ * ```
17636
+ *
17637
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17638
+ */
17468
17639
  export class InputMaskPattern extends InputMaskBase {
17469
17640
  private literals;
17641
+ /**
17642
+ * A pattern for the input value.
17643
+ *
17644
+ * If you set the [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType) to `"pattern"`, the mask can contain string literals and the following placeholders:
17645
+ *
17646
+ * - `9` - A digit.
17647
+ * - `a` - An upper- or lower-case letter.
17648
+ * - `#` - A digit or an upper- or lower-case letter.
17649
+ *
17650
+ * Use backslash `\` to escape a character.
17651
+ *
17652
+ * Example: `+1(999)-999-99-99`
17653
+ *
17654
+ * If you set the [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType) to `"datetime"`, the mask can contain separator characters and the following placeholders:
17655
+ *
17656
+ * - `m` - Month number.
17657
+ * - `mm` - Month number, with leading zero for single-digit values.
17658
+ * - `d` - Day of the month.
17659
+ * - `dd` - Day of the month, with leading zero for single-digit values.
17660
+ * - `yy` - Last two digits of the year.
17661
+ * - `yyyy` - A four-digit year.
17662
+ *
17663
+ * Example: `mm/dd/yyyy`
17664
+ *
17665
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17666
+ * @see [settings.maskSettings](https://surveyjs.io/form-library/documentation/api-reference/settings#maskSettings)
17667
+ */
17470
17668
  pattern: string;
17471
17669
  protected updateLiterals(): void;
17472
17670
  protected onPropertyValueChanged(name: string, oldValue: any, newValue: any): void;
@@ -17489,12 +17687,70 @@ declare module "mask/mask_numeric" {
17489
17687
  hasDecimalSeparator?: boolean;
17490
17688
  }
17491
17689
  export function splitString(str: string, reverse?: boolean, n?: number): Array<string>;
17690
+ /**
17691
+ * A class that describes an input mask of the `"numeric"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17692
+ *
17693
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17694
+ *
17695
+ * ```js
17696
+ * const surveyJson = {
17697
+ * "elements": [{
17698
+ * "name": "textquestion1"
17699
+ * "type": "text",
17700
+ * "maskType": "numeric",
17701
+ * "maskSettings": {
17702
+ * // Specify the properties of a numeric input mask here
17703
+ * }
17704
+ * }]
17705
+ * }
17706
+ * ```
17707
+ *
17708
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17709
+ */
17492
17710
  export class InputMaskNumeric extends InputMaskBase {
17711
+ /**
17712
+ * Specifies whether respondents can enter negative values.
17713
+ *
17714
+ * Default value: `true`
17715
+ * @see min
17716
+ * @see max
17717
+ */
17493
17718
  allowNegativeValues: boolean;
17719
+ /**
17720
+ * A symbol used to separate the fractional part from the integer part of a displayed number.
17721
+ *
17722
+ * Default value: `"."`
17723
+ * @see precision
17724
+ * @see thousandsSeparator
17725
+ */
17494
17726
  decimalSeparator: string;
17727
+ /**
17728
+ * Limits how many digits to retain after the decimal point for a displayed number.
17729
+ *
17730
+ * Default value: 2
17731
+ *
17732
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17733
+ * @see decimalSeparator
17734
+ */
17495
17735
  precision: number;
17736
+ /**
17737
+ * A symbol used to separate the digits of a large number into groups of three.
17738
+ *
17739
+ * Default value: `","`
17740
+ * @see decimalSeparator
17741
+ */
17496
17742
  thousandsSeparator: string;
17743
+ /**
17744
+ * A minimum value that respondents can enter.
17745
+ * @see max
17746
+ * @see allowNegativeValues
17747
+ */
17497
17748
  min: number;
17749
+ /**
17750
+ * A maximum value that respondents can enter.
17751
+ * @see min
17752
+ * @see allowNegativeValues
17753
+ */
17498
17754
  max: number;
17499
17755
  private calccaretPosition;
17500
17756
  displayNumber(parsedNumber: INumericalComposition, insertThousandsSeparator?: boolean, matchWholeMask?: boolean): string;
@@ -17520,11 +17776,39 @@ declare module "mask/mask_datetime" {
17520
17776
  maxCount: number;
17521
17777
  }
17522
17778
  export function getDateTimeLexems(pattern: string): Array<IDateTimeMaskLexem>;
17779
+ /**
17780
+ * A class that describes an input mask of the `"datetime"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17781
+ *
17782
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17783
+ *
17784
+ * ```js
17785
+ * const surveyJson = {
17786
+ * "elements": [{
17787
+ * "name": "textquestion1"
17788
+ * "type": "text",
17789
+ * "maskType": "datetime",
17790
+ * "maskSettings": {
17791
+ * // Specify the properties of a date-time input mask here
17792
+ * }
17793
+ * }]
17794
+ * }
17795
+ * ```
17796
+ *
17797
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17798
+ */
17523
17799
  export class InputMaskDateTime extends InputMaskPattern {
17524
17800
  private turnOfTheCentury;
17525
17801
  private lexems;
17526
17802
  private inputDateTimeData;
17803
+ /**
17804
+ * A minimum date and time value that respondents can enter.
17805
+ * @see max
17806
+ */
17527
17807
  min: string;
17808
+ /**
17809
+ * A maximum date and time value that respondents can enter.
17810
+ * @see min
17811
+ */
17528
17812
  max: string;
17529
17813
  getType(): string;
17530
17814
  protected updateLiterals(): void;
@@ -17552,8 +17836,38 @@ declare module "mask/mask_datetime" {
17552
17836
  declare module "mask/mask_currency" {
17553
17837
  import { InputMaskNumeric } from "mask/mask_numeric";
17554
17838
  import { IMaskedInputResult, ITextInputParams } from "mask/mask_utils";
17839
+ /**
17840
+ * A class that describes an input mask of the `"currency"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17841
+ *
17842
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17843
+ *
17844
+ * ```js
17845
+ * const surveyJson = {
17846
+ * "elements": [{
17847
+ * "name": "textquestion1"
17848
+ * "type": "text",
17849
+ * "maskType": "currency",
17850
+ * "maskSettings": {
17851
+ * // Specify the properties of a currency input mask here
17852
+ * }
17853
+ * }]
17854
+ * }
17855
+ * ```
17856
+ *
17857
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17858
+ */
17555
17859
  export class InputMaskCurrency extends InputMaskNumeric {
17860
+ /**
17861
+ * One or several symbols to be displayed before the currency value.
17862
+ *
17863
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17864
+ * @see suffix
17865
+ */
17556
17866
  prefix: string;
17867
+ /**
17868
+ * One or several symbols to be displayed after the currency value.
17869
+ * @see prefix
17870
+ */
17557
17871
  suffix: string;
17558
17872
  getType(): string;
17559
17873
  private wrapText;