survey-react 1.9.134 → 1.9.135

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.min.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.134
2
+ * surveyjs - Survey JavaScript library v1.9.135
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
  */
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;
@@ -1497,6 +1529,7 @@ declare module "defaultCss/defaultV2Css" {
1497
1529
  mainRoot: string;
1498
1530
  root: string;
1499
1531
  withFrame: string;
1532
+ nested: string;
1500
1533
  };
1501
1534
  error: {
1502
1535
  root: string;
@@ -1677,6 +1710,7 @@ declare module "defaultCss/defaultV2Css" {
1677
1710
  mainRoot: string;
1678
1711
  tableWrapper: string;
1679
1712
  root: string;
1713
+ columnsAutoWidth: string;
1680
1714
  noHeader: string;
1681
1715
  rootVerticalAlignTop: string;
1682
1716
  rootVerticalAlignMiddle: string;
@@ -1705,6 +1739,7 @@ declare module "defaultCss/defaultV2Css" {
1705
1739
  mainRoot: string;
1706
1740
  rootScroll: string;
1707
1741
  root: string;
1742
+ columnsAutoWidth: string;
1708
1743
  noHeader: string;
1709
1744
  hasFooter: string;
1710
1745
  rootVerticalAlignTop: string;
@@ -1747,6 +1782,7 @@ declare module "defaultCss/defaultV2Css" {
1747
1782
  rootScroll: string;
1748
1783
  empty: string;
1749
1784
  root: string;
1785
+ columnsAutoWidth: string;
1750
1786
  noHeader: string;
1751
1787
  hasFooter: string;
1752
1788
  tableWrapper: string;
@@ -4095,6 +4131,7 @@ declare module "question_baseselect" {
4095
4131
  protected updateSelectedItemValues(): void;
4096
4132
  private setCustomValuesIntoItems;
4097
4133
  protected hasUnknownValue(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
4134
+ protected hasUnknownValueItem(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
4098
4135
  protected isValueDisabled(val: any): boolean;
4099
4136
  /**
4100
4137
  * If the clearIncorrectValuesCallback is set, it is used to clear incorrect values instead of default behaviour.
@@ -7138,9 +7175,18 @@ declare module "survey-events-api" {
7138
7175
  */
7139
7176
  input: HTMLInputElement;
7140
7177
  /**
7141
- * A question, panel, page, or survey for which this event is raised.
7178
+ * A survey element (question, panel, page, or survey) or a theme JSON schema for which this event is raised.
7142
7179
  */
7143
7180
  element: Base;
7181
+ /**
7182
+ * The type of the element passed as the `options.element` parameter.\
7183
+ * Possible values: `"theme"`, `"header"`, or any value returned from the [`getType()`](https://surveyjs.io/form-library/documentation/api-reference/question#getType) method.
7184
+ */
7185
+ elementType: String;
7186
+ /**
7187
+ * The name of the survey element property or theme property for which files are being selected.
7188
+ */
7189
+ propertyName: String;
7144
7190
  /**
7145
7191
  * 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
7192
  */
@@ -7349,6 +7395,24 @@ declare module "survey-events-api" {
7349
7395
  */
7350
7396
  allow: boolean;
7351
7397
  }
7398
+ export interface MatrixDetailPanelVisibleChangedEvent extends MatrixDropdownQuestionEventMixin {
7399
+ /**
7400
+ * A matrix row to which the detail section belongs.
7401
+ */
7402
+ row: MatrixDropdownRowModelBase;
7403
+ /**
7404
+ * A zero-based row index.
7405
+ */
7406
+ rowIndex: number;
7407
+ /**
7408
+ * A [PanelModel](https://surveyjs.io/form-library/documentation/panelmodel) that represents the detail section.
7409
+ */
7410
+ detailPanel: PanelModel;
7411
+ /**
7412
+ * Indicates whether the detail section is visible now.
7413
+ */
7414
+ visible: boolean;
7415
+ }
7352
7416
  export interface MatrixCellCreatingBaseEvent extends MatrixDropdownQuestionEventMixin {
7353
7417
  /**
7354
7418
  * A [matrix column](https://surveyjs.io/form-library/documentation/api-reference/multi-select-matrix-column-values) to which the cell belongs.
@@ -7847,7 +7911,7 @@ declare module "surveytimer" {
7847
7911
  export var surveyTimerFunctions: {
7848
7912
  setTimeout: (func: () => any) => number;
7849
7913
  clearTimeout: (timerId: number) => void;
7850
- safeTimeOut: (func: () => any, delay: number) => number;
7914
+ safeTimeOut: (func: () => any, delay: number) => number | any;
7851
7915
  };
7852
7916
  export class SurveyTimer {
7853
7917
  private static instanceValue;
@@ -8089,7 +8153,20 @@ declare module "mask/mask_utils" {
8089
8153
  declare module "mask/mask_base" {
8090
8154
  import { Base } from "base";
8091
8155
  import { IInputMask, IMaskedInputResult, ITextInputParams } from "mask/mask_utils";
8156
+ /**
8157
+ * A base class for classes that implement input masks:
8158
+ *
8159
+ * - [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/inputmasknumeric)
8160
+ * - [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/inputmaskcurrency)
8161
+ * - [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/inputmaskdatetime)
8162
+ * - [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/inputmaskpattern)
8163
+ */
8092
8164
  export class InputMaskBase extends Base implements IInputMask {
8165
+ /**
8166
+ * Specifies whether to store the question value with an applied mask in survey results.
8167
+ *
8168
+ * Default value: `false`
8169
+ */
8093
8170
  saveMaskedValue: boolean;
8094
8171
  getType(): string;
8095
8172
  setData(json: any): void;
@@ -8109,7 +8186,6 @@ declare module "mask/input_element_adapter" {
8109
8186
  constructor(inputMaskInstance: InputMaskBase, inputElement: HTMLInputElement, value?: string);
8110
8187
  inputMaskInstancePropertyChangedHandler: (sender: any, options: any) => void;
8111
8188
  beforeInputHandler: (event: any) => void;
8112
- blurInputHandler: (event: any) => void;
8113
8189
  createArgs(event: any): ITextInputParams;
8114
8190
  addInputEventListener(): void;
8115
8191
  removeInputEventListener(): void;
@@ -8138,8 +8214,36 @@ declare module "question_text" {
8138
8214
  private deleteMaskAdapter;
8139
8215
  private updateMaskAdapter;
8140
8216
  onSetMaskType(newValue: string): void;
8217
+ /**
8218
+ * Specifies the type of a mask applied to the input.
8219
+ *
8220
+ * Possible values:
8221
+ *
8222
+ * - `"none"` (default)
8223
+ * - `"numeric"`
8224
+ * - `"currency"`
8225
+ * - `"datetime"`
8226
+ * - `"pattern"`
8227
+ *
8228
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
8229
+ * @see maskSettings
8230
+ */
8141
8231
  maskType: string;
8142
8232
  get maskTypeIsEmpty(): boolean;
8233
+ /**
8234
+ * An object with properties that configure the mask applied to the input.
8235
+ *
8236
+ * 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:
8237
+ *
8238
+ * | `maskType` | Class |
8239
+ * | ---------- | ----- |
8240
+ * | `"numeric"` | [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/api-reference/inputmasknumeric) |
8241
+ * | `"currency"` | [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskcurrency) |
8242
+ * | `"datetime"` | [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskdatetime) |
8243
+ * | `"pattern"` | [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern) |
8244
+ *
8245
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
8246
+ */
8143
8247
  get maskSettings(): InputMaskBase;
8144
8248
  set maskSettings(val: InputMaskBase);
8145
8249
  private setNewMaskSettingsProperty;
@@ -8220,9 +8324,12 @@ declare module "question_text" {
8220
8324
  * @see max
8221
8325
  */
8222
8326
  get isMinMaxType(): boolean;
8327
+ _inputValue: string;
8223
8328
  get maskInstance(): IInputMask;
8224
8329
  get inputValue(): string;
8225
8330
  set inputValue(val: string);
8331
+ protected onChangeQuestionValue(newValue: any): void;
8332
+ private updateInputValue;
8226
8333
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
8227
8334
  protected canSetValueToSurvey(): boolean;
8228
8335
  protected convertFuncValuetoQuestionValue(val: any): any;
@@ -8748,7 +8855,7 @@ declare module "survey" {
8748
8855
  import { ActionContainer } from "actions/container";
8749
8856
  import { QuestionPanelDynamicModel } from "question_paneldynamic";
8750
8857
  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";
8858
+ 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
8859
  import { QuestionMatrixDropdownModelBase } from "question_matrixdropdownbase";
8753
8860
  import { QuestionMatrixDynamicModel } from "question_matrixdynamic";
8754
8861
  import { QuestionFileModel } from "question_file";
@@ -8893,7 +9000,7 @@ declare module "survey" {
8893
9000
  * 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
9001
  */
8895
9002
  onQuestionVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
8896
- onVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
9003
+ onVisibleChanged: EventBase<SurveyModel, any>;
8897
9004
  /**
8898
9005
  * An event that is raised after page visibility is changed.
8899
9006
  *
@@ -8903,7 +9010,7 @@ declare module "survey" {
8903
9010
  */
8904
9011
  onPageVisibleChanged: EventBase<SurveyModel, PageVisibleChangedEvent>;
8905
9012
  /**
8906
- * An event that is raised after page visibility is changed.
9013
+ * An event that is raised after panel visibility is changed.
8907
9014
  *
8908
9015
  * For information on event handler parameters, refer to descriptions within the interface.
8909
9016
  *
@@ -9298,6 +9405,10 @@ declare module "survey" {
9298
9405
  * This event is obsolete. Use the [`onMatrixRenderRemoveButton`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixRenderRemoveButton) event instead.
9299
9406
  */
9300
9407
  onMatrixAllowRemoveRow: EventBase<SurveyModel, MatrixAllowRemoveRowEvent>;
9408
+ /**
9409
+ * 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.
9410
+ */
9411
+ onMatrixDetailPanelVisibleChanged: EventBase<SurveyModel, MatrixDetailPanelVisibleChangedEvent>;
9301
9412
  /**
9302
9413
  * 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
9414
  * @see onAfterRenderMatrixCell
@@ -9502,13 +9613,12 @@ declare module "survey" {
9502
9613
  /**
9503
9614
  * Specifies whether to enable lazy rendering.
9504
9615
  *
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.
9616
+ * 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
9617
  *
9507
9618
  * Default value: `false`
9508
9619
  *
9509
9620
  * [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.
9621
+ * @see [settings.lazyRender](https://surveyjs.io/form-library/documentation/api-reference/settings#lazyRender)
9512
9622
  */
9513
9623
  get lazyRendering(): boolean;
9514
9624
  set lazyRendering(val: boolean);
@@ -10165,7 +10275,7 @@ declare module "survey" {
10165
10275
  * - `"belowHeader"` - Displays the progress bar below the survey header.
10166
10276
  * - `"bottom"` - Displays the progress bar below survey content.
10167
10277
  * - `"topBottom"` - Displays the progress bar above and below survey content.
10168
- * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
10278
+ * - `"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
10279
  * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
10170
10280
  * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
10171
10281
  *
@@ -10882,6 +10992,7 @@ declare module "survey" {
10882
10992
  matrixRowRemoved(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): void;
10883
10993
  matrixRowRemoving(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): boolean;
10884
10994
  matrixAllowRemoveRow(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): boolean;
10995
+ matrixDetailPanelVisibleChanged(question: QuestionMatrixDropdownModelBase, rowIndex: number, row: any, visible: boolean): void;
10885
10996
  matrixCellCreating(question: QuestionMatrixDropdownModelBase, options: any): void;
10886
10997
  matrixCellCreated(question: QuestionMatrixDropdownModelBase, options: any): void;
10887
10998
  matrixAfterCellRender(question: QuestionMatrixDropdownModelBase, options: any): void;
@@ -10914,8 +11025,10 @@ declare module "survey" {
10914
11025
  * @see onUploadFile
10915
11026
  */
10916
11027
  chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
10917
- element: ISurveyElement;
11028
+ element: Base;
10918
11029
  item?: any;
11030
+ elementType?: string;
11031
+ propertyName?: string;
10919
11032
  }): void;
10920
11033
  /**
10921
11034
  * Uploads files to a server.
@@ -13109,6 +13222,7 @@ declare module "martixBase" {
13109
13222
  protected clearInvisibleValuesInRows(): void;
13110
13223
  private restoreNewVisibleRowsValues;
13111
13224
  needResponsiveWidth(): boolean;
13225
+ protected get columnsAutoWidth(): boolean;
13112
13226
  getTableCss(): string;
13113
13227
  /**
13114
13228
  * Aligns matrix cell content in the vertical direction.
@@ -13796,6 +13910,7 @@ declare module "base-interfaces" {
13796
13910
  matrixRowRemoved(question: IQuestion, rowIndex: number, row: any): any;
13797
13911
  matrixRowRemoving(question: IQuestion, rowIndex: number, row: any): boolean;
13798
13912
  matrixAllowRemoveRow(question: IQuestion, rowIndex: number, row: any): boolean;
13913
+ matrixDetailPanelVisibleChanged(question: IQuestion, rowIndex: number, row: any, visible: boolean): void;
13799
13914
  matrixCellCreating(question: IQuestion, options: any): any;
13800
13915
  matrixCellCreated(question: IQuestion, options: any): any;
13801
13916
  matrixAfterCellRender(question: IQuestion, options: any): any;
@@ -13818,8 +13933,10 @@ declare module "base-interfaces" {
13818
13933
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
13819
13934
  processPopupVisiblityChanged(question: IQuestion, popupModel: PopupModel, visible: boolean): void;
13820
13935
  chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
13821
- element: ISurveyElement;
13936
+ element: Base;
13822
13937
  item?: any;
13938
+ elementType?: string;
13939
+ propertyName?: string;
13823
13940
  }): void;
13824
13941
  }
13825
13942
  export interface ISurveyImpl {
@@ -14933,7 +15050,7 @@ declare module "settings" {
14933
15050
  * Nested properties:
14934
15051
  *
14935
15052
  * - `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`.
15053
+ * 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
15054
  *
14938
15055
  * - `defaultLocaleName`: `string`\
14939
15056
  * A property key that stores a translation for the default locale. Default value: `"default"`.
@@ -15059,7 +15176,8 @@ declare module "settings" {
15059
15176
  * - `enabled`: `boolean`\
15060
15177
  * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
15061
15178
  *
15062
- * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
15179
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
15180
+ * @see [SurveyModel.lazyRendering](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#lazyRendering)
15063
15181
  */
15064
15182
  lazyRender: {
15065
15183
  enabled: boolean;
@@ -15441,6 +15559,20 @@ declare module "settings" {
15441
15559
  dataList: string[];
15442
15560
  };
15443
15561
  legacyProgressBarView: boolean;
15562
+ /**
15563
+ * An object with properties that configure input masks.
15564
+ *
15565
+ * Nested properties:
15566
+ *
15567
+ * - `patternPlaceholderChar`: `string`\
15568
+ * 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: `"_"`.
15569
+ *
15570
+ * - `patternEscapeChar`: `string`\
15571
+ * A symbol used to insert literal representations of special characters in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"\\"`.
15572
+ *
15573
+ * - `patternDefinitions`: `<{ [key: string]: RegExp }>`\
15574
+ * 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]/ }`.
15575
+ */
15444
15576
  maskSettings: {
15445
15577
  patternPlaceholderChar: string;
15446
15578
  patternEscapeChar: string;
@@ -15532,6 +15664,7 @@ declare module "dropdownListModel" {
15532
15664
  private updatePopupFocusFirstInputSelector;
15533
15665
  protected createPopup(): void;
15534
15666
  private setFilterStringToListModel;
15667
+ private setTextWrapEnabled;
15535
15668
  protected popupRecalculatePosition(isResetHeight: boolean): void;
15536
15669
  protected onHidePopup(): void;
15537
15670
  protected getAvailableItems(): Array<ItemValue>;
@@ -15698,6 +15831,14 @@ declare module "question_dropdown" {
15698
15831
  * @see [SurveyModel.onChoicesSearch](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onChoicesSearch)
15699
15832
  */
15700
15833
  searchMode: "contains" | "startsWith";
15834
+ /**
15835
+ * Specifies whether to wrap long texts in choice options onto a new line.
15836
+ *
15837
+ * Default value: `true`
15838
+ *
15839
+ * Disable this property if you want the texts to be truncated with ellipsis.
15840
+ */
15841
+ textWrapEnabled: boolean;
15701
15842
  inputHasValue: boolean;
15702
15843
  readOnlyText: string;
15703
15844
  /**
@@ -16258,6 +16399,7 @@ declare module "question_tagbox" {
16258
16399
  * Specifies whether to close the drop-down menu after a user selects a value.
16259
16400
  */
16260
16401
  closeOnSelect: number;
16402
+ textWrapEnabled: boolean;
16261
16403
  /**
16262
16404
  * A text displayed in the input field when it doesn't have a value.
16263
16405
  */
@@ -16690,6 +16832,7 @@ declare module "question_html" {
16690
16832
  get processedHtml(): string;
16691
16833
  private processHtml;
16692
16834
  get isNewA11yStructure(): boolean;
16835
+ get renderCssRoot(): string;
16693
16836
  }
16694
16837
  }
16695
16838
  declare module "question_radiogroup" {
@@ -17465,8 +17608,55 @@ declare module "mask/mask_pattern" {
17465
17608
  export function getLiterals(pattern: string): Array<IMaskLiteral>;
17466
17609
  export function getMaskedValueByPattern(src: string, pattern: string | Array<IMaskLiteral>, matchWholeMask: boolean): string;
17467
17610
  export function getUnmaskedValueByPattern(str: string, pattern: string | Array<IMaskLiteral>, matchWholeMask: boolean, skipFixedChar?: boolean): string;
17611
+ /**
17612
+ * A class that describes an input mask of the `"pattern"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17613
+ *
17614
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17615
+ *
17616
+ * ```js
17617
+ * const surveyJson = {
17618
+ * "elements": [{
17619
+ * "name": "textquestion1"
17620
+ * "type": "text",
17621
+ * "maskType": "pattern",
17622
+ * "maskSettings": {
17623
+ * // Specify the properties of a pattern input mask here
17624
+ * }
17625
+ * }]
17626
+ * }
17627
+ * ```
17628
+ *
17629
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17630
+ */
17468
17631
  export class InputMaskPattern extends InputMaskBase {
17469
17632
  private literals;
17633
+ /**
17634
+ * A pattern for the input value.
17635
+ *
17636
+ * 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:
17637
+ *
17638
+ * - `9` - A digit.
17639
+ * - `a` - An upper- or lower-case letter.
17640
+ * - `#` - A digit or an upper- or lower-case letter.
17641
+ *
17642
+ * Use backslash `\` to escape a character.
17643
+ *
17644
+ * Example: `+1(999)-999-99-99`
17645
+ *
17646
+ * 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:
17647
+ *
17648
+ * - `m` - Month number.
17649
+ * - `mm` - Month number, with leading zero for single-digit values.
17650
+ * - `d` - Day of the month.
17651
+ * - `dd` - Day of the month, with leading zero for single-digit values.
17652
+ * - `yy` - Last two digits of the year.
17653
+ * - `yyyy` - A four-digit year.
17654
+ *
17655
+ * Example: `mm/dd/yyyy`
17656
+ *
17657
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17658
+ * @see [settings.maskSettings](https://surveyjs.io/form-library/documentation/api-reference/settings#maskSettings)
17659
+ */
17470
17660
  pattern: string;
17471
17661
  protected updateLiterals(): void;
17472
17662
  protected onPropertyValueChanged(name: string, oldValue: any, newValue: any): void;
@@ -17489,12 +17679,70 @@ declare module "mask/mask_numeric" {
17489
17679
  hasDecimalSeparator?: boolean;
17490
17680
  }
17491
17681
  export function splitString(str: string, reverse?: boolean, n?: number): Array<string>;
17682
+ /**
17683
+ * A class that describes an input mask of the `"numeric"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17684
+ *
17685
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17686
+ *
17687
+ * ```js
17688
+ * const surveyJson = {
17689
+ * "elements": [{
17690
+ * "name": "textquestion1"
17691
+ * "type": "text",
17692
+ * "maskType": "numeric",
17693
+ * "maskSettings": {
17694
+ * // Specify the properties of a numeric input mask here
17695
+ * }
17696
+ * }]
17697
+ * }
17698
+ * ```
17699
+ *
17700
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17701
+ */
17492
17702
  export class InputMaskNumeric extends InputMaskBase {
17703
+ /**
17704
+ * Specifies whether respondents can enter negative values.
17705
+ *
17706
+ * Default value: `true`
17707
+ * @see min
17708
+ * @see max
17709
+ */
17493
17710
  allowNegativeValues: boolean;
17711
+ /**
17712
+ * A symbol used to separate the fractional part from the integer part of a displayed number.
17713
+ *
17714
+ * Default value: `"."`
17715
+ * @see precision
17716
+ * @see thousandsSeparator
17717
+ */
17494
17718
  decimalSeparator: string;
17719
+ /**
17720
+ * Limits how many digits to retain after the decimal point for a displayed number.
17721
+ *
17722
+ * Default value: 2
17723
+ *
17724
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17725
+ * @see decimalSeparator
17726
+ */
17495
17727
  precision: number;
17728
+ /**
17729
+ * A symbol used to separate the digits of a large number into groups of three.
17730
+ *
17731
+ * Default value: `","`
17732
+ * @see decimalSeparator
17733
+ */
17496
17734
  thousandsSeparator: string;
17735
+ /**
17736
+ * A minimum value that respondents can enter.
17737
+ * @see max
17738
+ * @see allowNegativeValues
17739
+ */
17497
17740
  min: number;
17741
+ /**
17742
+ * A maximum value that respondents can enter.
17743
+ * @see min
17744
+ * @see allowNegativeValues
17745
+ */
17498
17746
  max: number;
17499
17747
  private calccaretPosition;
17500
17748
  displayNumber(parsedNumber: INumericalComposition, insertThousandsSeparator?: boolean, matchWholeMask?: boolean): string;
@@ -17520,11 +17768,39 @@ declare module "mask/mask_datetime" {
17520
17768
  maxCount: number;
17521
17769
  }
17522
17770
  export function getDateTimeLexems(pattern: string): Array<IDateTimeMaskLexem>;
17771
+ /**
17772
+ * A class that describes an input mask of the `"datetime"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17773
+ *
17774
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17775
+ *
17776
+ * ```js
17777
+ * const surveyJson = {
17778
+ * "elements": [{
17779
+ * "name": "textquestion1"
17780
+ * "type": "text",
17781
+ * "maskType": "datetime",
17782
+ * "maskSettings": {
17783
+ * // Specify the properties of a date-time input mask here
17784
+ * }
17785
+ * }]
17786
+ * }
17787
+ * ```
17788
+ *
17789
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17790
+ */
17523
17791
  export class InputMaskDateTime extends InputMaskPattern {
17524
17792
  private turnOfTheCentury;
17525
17793
  private lexems;
17526
17794
  private inputDateTimeData;
17795
+ /**
17796
+ * A minimum date and time value that respondents can enter.
17797
+ * @see max
17798
+ */
17527
17799
  min: string;
17800
+ /**
17801
+ * A maximum date and time value that respondents can enter.
17802
+ * @see min
17803
+ */
17528
17804
  max: string;
17529
17805
  getType(): string;
17530
17806
  protected updateLiterals(): void;
@@ -17552,8 +17828,38 @@ declare module "mask/mask_datetime" {
17552
17828
  declare module "mask/mask_currency" {
17553
17829
  import { InputMaskNumeric } from "mask/mask_numeric";
17554
17830
  import { IMaskedInputResult, ITextInputParams } from "mask/mask_utils";
17831
+ /**
17832
+ * A class that describes an input mask of the `"currency"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
17833
+ *
17834
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
17835
+ *
17836
+ * ```js
17837
+ * const surveyJson = {
17838
+ * "elements": [{
17839
+ * "name": "textquestion1"
17840
+ * "type": "text",
17841
+ * "maskType": "currency",
17842
+ * "maskSettings": {
17843
+ * // Specify the properties of a currency input mask here
17844
+ * }
17845
+ * }]
17846
+ * }
17847
+ * ```
17848
+ *
17849
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17850
+ */
17555
17851
  export class InputMaskCurrency extends InputMaskNumeric {
17852
+ /**
17853
+ * One or several symbols to be displayed before the currency value.
17854
+ *
17855
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
17856
+ * @see suffix
17857
+ */
17556
17858
  prefix: string;
17859
+ /**
17860
+ * One or several symbols to be displayed after the currency value.
17861
+ * @see prefix
17862
+ */
17557
17863
  suffix: string;
17558
17864
  getType(): string;
17559
17865
  private wrapText;