survey-react 1.9.104 → 1.9.105

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
@@ -17,7 +17,7 @@ declare module "helpers" {
17
17
  static getUnbindValue(value: any): any;
18
18
  static createCopy(obj: any): any;
19
19
  static isConvertibleToNumber(value: any): boolean;
20
- static isValueObject(val: any): boolean;
20
+ static isValueObject(val: any, excludeArray?: boolean): boolean;
21
21
  static isNumber(value: any): boolean;
22
22
  static getNumber(value: any): number;
23
23
  private static prepareStringToNumber;
@@ -1156,6 +1156,7 @@ declare module "list" {
1156
1156
  private onFilterStringChanged;
1157
1157
  private scrollToItem;
1158
1158
  constructor(items: Array<IAction>, onSelectionChanged: (item: T, ...params: any[]) => void, allowSelection: boolean, selectedItem?: IAction, onFilterStringChangedCallback?: (text: string) => void, elementId?: string);
1159
+ setOnFilterStringChangedCallback(callback: (text: string) => void): void;
1159
1160
  setItems(items: Array<IAction>, sortByVisibleIndex?: boolean): void;
1160
1161
  protected onSet(): void;
1161
1162
  protected getDefaultCssClasses(): {
@@ -1327,7 +1328,7 @@ declare module "actions/action" {
1327
1328
  * The action item's icon size in pixels.
1328
1329
  * @see iconName
1329
1330
  */
1330
- iconSize?: number;
1331
+ iconSize?: number | string;
1331
1332
  /**
1332
1333
  * The action item's location in a matrix question's row.
1333
1334
  *
@@ -2125,6 +2126,8 @@ declare module "defaultCss/defaultV2Css" {
2125
2126
  small: string;
2126
2127
  controls: string;
2127
2128
  placeholder: string;
2129
+ canvas: string;
2130
+ backgroundImage: string;
2128
2131
  clearButton: string;
2129
2132
  clearButtonIconId: string;
2130
2133
  };
@@ -2285,6 +2288,7 @@ declare module "trigger" {
2285
2288
  protected isExecutingOnNextPage: boolean;
2286
2289
  checkExpression(isOnNextPage: boolean, isOnComplete: boolean, keys: any, values: HashTable<any>, properties?: HashTable<any>): void;
2287
2290
  check(value: any): void;
2291
+ get requireValidQuestion(): boolean;
2288
2292
  private perform;
2289
2293
  private triggerResult;
2290
2294
  protected onSuccess(values: HashTable<any>, properties: HashTable<any>): void;
@@ -2340,6 +2344,7 @@ declare module "trigger" {
2340
2344
  export class SurveyTriggerComplete extends SurveyTrigger {
2341
2345
  constructor();
2342
2346
  getType(): string;
2347
+ get requireValidQuestion(): boolean;
2343
2348
  protected isRealExecution(): boolean;
2344
2349
  protected onSuccess(values: HashTable<any>, properties: HashTable<any>): void;
2345
2350
  protected onFailure(): void;
@@ -2366,6 +2371,7 @@ declare module "trigger" {
2366
2371
  export class SurveyTriggerSkip extends SurveyTrigger {
2367
2372
  constructor();
2368
2373
  getType(): string;
2374
+ get requireValidQuestion(): boolean;
2369
2375
  get gotoName(): string;
2370
2376
  set gotoName(val: string);
2371
2377
  protected canBeExecuted(isOnNextPage: boolean): boolean;
@@ -2650,7 +2656,7 @@ declare module "panel" {
2650
2656
  endLoadingFromJson(): void;
2651
2657
  showTitle: boolean;
2652
2658
  get hasTitle(): boolean;
2653
- delete(): void;
2659
+ delete(doDispose?: boolean): void;
2654
2660
  protected removeFromParent(): void;
2655
2661
  protected canShowTitle(): boolean;
2656
2662
  showDescription: boolean;
@@ -3126,7 +3132,8 @@ declare module "panel" {
3126
3132
  }
3127
3133
  }
3128
3134
  declare module "question_file" {
3129
- import { Question } from "question";
3135
+ import { IPlainDataOptions } from "base-interfaces";
3136
+ import { IQuestionPlainData, Question } from "question";
3130
3137
  import { EventBase } from "base";
3131
3138
  import { SurveyError } from "survey-error";
3132
3139
  import { ActionContainer } from "actions/container";
@@ -3248,6 +3255,8 @@ declare module "question_file" {
3248
3255
  loadingFileTitle: string;
3249
3256
  chooseFileTitle: string;
3250
3257
  dragAreaPlaceholder: string;
3258
+ renderedPlaceholderValue: string;
3259
+ get renderedPlaceholder(): string;
3251
3260
  get inputTitle(): string;
3252
3261
  get chooseButtonText(): string;
3253
3262
  clear(doneCallback?: () => void): void;
@@ -3272,12 +3281,7 @@ declare module "question_file" {
3272
3281
  protected stateChanged(state: string): void;
3273
3282
  private allFilesOk;
3274
3283
  private isFileImage;
3275
- getPlainData(options?: {
3276
- includeEmpty?: boolean;
3277
- calculations?: Array<{
3278
- propertyName: string;
3279
- }>;
3280
- }): import("question").IQuestionPlainData;
3284
+ getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
3281
3285
  getChooseFileCss(): string;
3282
3286
  getReadOnlyFileCss(): string;
3283
3287
  get fileRootCss(): string;
@@ -3480,8 +3484,8 @@ declare module "choicesRestful" {
3480
3484
  }
3481
3485
  declare module "question_baseselect" {
3482
3486
  import { SurveyError } from "survey-error";
3483
- import { ISurveyImpl, ISurvey, ISurveyData } from "base-interfaces";
3484
- import { Question } from "question";
3487
+ import { ISurveyImpl, ISurvey, ISurveyData, IPlainDataOptions } from "base-interfaces";
3488
+ import { IQuestionPlainData, Question } from "question";
3485
3489
  import { ItemValue } from "itemvalue";
3486
3490
  import { ChoicesRestful } from "choicesRestful";
3487
3491
  import { LocalizableString } from "localizablestring";
@@ -3799,16 +3803,10 @@ declare module "question_baseselect" {
3799
3803
  protected canShowOptionItem(item: ItemValue, isAddAll: boolean, hasItem: boolean): boolean;
3800
3804
  isItemInList(item: ItemValue): boolean;
3801
3805
  protected get isAddDefaultItems(): boolean;
3802
- getPlainData(options?: {
3803
- includeEmpty?: boolean;
3804
- includeQuestionTypes?: boolean;
3805
- calculations?: Array<{
3806
- propertyName: string;
3807
- }>;
3808
- }): import("question").IQuestionPlainData;
3806
+ getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
3809
3807
  protected getDisplayValueCore(keysAsText: boolean, value: any): any;
3810
3808
  protected getDisplayValueEmpty(): string;
3811
- protected getChoicesDisplayValue(items: ItemValue[], val: any): any;
3809
+ private getChoicesDisplayValue;
3812
3810
  protected getDisplayArrayValue(keysAsText: boolean, value: any, onGetValueCallback?: (index: number) => any): string;
3813
3811
  private getItemDisplayValue;
3814
3812
  private getFilteredChoices;
@@ -4234,6 +4232,7 @@ declare module "question_matrixdropdowncolumn" {
4234
4232
  private indexValue;
4235
4233
  private _isVisible;
4236
4234
  private _hasVisibleCell;
4235
+ private _visiblechoices;
4237
4236
  constructor(name: string, title?: string);
4238
4237
  getOriginalObj(): Base;
4239
4238
  getClassNameProperty(): string;
@@ -4256,6 +4255,10 @@ declare module "question_matrixdropdowncolumn" {
4256
4255
  setIsVisible(newVal: boolean): void;
4257
4256
  get hasVisibleCell(): boolean;
4258
4257
  set hasVisibleCell(newVal: boolean);
4258
+ getVisibleMultipleChoices(): Array<ItemValue>;
4259
+ get getVisibleChoicesInCell(): Array<any>;
4260
+ setVisibleChoicesInCell(val: Array<any>): void;
4261
+ get isFilteredMultipleColumns(): boolean;
4259
4262
  get name(): string;
4260
4263
  set name(val: string);
4261
4264
  get title(): string;
@@ -4364,7 +4367,7 @@ declare module "dragdrop/dom-adapter" {
4364
4367
  }
4365
4368
  export class DragDropDOMAdapter implements IDragDropDOMAdapter {
4366
4369
  private dd;
4367
- private longTap?;
4370
+ private longTap;
4368
4371
  static PreventScrolling: boolean;
4369
4372
  private timeoutID;
4370
4373
  private startX;
@@ -4520,6 +4523,7 @@ declare module "question_matrixdropdownrendered" {
4520
4523
  get headers(): string;
4521
4524
  getTitle(): string;
4522
4525
  calculateFinalClassName(matrixCssClasses: any): string;
4526
+ focusIn(): void;
4523
4527
  }
4524
4528
  export class QuestionMatrixDropdownRenderedRow extends Base {
4525
4529
  cssClasses: any;
@@ -4956,9 +4960,9 @@ declare module "textPreProcessor" {
4956
4960
  }
4957
4961
  declare module "question_paneldynamic" {
4958
4962
  import { HashTable } from "helpers";
4959
- import { IElement, IQuestion, IPanel, ISurveyData, ISurvey, ISurveyImpl, ITextProcessor, IProgressInfo } from "base-interfaces";
4963
+ import { IElement, IQuestion, IPanel, ISurveyData, ISurvey, ISurveyImpl, ITextProcessor, IProgressInfo, IPlainDataOptions } from "base-interfaces";
4960
4964
  import { LocalizableString } from "localizablestring";
4961
- import { Question, IConditionObject } from "question";
4965
+ import { Question, IConditionObject, IQuestionPlainData } from "question";
4962
4966
  import { PanelModel } from "panel";
4963
4967
  import { SurveyError } from "survey-error";
4964
4968
  import { ActionContainer } from "actions/container";
@@ -5020,7 +5024,9 @@ declare module "question_paneldynamic" {
5020
5024
  panelCountChangedCallback: () => void;
5021
5025
  currentIndexChangedCallback: () => void;
5022
5026
  constructor(name: string);
5027
+ get isCompositeQuestion(): boolean;
5023
5028
  get hasSingleInput(): boolean;
5029
+ get isContainer(): boolean;
5024
5030
  getFirstQuestionToFocus(withError: boolean): Question;
5025
5031
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
5026
5032
  private assignOnPropertyChangedToTemplate;
@@ -5028,7 +5034,6 @@ declare module "question_paneldynamic" {
5028
5034
  private onTemplateElementPropertyChanged;
5029
5035
  private get useTemplatePanel();
5030
5036
  getType(): string;
5031
- get isCompositeQuestion(): boolean;
5032
5037
  clearOnDeletingContainer(): void;
5033
5038
  get isAllowTitleLeft(): boolean;
5034
5039
  removeElement(element: IElement): boolean;
@@ -5526,12 +5531,7 @@ declare module "question_paneldynamic" {
5526
5531
  private static maxCheckCount;
5527
5532
  setPanelItemData(item: ISurveyData, name: string, val: any): void;
5528
5533
  getRootData(): ISurveyData;
5529
- getPlainData(options?: {
5530
- includeEmpty?: boolean;
5531
- calculations?: Array<{
5532
- propertyName: string;
5533
- }>;
5534
- }): import("question").IQuestionPlainData;
5534
+ getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
5535
5535
  updateElementCss(reNew?: boolean): void;
5536
5536
  get progressText(): string;
5537
5537
  get progress(): string;
@@ -5977,23 +5977,23 @@ declare module "survey-events-api" {
5977
5977
  }
5978
5978
  export interface ProgressTextEvent {
5979
5979
  /**
5980
- * a number of required questions that have input(s) and an user has answered
5980
+ * The number of questions with input fields. [Image](https://surveyjs.io/form-library/examples/add-image-and-video-to-survey/), [HTML](https://surveyjs.io/form-library/examples/questiontype-html/), and [Expression](https://surveyjs.io/form-library/examples/questiontype-expression/) questions are not counted.
5981
5981
  */
5982
- requiredAnsweredQuestionCount: number;
5982
+ questionCount: number;
5983
5983
  /**
5984
- * a number of required questions that have input(s). We do not count html or expression questions
5984
+ * The number of answered questions.
5985
5985
  */
5986
- requiredQuestionCount: number;
5986
+ answeredQuestionCount: number;
5987
5987
  /**
5988
- * a number of questions that have input(s) and an user has answered
5988
+ * The number of questions marked as required.
5989
5989
  */
5990
- answeredQuestionCount: number;
5990
+ requiredQuestionCount: number;
5991
5991
  /**
5992
- * a number of questions that have input(s). We do not count html or expression questions
5992
+ * The number of answered questions marked as required.
5993
5993
  */
5994
- questionCount: number;
5994
+ requiredAnsweredQuestionCount: number;
5995
5995
  /**
5996
- * a progress text, that SurveyJS will render in progress bar
5996
+ * Progress text rendered in the [progress bar](#showProgressBar). You can change this parameter's value.
5997
5997
  */
5998
5998
  text: string;
5999
5999
  }
@@ -6934,7 +6934,7 @@ declare module "question_textbase" {
6934
6934
  localeChanged(): void;
6935
6935
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
6936
6936
  protected calcRenderedPlaceholder(): void;
6937
- protected hasPlaceHolder(): boolean;
6937
+ protected hasPlaceholder(): boolean;
6938
6938
  protected setNewValue(newValue: any): void;
6939
6939
  protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
6940
6940
  disableNativeUndoRedo: boolean;
@@ -7071,7 +7071,7 @@ declare module "question_text" {
7071
7071
  protected canRunValidators(isOnValueChanged: boolean): boolean;
7072
7072
  protected setNewValue(newValue: any): void;
7073
7073
  protected correctValueType(newValue: any): any;
7074
- protected hasPlaceHolder(): boolean;
7074
+ protected hasPlaceholder(): boolean;
7075
7075
  isReadOnlyRenderDiv(): boolean;
7076
7076
  get inputStyle(): any;
7077
7077
  private _isWaitingForEnter;
@@ -7130,6 +7130,7 @@ declare module "question_multipletext" {
7130
7130
  localeChanged(): void;
7131
7131
  locStrsChanged(): void;
7132
7132
  setData(data: IMultipleTextData): void;
7133
+ focusIn(): void;
7133
7134
  /**
7134
7135
  * 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.
7135
7136
  */
@@ -7221,6 +7222,7 @@ declare module "question_multipletext" {
7221
7222
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
7222
7223
  get isAllowTitleLeft(): boolean;
7223
7224
  get hasSingleInput(): boolean;
7225
+ get isContainer(): boolean;
7224
7226
  get id(): string;
7225
7227
  set id(val: string);
7226
7228
  onSurveyLoad(): void;
@@ -7338,7 +7340,7 @@ declare module "themes" {
7338
7340
  declare module "survey" {
7339
7341
  import { JsonError } from "jsonobject";
7340
7342
  import { Base, EventBase } from "base";
7341
- import { ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, IQuestion, IPanel, IElement, IPage, ISurveyErrorOwner, ISurveyElement, IProgressInfo, IFindElement, ISurveyLayoutElement, LayoutElementContainer } from "base-interfaces";
7343
+ import { ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, IQuestion, IPanel, IElement, IPage, ISurveyErrorOwner, ISurveyElement, IProgressInfo, IFindElement, ISurveyLayoutElement, IPlainDataOptions, LayoutElementContainer } from "base-interfaces";
7342
7344
  import { SurveyElementCore } from "survey-element";
7343
7345
  import { ISurveyTriggerOwner, SurveyTrigger, Trigger } from "trigger";
7344
7346
  import { CalculatedValue } from "calculatedValue";
@@ -7385,7 +7387,7 @@ declare module "survey" {
7385
7387
  *
7386
7388
  * Many question types allow respondents to leave comments. To enable this functionality, set a question's [`showCommentArea`](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#showCommentArea) property to `true`. Comment values are saved in a separate property. The property name is composed of the question `name` and `commentSuffix`.
7387
7389
  *
7388
- * Respondents can also leave a comment when they select "Other" in a single- or multi-select question, such as Dropdown or Checkboxes. The property name for the comment value is composed according to the same rules. However, you can use the question `name` as a key to store the comment value instead. Disable the [`storeOthersAsComment`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#storeOthersAsComment) property in this case.
7390
+ * Respondents can also leave comments when they select "Other" in choice-based questions, such as Dropdown or Checkboxes. The property name for the comment value is composed according to the same rules. However, you can use the question `name` as a key to store the comment value instead. Disable the [`storeOthersAsComment`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#storeOthersAsComment) property in this case.
7389
7391
  *
7390
7392
  * [View Demo](https://surveyjs.io/form-library/examples/create-checkboxes-question-in-javascript/ (linkStyle))
7391
7393
  */
@@ -7674,7 +7676,8 @@ declare module "survey" {
7674
7676
  */
7675
7677
  onGetQuestionNo: EventBase<SurveyModel, GetQuestionNoEvent>;
7676
7678
  /**
7677
- * Use this event to change the progress text in code.
7679
+ * An event that is raised before the survey displays progress text. Handle this event to change the progress text in code.
7680
+ * @see showProgressBar
7678
7681
  * @see progressBarType
7679
7682
  */
7680
7683
  onProgressText: EventBase<SurveyModel, ProgressTextEvent>;
@@ -8266,38 +8269,36 @@ declare module "survey" {
8266
8269
  beforeSettingPanelErrors(question: IPanel, errors: Array<SurveyError>): void;
8267
8270
  private maakeRequiredErrorsInvisibgle;
8268
8271
  /**
8269
- * Gets or sets the first question index. The first question index is '1' by default. You may start it from '100' or from 'A', by setting '100' or 'A' to this property.
8270
- * You can set the start index to "(1)" or "# A)" or "a)" to render question number as (1), # A) and a) accordingly.
8271
- * @see Question.title
8272
- * @see requiredText
8272
+ * Specifies the initial number or letter from which to start question numbering.
8273
8273
  *
8274
- * [View Demo](https://surveyjs.io/form-library/examples/survey-processtext/ (linkStyle))
8274
+ * [Question Numbers](https://surveyjs.io/form-library/documentation/design-survey/configure-question-titles#question-numbers (linkStyle))
8275
8275
  */
8276
8276
  get questionStartIndex(): string;
8277
8277
  set questionStartIndex(val: string);
8278
8278
  /**
8279
- * Gets or sets whether the "Others" option text is stored as question comment.
8279
+ * Specifies whether to store the "Other" option response in a separate property.
8280
+ *
8281
+ * Default value: `true`
8280
8282
  *
8281
- * By default the entered text in the "Others" input in the checkbox/radiogroup/dropdown is stored as `"question name " + "-Comment"`. The value itself is `"question name": "others"`.
8282
- * Set this property to `false`, to store the entered text directly in the `"question name"` key.
8283
- * @see commentSuffix
8283
+ * Respondents can leave comments when they select "Other" in choice-based questions, such as Dropdown or Checkboxes. Comment values are saved in a separate property. The property name is composed of the question `name` and [`commentSuffix`](#commentSuffix). However, you can use the question `name` as a key to store the comment value instead. Disable the `storeOthersAsComment` property in this case.
8284
+ * @see maxOthersLength
8284
8285
  */
8285
8286
  get storeOthersAsComment(): boolean;
8286
8287
  set storeOthersAsComment(val: boolean);
8287
8288
  /**
8288
- * Specifies the default maximum length for questions like text and comment, including matrix cell questions.
8289
+ * Specifies the maximum text length in textual questions ([Single-Line Input](https://surveyjs.io/form-library/examples/text-entry-question/), [Long Text](https://surveyjs.io/form-library/examples/add-open-ended-question-to-a-form/), [Multiple Textboxes](https://surveyjs.io/form-library/examples/multiple-text-box-question/)), measured in characters.
8290
+ *
8291
+ * Default value: 0 (unlimited)
8289
8292
  *
8290
- * The default value is `0`, that means that the text and comment have the same max length as the standard HTML input - 524288 characters: https://www.w3schools.com/tags/att_input_maxlength.asp.
8293
+ * You can override this setting for individual questions if you specify their [`maxLength`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maxLength) property.
8291
8294
  * @see maxOthersLength
8292
8295
  */
8293
8296
  get maxTextLength(): number;
8294
8297
  set maxTextLength(val: number);
8295
8298
  /**
8296
- * Gets or sets the default maximum length for question comments and others
8299
+ * Specifies the maximum text length for question comments. Applies to questions with the [`showCommentArea`](https://surveyjs.io/form-library/documentation/api-reference/question#showCommentArea) or [`showOtherItem`](https://surveyjs.io/form-library/documentation/api-reference/question#showOtherItem) property set to `true`.
8297
8300
  *
8298
- * The default value is `0`, that means that the question comments have the same max length as the standard HTML input - 524288 characters: https://www.w3schools.com/tags/att_input_maxlength.asp.
8299
- * @see Question.showCommentArea
8300
- * @see Question.showOtherItem
8301
+ * Default value: 0 (unlimited)
8301
8302
  * @see maxTextLength
8302
8303
  */
8303
8304
  get maxOthersLength(): number;
@@ -8684,9 +8685,9 @@ declare module "survey" {
8684
8685
  getUpdatedQuestionTitle(question: Question, title: string): string;
8685
8686
  getUpdatedQuestionNo(question: Question, no: string): string;
8686
8687
  /**
8687
- * Gets or sets whether the survey displays page numbers on pages titles.
8688
+ * Specifies whether page titles contain page numbers.
8688
8689
  *
8689
- * [View Demo](https://surveyjs.io/form-library/examples/survey-options/ (linkStyle))
8690
+ * [View Demo](https://surveyjs.io/form-library/examples/how-to-number-pages-and-questions/ (linkStyle))
8690
8691
  */
8691
8692
  get showPageNumbers(): boolean;
8692
8693
  set showPageNumbers(value: boolean);
@@ -8763,12 +8764,15 @@ declare module "survey" {
8763
8764
  get questionErrorLocation(): string;
8764
8765
  set questionErrorLocation(value: string);
8765
8766
  /**
8766
- * Gets or sets the question description position. The default value is `underTitle`.
8767
+ * Specifies where to display question descriptions.
8767
8768
  *
8768
- * The following options are available:
8769
+ * Possible values:
8770
+ *
8771
+ * - `"underTitle"` (default) - Displays descriptions under question titles.
8772
+ * - `"underInput"` - Displays descriptions under the interactive area.
8773
+ *
8774
+ * You can override this setting for individual questions if you specify their [`descriptionLocation`](https://surveyjs.io/form-library/documentation/api-reference/question#descriptionLocation) property.
8769
8775
  *
8770
- * - `underTitle` - show question description under the question title,
8771
- * - `underInput` - show question description under the question input instead of question title.
8772
8776
  */
8773
8777
  get questionDescriptionLocation(): string;
8774
8778
  set questionDescriptionLocation(value: string);
@@ -8830,14 +8834,7 @@ declare module "survey" {
8830
8834
  *
8831
8835
  * If you want to skip empty answers, pass an object with the `includeEmpty` property set to `false`.
8832
8836
  */
8833
- getPlainData(options?: {
8834
- includeEmpty?: boolean;
8835
- includeQuestionTypes?: boolean;
8836
- includeValues?: boolean;
8837
- calculations?: Array<{
8838
- propertyName: string;
8839
- }>;
8840
- }): Array<IQuestionPlainData>;
8837
+ getPlainData(options?: IPlainDataOptions): Array<IQuestionPlainData>;
8841
8838
  getFilteredValues(): any;
8842
8839
  private addCalculatedValuesIntoFilteredValues;
8843
8840
  getFilteredProperties(): any;
@@ -9409,7 +9406,7 @@ declare module "survey" {
9409
9406
  private getUpdatedPanelTitleActions;
9410
9407
  private getUpdatedPageTitleActions;
9411
9408
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
9412
- scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string): any;
9409
+ scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean): any;
9413
9410
  /**
9414
9411
  * Uploads a file to server.
9415
9412
  *
@@ -9603,6 +9600,7 @@ declare module "survey" {
9603
9600
  private triggerValues;
9604
9601
  private triggerKeys;
9605
9602
  private checkTriggers;
9603
+ private get hasRequiredValidQuestionTrigger();
9606
9604
  private doElementsOnLoad;
9607
9605
  private conditionValues;
9608
9606
  private get isRunningConditions();
@@ -10068,7 +10066,7 @@ declare module "survey-element" {
10068
10066
  dragTypeOverMe: DragTypeOverMeEnum;
10069
10067
  isDragMe: boolean;
10070
10068
  readOnlyChangedCallback: () => void;
10071
- static ScrollElementToTop(elementId: string): boolean;
10069
+ static ScrollElementToTop(elementId: string, scrollIfVisible?: boolean): boolean;
10072
10070
  static GetFirstNonTextElement(elements: any, removeSpaces?: boolean): any;
10073
10071
  static FocusElement(elementId: string): boolean;
10074
10072
  private static focusElementCore;
@@ -10274,7 +10272,7 @@ declare module "survey-element" {
10274
10272
  * @see Base.getType
10275
10273
  */
10276
10274
  get isQuestion(): boolean;
10277
- delete(): void;
10275
+ delete(doDispose: boolean): void;
10278
10276
  locOwner: ILocalizableOwner;
10279
10277
  /**
10280
10278
  * Returns the survey's [locale](https://surveyjs.io/form-library/documentation/surveymodel#locale).
@@ -10442,7 +10440,7 @@ declare module "console-warnings" {
10442
10440
  declare module "question" {
10443
10441
  import { HashTable } from "helpers";
10444
10442
  import { EventBase } from "base";
10445
- import { IElement, IQuestion, IPanel, IConditionRunner, ISurveyImpl, IPage, ITitleOwner, IProgressInfo, ISurvey } from "base-interfaces";
10443
+ import { IElement, IQuestion, IPanel, IConditionRunner, ISurveyImpl, IPage, ITitleOwner, IProgressInfo, ISurvey, IPlainDataOptions } from "base-interfaces";
10446
10444
  import { SurveyElement } from "survey-element";
10447
10445
  import { SurveyValidator, IValidatorOwner } from "validator";
10448
10446
  import { TextPreProcessorValue } from "textPreProcessor";
@@ -10546,7 +10544,7 @@ declare module "question" {
10546
10544
  get page(): IPage;
10547
10545
  set page(val: IPage);
10548
10546
  getPanel(): IPanel;
10549
- delete(): void;
10547
+ delete(doDispose?: boolean): void;
10550
10548
  protected removeFromParent(): void;
10551
10549
  protected addDependedQuestion(question: Question): void;
10552
10550
  protected removeDependedQuestion(question: Question): void;
@@ -10772,12 +10770,15 @@ declare module "question" {
10772
10770
  commentPlaceholder: string;
10773
10771
  get commentPlaceHolder(): string;
10774
10772
  set commentPlaceHolder(newValue: string);
10773
+ get renderedCommentPlaceholder(): string;
10774
+ private calcRenderedCommentPlaceholder;
10775
10775
  getAllErrors(): Array<SurveyError>;
10776
10776
  getErrorByType(errorType: string): SurveyError;
10777
10777
  get customWidget(): QuestionCustomWidget;
10778
10778
  updateCustomWidget(): void;
10779
10779
  localeChanged(): void;
10780
10780
  get isCompositeQuestion(): boolean;
10781
+ get isContainer(): boolean;
10781
10782
  protected updateCommentElements(): void;
10782
10783
  onCommentInput(event: any): void;
10783
10784
  onCommentChange(event: any): void;
@@ -10839,7 +10840,7 @@ declare module "question" {
10839
10840
  * Moves focus to the input field of this question.
10840
10841
  * @param onError Pass `true` if you want to focus an input field with the first validation error. Default value: `false` (focuses the first input field). Applies to question types with multiple input fields.
10841
10842
  */
10842
- focus(onError?: boolean): void;
10843
+ focus(onError?: boolean, scrollIfVisible?: boolean): void;
10843
10844
  private focuscore;
10844
10845
  private expandAllParents;
10845
10846
  focusIn(): void;
@@ -11056,13 +11057,8 @@ declare module "question" {
11056
11057
  *
11057
11058
  * Pass an object with the `includeEmpty` property set to `false` if you want to skip empty answers.
11058
11059
  */
11059
- getPlainData(options?: {
11060
- includeEmpty?: boolean;
11061
- includeQuestionTypes?: boolean;
11062
- calculations?: Array<{
11063
- propertyName: string;
11064
- }>;
11065
- }): IQuestionPlainData;
11060
+ getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
11061
+ protected getPlainDataCalculatedValue(propName: string): any;
11066
11062
  /**
11067
11063
  * A correct answer to this question. Specify this property if you want to [create a quiz](https://surveyjs.io/form-library/documentation/design-survey-create-a-quiz).
11068
11064
  * @see SurveyModel.getCorrectAnswerCount
@@ -11174,6 +11170,7 @@ declare module "question" {
11174
11170
  private isOldAnswered;
11175
11171
  protected allowNotifyValueChanged: boolean;
11176
11172
  protected setNewValue(newValue: any): void;
11173
+ private checkIsValueCorrect;
11177
11174
  protected isNewValueCorrect(val: any): boolean;
11178
11175
  protected isNewValueEqualsToValue(newValue: any): boolean;
11179
11176
  protected isTextValue(): boolean;
@@ -11231,6 +11228,7 @@ declare module "question" {
11231
11228
  set validatedValue(val: any);
11232
11229
  getAllValues(): any;
11233
11230
  processPopupVisiblilityChanged(popupModel: PopupModel, visible: boolean): void;
11231
+ protected onTextKeyDownHandler(event: any): void;
11234
11232
  transformToMobileView(): void;
11235
11233
  transformToDesktopView(): void;
11236
11234
  needResponsiveWidth(): boolean;
@@ -11249,6 +11247,7 @@ declare module "question" {
11249
11247
  protected processResponsiveness(requiredWidth: number, availableWidth: number): any;
11250
11248
  destroyResizeObserver(): void;
11251
11249
  dispose(): void;
11250
+ private resetDependedQuestions;
11252
11251
  }
11253
11252
  }
11254
11253
  declare module "martixBase" {
@@ -11367,10 +11366,10 @@ declare module "martixBase" {
11367
11366
  }
11368
11367
  declare module "question_matrixdropdownbase" {
11369
11368
  import { QuestionMatrixBaseModel } from "martixBase";
11370
- import { Question, IConditionObject } from "question";
11369
+ import { Question, IConditionObject, IQuestionPlainData } from "question";
11371
11370
  import { HashTable } from "helpers";
11372
11371
  import { Base } from "base";
11373
- import { IElement, IQuestion, ISurveyData, ISurvey, ISurveyImpl, ITextProcessor, IProgressInfo, IPanel } from "base-interfaces";
11372
+ import { IElement, IQuestion, ISurveyData, ISurvey, ISurveyImpl, ITextProcessor, IProgressInfo, IPanel, IPlainDataOptions } from "base-interfaces";
11374
11373
  import { ItemValue } from "itemvalue";
11375
11374
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
11376
11375
  import { PanelModel } from "panel";
@@ -11545,6 +11544,7 @@ declare module "question_matrixdropdownbase" {
11545
11544
  getType(): string;
11546
11545
  dispose(): void;
11547
11546
  get hasSingleInput(): boolean;
11547
+ get isContainer(): boolean;
11548
11548
  get isRowsDynamic(): boolean;
11549
11549
  private isUpdating;
11550
11550
  protected get isUpdateLocked(): boolean;
@@ -11565,7 +11565,7 @@ declare module "question_matrixdropdownbase" {
11565
11565
  get columnsLocation(): string;
11566
11566
  set columnsLocation(val: string);
11567
11567
  /**
11568
- * Specifies the error message position for question within detail sections.
11568
+ * Specifies the error message position for questions within detail sections.
11569
11569
  *
11570
11570
  * Possible values:
11571
11571
  *
@@ -11717,6 +11717,7 @@ declare module "question_matrixdropdownbase" {
11717
11717
  private checkColumnsVisibility;
11718
11718
  private checkColumnsRenderedRequired;
11719
11719
  private isColumnVisibilityChanged;
11720
+ private updateNewVisibleChoices;
11720
11721
  protected runTotalsCondition(values: HashTable<any>, properties: HashTable<any>): void;
11721
11722
  private getRowConditionValues;
11722
11723
  IsMultiplyColumn(column: MatrixDropdownColumn): boolean;
@@ -11796,12 +11797,7 @@ declare module "question_matrixdropdownbase" {
11796
11797
  protected getRowValueCore(row: MatrixDropdownRowModelBase, questionValue: any, create?: boolean): any;
11797
11798
  protected getRowObj(row: MatrixDropdownRowModelBase): any;
11798
11799
  protected getRowDisplayValue(keysAsText: boolean, row: MatrixDropdownRowModelBase, rowValue: any): any;
11799
- getPlainData(options?: {
11800
- includeEmpty?: boolean;
11801
- calculations?: Array<{
11802
- propertyName: string;
11803
- }>;
11804
- }): import("question").IQuestionPlainData;
11800
+ getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
11805
11801
  addConditionObjectsByContext(objects: Array<IConditionObject>, context: any): void;
11806
11802
  protected collectNestedQuestionsCore(questions: Question[], visibleOnly: boolean): void;
11807
11803
  protected getConditionObjectRowName(index: number): string;
@@ -12021,7 +12017,7 @@ declare module "base-interfaces" {
12021
12017
  dynamicPanelRemoving(question: IQuestion, panelIndex: number, panel: IPanel): boolean;
12022
12018
  dynamicPanelItemValueChanged(question: IQuestion, options: any): any;
12023
12019
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
12024
- scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string): any;
12020
+ scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean): any;
12025
12021
  runExpression(expression: string): any;
12026
12022
  elementContentVisibilityChanged(element: ISurveyElement): void;
12027
12023
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
@@ -12053,7 +12049,7 @@ declare module "base-interfaces" {
12053
12049
  getType(): string;
12054
12050
  setVisibleIndex(value: number): number;
12055
12051
  locStrsChanged(): any;
12056
- delete(): any;
12052
+ delete(doDispose?: boolean): void;
12057
12053
  toggleState(): void;
12058
12054
  stateChangedCallback(): void;
12059
12055
  getTitleToolbar(): AdaptiveActionContainer;
@@ -12162,6 +12158,14 @@ declare module "base-interfaces" {
12162
12158
  template?: string;
12163
12159
  data?: any;
12164
12160
  }
12161
+ export interface IPlainDataOptions {
12162
+ includeEmpty?: boolean;
12163
+ includeQuestionTypes?: boolean;
12164
+ includeValues?: boolean;
12165
+ calculations?: Array<{
12166
+ propertyName: string;
12167
+ }>;
12168
+ }
12165
12169
  }
12166
12170
  declare module "itemvalue" {
12167
12171
  import { ILocalizableOwner, LocalizableString } from "localizablestring";
@@ -13462,7 +13466,8 @@ declare module "question_matrix" {
13462
13466
  import { Base } from "base";
13463
13467
  import { SurveyError } from "survey-error";
13464
13468
  import { LocalizableString, ILocalizableOwner } from "localizablestring";
13465
- import { IConditionObject } from "question";
13469
+ import { IConditionObject, IQuestionPlainData } from "question";
13470
+ import { IPlainDataOptions } from "base-interfaces";
13466
13471
  export interface IMatrixData {
13467
13472
  onMatrixRowChanged(row: MatrixRowModel): void;
13468
13473
  getCorrectedRowValue(value: any): any;
@@ -13576,12 +13581,7 @@ declare module "question_matrix" {
13576
13581
  protected onMatrixRowCreated(row: MatrixRowModel): void;
13577
13582
  protected setQuestionValue(newValue: any, updateIsAnswered?: boolean): void;
13578
13583
  protected getDisplayValueCore(keysAsText: boolean, value: any): any;
13579
- getPlainData(options?: {
13580
- includeEmpty?: boolean;
13581
- calculations?: Array<{
13582
- propertyName: string;
13583
- }>;
13584
- }): import("question").IQuestionPlainData;
13584
+ getPlainData(options?: IPlainDataOptions): IQuestionPlainData;
13585
13585
  addConditionObjectsByContext(objects: Array<IConditionObject>, context: any): void;
13586
13586
  getConditionJson(operator?: string, path?: string): any;
13587
13587
  protected clearValueIfInvisibleCore(reason: string): void;
@@ -14486,6 +14486,7 @@ declare module "question_rating" {
14486
14486
  getInputId(index: number): string;
14487
14487
  supportGoNextPageAutomatic(): boolean;
14488
14488
  supportOther(): boolean;
14489
+ protected getPlainDataCalculatedValue(propName: string): any;
14489
14490
  /**
14490
14491
  * Specifies a description for the minimum (first) rate value.
14491
14492
  * @see rateValues
@@ -14860,17 +14861,35 @@ declare module "question_signaturepad" {
14860
14861
  set allowClear(val: boolean);
14861
14862
  get canShowClearButton(): boolean;
14862
14863
  /**
14863
- * Specifies a color for the pen. Accepts hexadecimal colors (`"#FF0000"`), RGB colors (`"rgb(255,0,0)"`), or color names (`"red"`).
14864
+ * Specifies a color for the pen.
14865
+ *
14866
+ * This property accepts color values in the following formats:
14867
+ *
14868
+ * - Hexadecimal colors (`"#FF0000"`)
14869
+ * - RGB colors (`"rgb(255,0,0)"`)
14870
+ * - Color names (`"red"`)
14864
14871
  * @see backgroundColor
14865
14872
  */
14866
14873
  get penColor(): string;
14867
14874
  set penColor(val: string);
14868
14875
  /**
14869
- * Specifies a color for the signature area background. Accepts hexadecimal colors (`"#FF0000"`), RGB colors (`"rgb(255,0,0)"`), or color names (`"red"`).
14876
+ * Specifies a color for the signature area background. Ignored if [`backgroundImage`](#backgroundImage) is set.
14877
+ *
14878
+ * This property accepts color values in the following formats:
14879
+ *
14880
+ * - Hexadecimal colors (`"#FF0000"`)
14881
+ * - RGB colors (`"rgb(255,0,0)"`)
14882
+ * - Color names (`"red"`)
14870
14883
  * @see penColor
14871
14884
  */
14872
14885
  get backgroundColor(): string;
14873
14886
  set backgroundColor(val: string);
14887
+ /**
14888
+ * An image to display in the background of the signature area. Accepts a base64 or URL string value.
14889
+ * @see backgroundColor
14890
+ */
14891
+ get backgroundImage(): string;
14892
+ set backgroundImage(val: string);
14874
14893
  get clearButtonCaption(): string;
14875
14894
  needShowPlaceholder(): boolean;
14876
14895
  get placeHolderText(): string;
@@ -15342,6 +15361,8 @@ declare module "question_custom" {
15342
15361
  findQuestionByName(name: string): IQuestion;
15343
15362
  protected clearValueIfInvisibleCore(reason: string): void;
15344
15363
  onAnyValueChanged(name: string): void;
15364
+ get hasSingleInput(): boolean;
15365
+ get isContainer(): boolean;
15345
15366
  protected createPanel(): PanelModel;
15346
15367
  protected onReadOnlyChanged(): void;
15347
15368
  onSurveyLoad(): void;
@@ -15549,7 +15570,7 @@ declare module "entries/chunks/model" {
15549
15570
  export { AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner } from "validator";
15550
15571
  export { ItemValue } from "itemvalue";
15551
15572
  export { Base, Event, EventBase, ArrayChanges, ComputedUpdater } from "base";
15552
- export { ISurvey, ISurveyElement, IElement, IQuestion, IPage, IPanel, ISurveyData, ITitleOwner, ISurveyLayoutElement, IShortcutText } from "base-interfaces";
15573
+ export { ISurvey, ISurveyElement, IElement, IQuestion, IPage, IPanel, ISurveyData, ITitleOwner, ISurveyLayoutElement, IPlainDataOptions as IPlainData, IShortcutText } from "base-interfaces";
15553
15574
  export { SurveyError } from "survey-error";
15554
15575
  export { SurveyElementCore, SurveyElement, DragTypeOverMeEnum } from "survey-element";
15555
15576
  export { CalculatedValue } from "calculatedValue";
@@ -15606,7 +15627,7 @@ declare module "entries/chunks/model" {
15606
15627
  export * from "themes";
15607
15628
  export { SurveyModel } from "survey";
15608
15629
  export * from "survey-events-api";
15609
- export { SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, Trigger } from "trigger";
15630
+ export { SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger } from "trigger";
15610
15631
  export { PopupSurveyModel, SurveyWindowModel } from "popup-survey";
15611
15632
  export { TextPreProcessor } from "textPreProcessor";
15612
15633
  export { Notifier } from "notifier";
@@ -15981,6 +16002,8 @@ declare module "defaultCss/cssstandard" {
15981
16002
  root: string;
15982
16003
  controls: string;
15983
16004
  placeholder: string;
16005
+ canvas: string;
16006
+ backgroundImage: string;
15984
16007
  clearButton: string;
15985
16008
  };
15986
16009
  saveData: {
@@ -16443,6 +16466,8 @@ declare module "defaultCss/cssmodern" {
16443
16466
  small: string;
16444
16467
  controls: string;
16445
16468
  placeholder: string;
16469
+ canvas: string;
16470
+ backgroundImage: string;
16446
16471
  clearButton: string;
16447
16472
  };
16448
16473
  saveData: {
@@ -16849,6 +16874,8 @@ declare module "plugins/themes/bootstrap/cssbootstrap" {
16849
16874
  root: string;
16850
16875
  controls: string;
16851
16876
  placeholder: string;
16877
+ canvas: string;
16878
+ backgroundImage: string;
16852
16879
  clearButton: string;
16853
16880
  };
16854
16881
  saveData: {
@@ -17210,6 +17237,8 @@ declare module "plugins/themes/bootstrapmaterial/cssbootstrapmaterial" {
17210
17237
  root: string;
17211
17238
  controls: string;
17212
17239
  placeholder: string;
17240
+ canvas: string;
17241
+ backgroundImage: string;
17213
17242
  clearButton: string;
17214
17243
  };
17215
17244
  saveData: {
@@ -17677,6 +17706,8 @@ declare module "entries/plugins" {
17677
17706
  root: string;
17678
17707
  controls: string;
17679
17708
  placeholder: string;
17709
+ canvas: string;
17710
+ backgroundImage: string;
17680
17711
  clearButton: string;
17681
17712
  };
17682
17713
  saveData: {
@@ -18036,6 +18067,8 @@ declare module "entries/plugins" {
18036
18067
  root: string;
18037
18068
  controls: string;
18038
18069
  placeholder: string;
18070
+ canvas: string;
18071
+ backgroundImage: string;
18039
18072
  clearButton: string;
18040
18073
  };
18041
18074
  saveData: {
@@ -23775,6 +23808,7 @@ declare module "react/signaturepad" {
23775
23808
  constructor(props: any);
23776
23809
  protected get question(): QuestionSignaturePadModel;
23777
23810
  protected renderElement(): JSX.Element;
23811
+ renderBackgroundImage(): JSX.Element | null;
23778
23812
  renderCleanButton(): JSX.Element | null;
23779
23813
  }
23780
23814
  }