survey-react 1.11.12 → 1.11.14

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
@@ -87,6 +87,7 @@ declare module "packages/survey-core/src/localization/english" {
87
87
  refuseItemText: string;
88
88
  dontKnowItemText: string;
89
89
  selectAllItemText: string;
90
+ deselectAllItemText: string;
90
91
  progressText: string;
91
92
  indexText: string;
92
93
  panelDynamicProgressText: string;
@@ -193,14 +194,21 @@ declare module "packages/survey-core/src/surveyStrings" {
193
194
  localeNames: {
194
195
  [index: string]: any;
195
196
  };
197
+ localeNamesInEnglish: {
198
+ [index: string]: any;
199
+ };
196
200
  localeDirections: {
197
201
  [index: string]: any;
198
202
  };
199
203
  supportedLocales: any[];
204
+ useEnglishNames: boolean;
205
+ showNamesInEnglish: boolean;
206
+ setupLocale(loc: string, strings: any, name: string, nameInEngish: string, direction?: string): void;
200
207
  currentLocale: string;
201
208
  defaultLocale: string;
202
209
  getLocaleStrings(loc: string): any;
203
210
  getString: (strName: string, locale?: string) => any;
211
+ getLocaleName(loc: string, inEnglish?: boolean): string;
204
212
  getLocales: (removeDefaultLoc?: boolean) => Array<string>;
205
213
  onGetExternalString: (name: string, locale: string) => string;
206
214
  };
@@ -216,6 +224,7 @@ declare module "packages/survey-core/src/surveyStrings" {
216
224
  refuseItemText: string;
217
225
  dontKnowItemText: string;
218
226
  selectAllItemText: string;
227
+ deselectAllItemText: string;
219
228
  progressText: string;
220
229
  indexText: string;
221
230
  panelDynamicProgressText: string;
@@ -364,6 +373,11 @@ declare module "packages/survey-core/src/functionsfactory" {
364
373
  declare module "packages/survey-core/src/expressions/expressions" {
365
374
  import { HashTable } from "packages/survey-core/src/helpers";
366
375
  import { ProcessValue } from "packages/survey-core/src/conditionProcessValue";
376
+ export interface AsyncFunctionItem {
377
+ operand?: FunctionOperand;
378
+ parent?: AsyncFunctionItem;
379
+ children?: Array<AsyncFunctionItem>;
380
+ }
367
381
  export abstract class Operand {
368
382
  toString(func?: (op: Operand) => string): string;
369
383
  abstract getType(): string;
@@ -371,7 +385,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
371
385
  abstract setVariables(variables: Array<string>): any;
372
386
  hasFunction(): boolean;
373
387
  hasAsyncFunction(): boolean;
374
- addToAsyncList(list: Array<FunctionOperand>): void;
388
+ addToAsyncList(list: Array<AsyncFunctionItem>): void;
375
389
  isEqual(op: Operand): boolean;
376
390
  protected abstract isContentEqual(op: Operand): boolean;
377
391
  protected areOperatorsEquals(op1: Operand, op2: Operand): boolean;
@@ -399,7 +413,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
399
413
  setVariables(variables: Array<string>): void;
400
414
  hasFunction(): boolean;
401
415
  hasAsyncFunction(): boolean;
402
- addToAsyncList(list: Array<FunctionOperand>): void;
416
+ addToAsyncList(list: Array<AsyncFunctionItem>): void;
403
417
  }
404
418
  export class UnaryOperand extends Operand {
405
419
  private expressionValue;
@@ -413,7 +427,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
413
427
  protected isContentEqual(op: Operand): boolean;
414
428
  hasFunction(): boolean;
415
429
  hasAsyncFunction(): boolean;
416
- addToAsyncList(list: Array<FunctionOperand>): void;
430
+ addToAsyncList(list: Array<AsyncFunctionItem>): void;
417
431
  evaluate(processValue?: ProcessValue): boolean;
418
432
  setVariables(variables: Array<string>): void;
419
433
  }
@@ -426,7 +440,7 @@ declare module "packages/survey-core/src/expressions/expressions" {
426
440
  setVariables(variables: Array<string>): void;
427
441
  hasFunction(): boolean;
428
442
  hasAsyncFunction(): boolean;
429
- addToAsyncList(list: Array<FunctionOperand>): void;
443
+ addToAsyncList(list: Array<AsyncFunctionItem>): void;
430
444
  protected isContentEqual(op: Operand): boolean;
431
445
  }
432
446
  export class Const extends Operand {
@@ -474,7 +488,8 @@ declare module "packages/survey-core/src/expressions/expressions" {
474
488
  get isReady(): boolean;
475
489
  hasFunction(): boolean;
476
490
  hasAsyncFunction(): boolean;
477
- addToAsyncList(list: Array<FunctionOperand>): void;
491
+ private isAsyncFunction;
492
+ addToAsyncList(list: Array<AsyncFunctionItem>): void;
478
493
  protected isContentEqual(op: Operand): boolean;
479
494
  }
480
495
  export class OperandMaker {
@@ -620,7 +635,11 @@ declare module "packages/survey-core/src/conditions" {
620
635
  get isAsync(): boolean;
621
636
  canRun(): boolean;
622
637
  run(values: HashTable<any>, properties?: HashTable<any>): any;
638
+ private runAsyncItem;
639
+ private runAsyncItemCore;
623
640
  private doAsyncFunctionReady;
641
+ private isAsyncFuncReady;
642
+ private isAsyncChildrenReady;
624
643
  private runValues;
625
644
  }
626
645
  export class ExpressionRunnerBase {
@@ -1042,6 +1061,7 @@ declare module "packages/survey-core/src/list" {
1042
1061
  showSearchClearButton: boolean;
1043
1062
  renderElements: boolean;
1044
1063
  textWrapEnabled: boolean;
1064
+ itemComponent: string;
1045
1065
  static INDENT: number;
1046
1066
  static MINELEMENTCOUNT: number;
1047
1067
  scrollHandler: (e?: any) => void;
@@ -1388,7 +1408,7 @@ declare module "packages/survey-core/src/actions/action" {
1388
1408
  locStrsChanged(): void;
1389
1409
  doAction(args: any): boolean;
1390
1410
  private isMouseDown;
1391
- doMouseDown(): void;
1411
+ doMouseDown(args: any): void;
1392
1412
  doFocus(args: any): void;
1393
1413
  private locStrChangedInPopupModel;
1394
1414
  private locTitleChanged;
@@ -1684,6 +1704,7 @@ declare module "packages/survey-core/src/defaultCss/defaultV2Css" {
1684
1704
  question: {
1685
1705
  contentFadeIn: string;
1686
1706
  contentFadeOut: string;
1707
+ mobile: string;
1687
1708
  fadeIn: string;
1688
1709
  fadeOut: string;
1689
1710
  mainRoot: string;
@@ -3832,12 +3853,12 @@ declare module "packages/survey-core/src/utils/camera" {
3832
3853
  width?: number;
3833
3854
  height?: number;
3834
3855
  }): MediaStreamConstraints;
3835
- startVideo(videoElementId: string, callback: (stream: MediaStream) => void, imageWidth?: number, imageHeight?: number): void;
3856
+ startVideo(videoElement: HTMLVideoElement, callback: (stream: MediaStream) => void, imageWidth?: number, imageHeight?: number): void;
3836
3857
  getImageSize(videoEl: HTMLVideoElement): {
3837
3858
  width: number;
3838
3859
  height: number;
3839
3860
  };
3840
- snap(videoElementId: string, callback: BlobCallback): boolean;
3861
+ snap(videoElement: HTMLVideoElement, callback: BlobCallback): boolean;
3841
3862
  private canFlipValue;
3842
3863
  private updateCanFlipValue;
3843
3864
  private onCanFlipChangedCallback?;
@@ -3946,6 +3967,7 @@ declare module "packages/survey-core/src/question_file" {
3946
3967
  get hasFileUI(): boolean;
3947
3968
  private videoStream;
3948
3969
  startVideo(): void;
3970
+ private get videoHtmlElement();
3949
3971
  private startVideoInCamera;
3950
3972
  stopVideo(): void;
3951
3973
  snapPicture(): void;
@@ -4526,9 +4548,6 @@ declare module "packages/survey-core/src/question_baseselect" {
4526
4548
  protected hasUnknownValue(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
4527
4549
  protected hasUnknownValueItem(val: any, includeOther?: boolean, isFilteredChoices?: boolean, checkEmptyValue?: boolean): boolean;
4528
4550
  protected isValueDisabled(val: any): boolean;
4529
- /**
4530
- * If the clearIncorrectValuesCallback is set, it is used to clear incorrect values instead of default behaviour.
4531
- */
4532
4551
  clearIncorrectValuesCallback: () => void;
4533
4552
  /**
4534
4553
  * Configures access to a RESTful service that returns choice items. Refer to the [`ChoicesRestful`](https://surveyjs.io/form-library/documentation/choicesrestful) class description for more information. You can also specify additional application-wide settings using the [`settings.web`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) object.
@@ -5670,6 +5689,7 @@ declare module "packages/survey-core/src/question_matrixdropdownrendered" {
5670
5689
  set className(val: string);
5671
5690
  get className(): string;
5672
5691
  get cellQuestionWrapperClassName(): string;
5692
+ get isVisible(): boolean;
5673
5693
  get showResponsiveTitle(): boolean;
5674
5694
  get responsiveTitleCss(): string;
5675
5695
  get responsiveLocTitle(): LocalizableString;
@@ -6415,7 +6435,7 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6415
6435
  set templateTitle(newValue: string);
6416
6436
  get locTemplateTitle(): LocalizableString;
6417
6437
  /**
6418
- * A template for tab titles. Applies when [`renderMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#renderMode) is `"tab"`.
6438
+ * A template for tab titles. Applies when [`displayMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#displayMode) is `"tab"`.
6419
6439
  *
6420
6440
  * The template can contain the following placeholders:
6421
6441
  *
@@ -6427,7 +6447,7 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6427
6447
  * [View Demo](https://surveyjs.io/form-library/examples/tabbed-interface-for-duplicate-group-option/ (linkStyle))
6428
6448
  * @see templateTitle
6429
6449
  * @see tabTitlePlaceholder
6430
- * @see renderMode
6450
+ * @see displayMode
6431
6451
  */
6432
6452
  get templateTabTitle(): string;
6433
6453
  set templateTabTitle(newValue: string);
@@ -6485,22 +6505,22 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6485
6505
  /**
6486
6506
  * A zero-based index of the currently displayed panel.
6487
6507
  *
6488
- * When `renderMode` is `"list"` or Dynamic Panel is empty (`panelCount` is 0), this property contains -1.
6508
+ * When `displayMode` is `"list"` or Dynamic Panel is empty (`panelCount` is 0), this property contains -1.
6489
6509
  * @see currentPanel
6490
6510
  * @see panels
6491
6511
  * @see panelCount
6492
- * @see renderMode
6512
+ * @see displayMode
6493
6513
  */
6494
6514
  get currentIndex(): number;
6495
6515
  set currentIndex(val: number);
6496
6516
  /**
6497
6517
  * A `PanelModel` object that is the currently displayed panel.
6498
6518
  *
6499
- * When `renderMode` is `"list"` or Dynamic Panel is empty (`panelCount` is 0), this property contains `null`.
6519
+ * When `displayMode` is `"list"` or Dynamic Panel is empty (`panelCount` is 0), this property contains `null`.
6500
6520
  * @see currentIndex
6501
6521
  * @see panels
6502
6522
  * @see panelCount
6503
- * @see renderMode
6523
+ * @see displayMode
6504
6524
  */
6505
6525
  get currentPanel(): PanelModel;
6506
6526
  set currentPanel(val: PanelModel);
@@ -6545,16 +6565,16 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6545
6565
  set keyDuplicationError(val: string);
6546
6566
  get locKeyDuplicationError(): LocalizableString;
6547
6567
  /**
6548
- * A caption for the Previous button. Applies only if `renderMode` is different from `"list"`.
6549
- * @see renderMode
6568
+ * A caption for the Previous button. Applies only if `displayMode` is different from `"list"`.
6569
+ * @see displayMode
6550
6570
  * @see isPrevButtonVisible
6551
6571
  */
6552
6572
  get panelPrevText(): string;
6553
6573
  set panelPrevText(val: string);
6554
6574
  get locPanelPrevText(): LocalizableString;
6555
6575
  /**
6556
- * A caption for the Next button. Applies only if `renderMode` is different from `"list"`.
6557
- * @see renderMode
6576
+ * A caption for the Next button. Applies only if `displayMode` is different from `"list"`.
6577
+ * @see displayMode
6558
6578
  * @see isNextButtonVisible
6559
6579
  */
6560
6580
  get panelNextText(): string;
@@ -6573,13 +6593,7 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6573
6593
  get panelRemoveText(): string;
6574
6594
  set panelRemoveText(val: string);
6575
6595
  get locPanelRemoveText(): LocalizableString;
6576
- /**
6577
- * Returns true when the renderMode equals to "progressTop" or "progressTopBottom"
6578
- */
6579
6596
  get isProgressTopShowing(): boolean;
6580
- /**
6581
- * Returns true when the renderMode equals to "progressBottom" or "progressTopBottom"
6582
- */
6583
6597
  get isProgressBottomShowing(): boolean;
6584
6598
  /**
6585
6599
  * Indicates whether the Previous button is visible.
@@ -6597,9 +6611,6 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6597
6611
  */
6598
6612
  get isNextButtonVisible(): boolean;
6599
6613
  get isNextButtonShowing(): boolean;
6600
- /**
6601
- * Returns true when showRangeInProgress equals to true, renderMode doesn't equal to "list" and visiblePanelCount is >= 2.
6602
- */
6603
6614
  get isRangeShowing(): boolean;
6604
6615
  getElementsInDesign(includeHidden?: boolean): Array<IElement>;
6605
6616
  private isAddingNewPanels;
@@ -6624,7 +6635,7 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6624
6635
  */
6625
6636
  get visiblePanelCount(): number;
6626
6637
  /**
6627
- * Specifies whether users can expand and collapse panels. Applies if `renderMode` is `"list"` and the `templateTitle` property is specified.
6638
+ * Specifies whether users can expand and collapse panels. Applies if `displayMode` is `"list"` and the `templateTitle` property is specified.
6628
6639
  *
6629
6640
  * Possible values:
6630
6641
  *
@@ -6632,7 +6643,7 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6632
6643
  * - `"expanded"` - All panels are displayed in full and can be collapsed in the UI.
6633
6644
  * - `"collapsed"` - All panels display only their titles and descriptions and can be expanded in the UI.
6634
6645
  * - `"firstExpanded"` - Only the first panel is displayed in full; other panels are collapsed and can be expanded in the UI.
6635
- * @see renderMode
6646
+ * @see displayMode
6636
6647
  * @see templateTitle
6637
6648
  */
6638
6649
  get panelsState(): string;
@@ -6735,25 +6746,47 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6735
6746
  get panelRemoveButtonLocation(): string;
6736
6747
  set panelRemoveButtonLocation(val: string);
6737
6748
  /**
6738
- * Shows the range from 1 to panelCount when renderMode doesn't equal to "list". Set to false to hide this element.
6739
- * @see panelCount
6740
- * @see renderMode
6749
+ * Obsolete. Use the [`showProgressBar`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#showProgressBar) property instead.
6750
+ * @deprecated
6741
6751
  */
6742
6752
  get showRangeInProgress(): boolean;
6743
6753
  set showRangeInProgress(val: boolean);
6744
6754
  /**
6745
- * Specifies how to render panels.
6755
+ * Obsolete. Use the [`displayMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#displayMode) property instead.
6756
+ * @deprecated
6757
+ */
6758
+ get renderMode(): string;
6759
+ set renderMode(val: string);
6760
+ private updatePanelView;
6761
+ /**
6762
+ * Specifies how to display panels.
6746
6763
  *
6747
6764
  * Possible values:
6748
6765
  *
6749
- * - `"list"` (default) - Renders panels one under the other. [View Demo](https://surveyjs.io/form-library/examples/how-to-use-expressions-in-dynamic-panel/)
6750
- * - `"progressTop"` - Renders each panel as a card and displays a progress bar at the top. [View Demo](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/)
6751
- * - `"progressBottom"` - Renders each panel panel as a card and displays a progress bar at the bottom.
6752
- * - `"progressTopBottom"` - Renders each panel as a card and displays a progress bar at the top and bottom.
6753
- * - `"tab"` - Renders each panel within a tab. Use the [`templateTabTitle`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle) to specify a template for tab titles. [View Demo](https://surveyjs.io/form-library/examples/tabbed-interface-for-duplicate-group-option/)
6766
+ * - `"list"` (default) - Displays panels one under the other. [View Demo](https://surveyjs.io/form-library/examples/duplicate-group-of-fields-in-form/)
6767
+ * - `"carousel"` - Displays panels in a carousel. Users can switch between panels using navigation buttons.
6768
+ * - `"tab"` - Displays each panel within a tab. Use the [`templateTabTitle`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle) to specify a template for tab titles. [View Demo](https://surveyjs.io/form-library/examples/tabbed-interface-for-duplicate-group-option/)
6769
+ * @see showProgressBar
6770
+ * @see progressBarLocation
6754
6771
  */
6755
- get renderMode(): string;
6756
- set renderMode(val: string);
6772
+ displayMode: "list" | "carousel" | "tab";
6773
+ /**
6774
+ * Specifies whether to display the progress bar. Applies only if [`displayMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#displayMode) is `"carousel"`.
6775
+ *
6776
+ * Default value: `true`
6777
+ * @see progressBarLocation
6778
+ */
6779
+ showProgressBar: true | false;
6780
+ /**
6781
+ * Specifies the alignment of the [progress bar](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#showProgressBar) relative to the currently displayed panel. Applies only if [`displayMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#displayMode) is `"carousel"`.
6782
+ *
6783
+ * Possible values:
6784
+ *
6785
+ * - `"top"` (default) - Displays the progress bar at the top of the current panel.
6786
+ * - `"bottom"` - Displays the progress bar at the bottom of the current panel.
6787
+ * - `"topBottom"` - Displays the progress bar at the top and bottom of the current panel.
6788
+ */
6789
+ progressBarLocation: "top" | "bottom" | "topBottom";
6757
6790
  get tabAlign(): "center" | "left" | "right";
6758
6791
  set tabAlign(val: "center" | "left" | "right");
6759
6792
  get isRenderModeList(): boolean;
@@ -6814,19 +6847,18 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6814
6847
  getProgressInfo(): IProgressInfo;
6815
6848
  private isRowEmpty;
6816
6849
  /**
6817
- * Add a new dynamic panel based on the template Panel. It checks if canAddPanel returns true and then calls addPanel method.
6818
- * If a renderMode is different from "list" and the current panel has erros, then
6819
- * @see template
6850
+ * Adds a new panel based on the [template](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#template).
6851
+ *
6852
+ * Unlike the [`addPanel()`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#addPanel) method, `addPanelUI()` performs additional actions: checks whether a new panel [can be added](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#canAddPanel), expands and focuses the new panel, and runs animated effects.
6820
6853
  * @see panelCount
6821
6854
  * @see panels
6822
- * @see canAddPanel
6823
6855
  */
6824
6856
  addPanelUI(): PanelModel;
6825
6857
  private focusNewPanelCallback;
6826
6858
  private focusNewPanel;
6827
6859
  /**
6828
6860
  * Adds a new panel based on the [template](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#template).
6829
- * @param index *(Optional)* An index at which to insert the new panel. `undefined` adds the panel to the end or inserts it after the current panel if [`renderMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#renderMode) is `"tab"`. A negative index (for instance, -1) adds the panel to the end in all cases, regardless of the `renderMode` value.
6861
+ * @param index *(Optional)* An index at which to insert the new panel. `undefined` adds the panel to the end or inserts it after the current panel if [`displayMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#renderMode) is `"tab"`. A negative index (for instance, -1) adds the panel to the end in all cases, regardless of the `displayMode` value.
6830
6862
  * @see panelCount
6831
6863
  * @see panels
6832
6864
  * @see allowAddPanel
@@ -6837,32 +6869,29 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6837
6869
  private canLeaveCurrentPanel;
6838
6870
  private copyValue;
6839
6871
  /**
6840
- * Call removePanel function. Do nothing is canRemovePanel returns false. If confirmDelete set to true, it shows the confirmation dialog first.
6841
- * @param value a panel or panel index
6842
- * @see removePanel
6843
- * @see confirmDelete
6844
- * @see confirmDeleteText
6845
- * @see canRemovePanel
6872
+ * Deletes a panel from the [`panels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#panels) array.
6846
6873
  *
6874
+ * Unlike the [`removePanel()`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#removePanel) method, `removePanelUI()` performs additional actions: checks whether the panel [can be removed](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#canRemovePanel) and displays a confirmation dialog (if the [`confirmDelete`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#confirmDelete) property is enabled).
6875
+ * @param value A `PanelModel` instance or zero-based panel index.
6876
+ * @see addPanelUI
6847
6877
  */
6848
6878
  removePanelUI(value: any): void;
6849
6879
  isRequireConfirmOnDelete(val: any): boolean;
6850
6880
  /**
6851
- * Switches Dynamic Panel to the next panel. Returns `true` in case of success, or `false` if `renderMode` is `"list"` or the current panel contains validation errors.
6852
- * @see renderMode
6881
+ * Switches Dynamic Panel to the next panel. Returns `true` in case of success, or `false` if `displayMode` is `"list"` or the current panel contains validation errors.
6882
+ * @see displayMode
6853
6883
  */
6854
6884
  goToNextPanel(): boolean;
6855
6885
  /**
6856
6886
  * Switches Dynamic Panel to the previous panel.
6857
6887
  */
6858
6888
  goToPrevPanel(): void;
6889
+ private removedPanelIndex;
6859
6890
  /**
6860
- * Removes a dynamic panel from the panels array.
6861
- * @param value a panel or panel index
6862
- * @see panels
6863
- * @see template
6891
+ * Deletes a panel from the [`panels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#panels) array.
6892
+ * @param value A `PanelModel` instance or zero-based panel index.
6893
+ * @see addPanel
6864
6894
  */
6865
- private removedPanelIndex;
6866
6895
  removePanel(value: any): void;
6867
6896
  private getVisualPanelIndex;
6868
6897
  private getPanelVisibleIndexById;
@@ -6966,6 +6995,7 @@ declare module "packages/survey-core/src/question_paneldynamic" {
6966
6995
  get showNavigation(): boolean;
6967
6996
  showSeparator(index: number): boolean;
6968
6997
  protected calcCssClasses(css: any): any;
6998
+ protected onMobileChanged(): void;
6969
6999
  }
6970
7000
  }
6971
7001
  declare module "packages/survey-core/src/question_signaturepad" {
@@ -7592,23 +7622,23 @@ declare module "packages/survey-core/src/survey-events-api" {
7592
7622
  /**
7593
7623
  * An object with the following structure:
7594
7624
  *
7595
- * ```js
7596
- * {
7597
- * AnswersCount: Number, // A total number of posted answers to the question
7598
- * QuestionResult: Object // All unique answers to the question and their number
7599
- * }
7600
- * ```
7625
+ * ```js
7626
+ * {
7627
+ * AnswersCount: Number, // A total number of posted answers to the question
7628
+ * QuestionResult: Object // All unique answers to the question and their number
7629
+ * }
7630
+ * ```
7601
7631
  */
7602
7632
  data: any;
7603
7633
  /**
7604
7634
  * An array of objects with the following structure:
7605
7635
  *
7606
- * ```js
7607
- * {
7608
- * name: String, // A unique answer to the question
7609
- * value: Number // The number of user responses with this answer
7610
- * }
7611
- * ```
7636
+ * ```js
7637
+ * {
7638
+ * name: String, // A unique answer to the question
7639
+ * value: Number // The number of user responses with this answer
7640
+ * }
7641
+ * ```
7612
7642
  */
7613
7643
  dataList: Array<any>;
7614
7644
  }
@@ -8194,6 +8224,16 @@ declare module "packages/survey-core/src/survey-events-api" {
8194
8224
  export interface ElementWrapperComponentDataEvent extends ElementWrapperComponentEventMixin {
8195
8225
  data: any;
8196
8226
  }
8227
+ export interface ResizeEvent {
8228
+ /**
8229
+ * The current survey width in pixels.
8230
+ */
8231
+ width: number;
8232
+ /**
8233
+ * The current survey height in pixels.
8234
+ */
8235
+ height: number;
8236
+ }
8197
8237
  }
8198
8238
  declare module "packages/survey-core/src/drag-drop-page-helper-v1" {
8199
8239
  import { IElement, ISurveyElement } from "packages/survey-core/src/base-interfaces";
@@ -8682,6 +8722,15 @@ declare module "packages/survey-core/src/question_text" {
8682
8722
  * @see maskSettings
8683
8723
  */
8684
8724
  maskType: string;
8725
+ /**
8726
+ * Specifies text alignment within the input field.
8727
+ *
8728
+ * Possible values:
8729
+ *
8730
+ * - `"left"` - Aligns input text to the left side.
8731
+ * - `"right"` - Aligns input text to the right side.
8732
+ * - `"auto"` (default) - Applies right alignment if a [numeric or currency input mask](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType) is specified. Otherwise, applies left alignment.
8733
+ */
8685
8734
  inputTextAlignment: "left" | "right" | "auto";
8686
8735
  get maskTypeIsEmpty(): boolean;
8687
8736
  /**
@@ -9002,6 +9051,15 @@ declare module "packages/survey-core/src/question_multipletext" {
9002
9051
  */
9003
9052
  get maskSettings(): InputMaskBase;
9004
9053
  set maskSettings(val: InputMaskBase);
9054
+ /**
9055
+ * Specifies text alignment within the input field.
9056
+ *
9057
+ * Possible values:
9058
+ *
9059
+ * - `"left"` - Aligns input text to the left side.
9060
+ * - `"right"` - Aligns input text to the right side.
9061
+ * - `"auto"` (default) - Applies right alignment if a [numeric or currency input mask](https://surveyjs.io/form-library/documentation/api-reference/multipletextitemmodel#maskType) is specified. Otherwise, applies left alignment.
9062
+ */
9005
9063
  get inputTextAlignment(): "left" | "right" | "auto";
9006
9064
  set inputTextAlignment(val: "left" | "right" | "auto");
9007
9065
  /**
@@ -9379,7 +9437,7 @@ declare module "packages/survey-core/src/survey" {
9379
9437
  import { ActionContainer } from "packages/survey-core/src/actions/container";
9380
9438
  import { QuestionPanelDynamicModel } from "packages/survey-core/src/question_paneldynamic";
9381
9439
  import { Notifier } from "packages/survey-core/src/notifier";
9382
- 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, ElementWrapperComponentNameEvent, ElementWrapperComponentDataEvent, OpenDropdownMenuEvent } from "packages/survey-core/src/survey-events-api";
9440
+ 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, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixDetailPanelVisibleChangedEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent, OpenDropdownMenuEvent, ResizeEvent } from "packages/survey-core/src/survey-events-api";
9383
9441
  import { QuestionMatrixDropdownModelBase } from "packages/survey-core/src/question_matrixdropdownbase";
9384
9442
  import { QuestionMatrixDynamicModel } from "packages/survey-core/src/question_matrixdynamic";
9385
9443
  import { QuestionFileModel } from "packages/survey-core/src/question_file";
@@ -9709,7 +9767,7 @@ declare module "packages/survey-core/src/survey" {
9709
9767
  * [View Demo](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/ (linkStyle))
9710
9768
  */
9711
9769
  onTextMarkdown: EventBase<SurveyModel, TextMarkdownEvent>;
9712
- onTextRenderAs: EventBase<SurveyModel, TextRenderAsEvent>;
9770
+ onTextRenderAs: EventBase<SurveyModel, any>;
9713
9771
  /**
9714
9772
  * An event that is raised after a request to save survey results on [SurveyJS Service](https://api.surveyjs.io/) has been completed. Use this event to find out if the results have been saved successfully.
9715
9773
  */
@@ -9817,7 +9875,7 @@ declare module "packages/survey-core/src/survey" {
9817
9875
  * [View Demo](https://surveyjs.io/form-library/examples/survey-animation/ (linkStyle))
9818
9876
  */
9819
9877
  onAfterRenderSurvey: EventBase<SurveyModel, AfterRenderSurveyEvent>;
9820
- onAfterRenderHeader: EventBase<SurveyModel, AfterRenderHeaderEvent>;
9878
+ onAfterRenderHeader: EventBase<SurveyModel, any>;
9821
9879
  /**
9822
9880
  * An event that is raised after a page is rendered to the DOM. Use it to modify page markup.
9823
9881
  *
@@ -9994,7 +10052,7 @@ declare module "packages/survey-core/src/survey" {
9994
10052
  * @see startTimer
9995
10053
  */
9996
10054
  onTimer: EventBase<SurveyModel, {}>;
9997
- onTimerPanelInfoText: EventBase<SurveyModel, TimerPanelInfoTextEvent>;
10055
+ onTimerPanelInfoText: EventBase<SurveyModel, any>;
9998
10056
  /**
9999
10057
  * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
10000
10058
  */
@@ -10082,8 +10140,8 @@ declare module "packages/survey-core/src/survey" {
10082
10140
  * This event can be raised for [Single-](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model) and [Multi-Select Dropdown](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model) questions, [Rating Scale](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model) questions [rendered as drop-down menus](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#displayMode), and [Multi-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) questions that contain columns of the `"dropdown"` or `"tagbox"` [`cellType`](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list#cellType). Handle this event to change the drop-down menu type for specific questions or device types.
10083
10141
  */
10084
10142
  onOpenDropdownMenu: EventBase<SurveyModel, OpenDropdownMenuEvent>;
10085
- onElementWrapperComponentName: EventBase<SurveyModel, ElementWrapperComponentNameEvent>;
10086
- onElementWrapperComponentData: EventBase<SurveyModel, ElementWrapperComponentDataEvent>;
10143
+ onElementWrapperComponentName: EventBase<SurveyModel, any>;
10144
+ onElementWrapperComponentData: EventBase<SurveyModel, any>;
10087
10145
  constructor(jsonObj?: any, renderedElement?: any);
10088
10146
  processClosedPopup(question: IQuestion, popupModel: PopupModel<any>): void;
10089
10147
  protected createTryAgainAction(): IAction;
@@ -11537,6 +11595,10 @@ declare module "packages/survey-core/src/survey" {
11537
11595
  getRootCss(): string;
11538
11596
  private resizeObserver;
11539
11597
  afterRenderSurvey(htmlElement: any): void;
11598
+ /**
11599
+ * An event that is raised when the survey's width or height is changed.
11600
+ */
11601
+ onResize: EventBase<SurveyModel, ResizeEvent>;
11540
11602
  private processResponsiveness;
11541
11603
  triggerResponsiveness(hard: boolean): void;
11542
11604
  destroyResizeObserver(): void;
@@ -11639,36 +11701,6 @@ declare module "packages/survey-core/src/survey" {
11639
11701
  * @see downloadFile
11640
11702
  */
11641
11703
  uploadFiles(question: QuestionFileModel | QuestionSignaturePadModel, name: string, files: File[], callback: (data: any | Array<any>, errors?: any | Array<any>) => any): void;
11642
- /**
11643
- * Downloads a file from a server.
11644
- *
11645
- * The following code shows how to call this method:
11646
- *
11647
- * ```js
11648
- * const question = survey.getQuestionByName("myFileQuestion");
11649
- * survey.downloadFile(
11650
- * question,
11651
- * question.name,
11652
- * // Download the first uploaded file
11653
- * question.value[0],
11654
- * (status, data) => {
11655
- * if (status === "success") {
11656
- * // Use `data` to retrieve the file
11657
- * }
11658
- * if (status === "error") {
11659
- * // Handle error
11660
- * }
11661
- * }
11662
- * );
11663
- * ```
11664
- *
11665
- * @param question A [File Upload question instance](https://surveyjs.io/form-library/documentation/api-reference/file-model).
11666
- * @param questionName The File Upload question's [`name`](https://surveyjs.io/form-library/documentation/api-reference/file-model#name).
11667
- * @param fileValue An object from File Upload's [`value`](https://surveyjs.io/form-library/documentation/api-reference/file-model#value) array. This object contains metadata about the file you want to download.
11668
- * @param callback A callback function that allows you to get the download status (`"success"` or `"error"`) and the file identifier (URL, file name, etc.) that you can use to retrieve the file.
11669
- * @see onDownloadFile
11670
- * @see uploadFiles
11671
- */
11672
11704
  downloadFile(question: QuestionFileModel, questionName: string, fileValue: any, callback: (status: string, data: any) => any): void;
11673
11705
  clearFiles(question: QuestionFileModel | QuestionSignaturePadModel, name: string, value: any, fileName: string, callback: (status: string, data: any) => any): void;
11674
11706
  updateChoicesFromServer(question: QuestionSelectBase, choices: Array<ItemValue>, serverResult: any): Array<ItemValue>;
@@ -12097,6 +12129,7 @@ declare module "packages/survey-core/src/survey" {
12097
12129
  * A survey width in CSS values.
12098
12130
  *
12099
12131
  * Default value: `undefined` (the survey inherits the width from its container)
12132
+ * @see onResize
12100
12133
  */
12101
12134
  get width(): string;
12102
12135
  set width(val: string);
@@ -12842,8 +12875,11 @@ declare module "packages/survey-core/src/question" {
12842
12875
  protected allowMobileInDesignMode(): boolean;
12843
12876
  updateIsMobileFromSurvey(): void;
12844
12877
  setIsMobile(val: boolean): void;
12878
+ protected getIsMobile(): boolean;
12879
+ get isMobile(): boolean;
12880
+ set isMobile(val: boolean);
12845
12881
  themeChanged(theme: ITheme): void;
12846
- isMobile: boolean;
12882
+ private _isMobile;
12847
12883
  forceIsInputReadOnly: boolean;
12848
12884
  ariaExpanded: "true" | "false";
12849
12885
  constructor(name: string);
@@ -13526,7 +13562,8 @@ declare module "packages/survey-core/src/question" {
13526
13562
  protected getIsAnswered(): boolean;
13527
13563
  /**
13528
13564
  * Question validators.
13529
- * @see [Data Validation](https://surveyjs.io/form-library/documentation/data-validation)
13565
+ *
13566
+ * [Data Validation](https://surveyjs.io/form-library/documentation/data-validation (linkStyle))
13530
13567
  */
13531
13568
  get validators(): Array<SurveyValidator>;
13532
13569
  set validators(val: Array<SurveyValidator>);
@@ -13652,7 +13689,7 @@ declare module "packages/survey-core/src/question" {
13652
13689
  protected checkForResponsiveness(el: HTMLElement): void;
13653
13690
  private resizeObserver;
13654
13691
  protected getObservedElementSelector(): string;
13655
- private onMobileChanged;
13692
+ protected onMobileChanged(): void;
13656
13693
  private onMobileChangedCallback;
13657
13694
  triggerResponsiveness(hard?: boolean): void;
13658
13695
  private triggerResponsivenessCallback;
@@ -13891,8 +13928,20 @@ declare module "packages/survey-core/src/martixBase" {
13891
13928
  */
13892
13929
  get rowTitleWidth(): string;
13893
13930
  set rowTitleWidth(val: string);
13931
+ /**
13932
+ * Specifies how to arrange matrix questions.
13933
+ *
13934
+ * Possible values:
13935
+ *
13936
+ * - `"table"` - Displays matrix questions in a table.
13937
+ * - `"list"` - Displays matrix questions one under another as a list.
13938
+ * - `"auto"` (default) - Uses the `"table"` mode if the survey has sufficient width to fit the table or the `"list"` mode otherwise.
13939
+ */
13940
+ set displayMode(val: "auto" | "table" | "list");
13941
+ get displayMode(): "auto" | "table" | "list";
13894
13942
  getCellAriaLabel(rowTitle: string, columnTitle: string): string;
13895
13943
  get isNewA11yStructure(): boolean;
13944
+ protected getIsMobile(): boolean;
13896
13945
  }
13897
13946
  }
13898
13947
  declare module "packages/survey-core/src/question_matrixdropdownbase" {
@@ -14430,6 +14479,7 @@ declare module "packages/survey-core/src/question_matrixdropdownbase" {
14430
14479
  getRowHeaderWrapperComponentName(cell: MatrixDropdownCell): string;
14431
14480
  getRowHeaderWrapperComponentData(cell: MatrixDropdownCell): any;
14432
14481
  get showHorizontalScroll(): boolean;
14482
+ protected onMobileChanged(): void;
14433
14483
  getRootCss(): string;
14434
14484
  }
14435
14485
  }
@@ -15034,6 +15084,7 @@ declare module "packages/survey-core/src/jsonobject" {
15034
15084
  private addDynamicPropertyIntoObj;
15035
15085
  getDynamicPropertiesByObj(obj: any, dynamicType?: string): Array<JsonObjectProperty>;
15036
15086
  getDynamicPropertiesByTypes(objType: string, dynamicType: string, invalidNames?: Array<string>): Array<JsonObjectProperty>;
15087
+ private canAddDybamicProp;
15037
15088
  hasOriginalProperty(obj: Base, propName: string): boolean;
15038
15089
  getOriginalProperty(obj: Base, propName: string): JsonObjectProperty;
15039
15090
  getProperty(className: string, propertyName: string): JsonObjectProperty;
@@ -16141,7 +16192,7 @@ declare module "packages/survey-core/src/settings" {
16141
16192
  * Nested properties:
16142
16193
  *
16143
16194
  * - `lifetime`: `number`\
16144
- * Specifies a time period during which a notification is displayed; measured in milliseconds.
16195
+ * Specifies a time period during which a notification is displayed; measured in milliseconds. Default value: 2000.
16145
16196
  */
16146
16197
  notifications: {
16147
16198
  lifetime: number;
@@ -16988,6 +17039,7 @@ declare module "packages/survey-core/src/question_checkbox" {
16988
17039
  */
16989
17040
  export class QuestionCheckboxModel extends QuestionCheckboxBase {
16990
17041
  private selectAllItemValue;
17042
+ protected selectAllItemText: LocalizableString;
16991
17043
  private invisibleOldValues;
16992
17044
  protected defaultSelectedItemValues: Array<ItemValue>;
16993
17045
  constructor(name: string);
@@ -17032,6 +17084,7 @@ declare module "packages/survey-core/src/question_checkbox" {
17032
17084
  get isAllSelected(): boolean;
17033
17085
  set isAllSelected(val: boolean);
17034
17086
  toggleSelectAll(): void;
17087
+ protected allElementsSelected(): boolean;
17035
17088
  /**
17036
17089
  * Selects all choice items, except "Other" and "None".
17037
17090
  *
@@ -17203,6 +17256,7 @@ declare module "packages/survey-core/src/question_tagbox" {
17203
17256
  export class QuestionTagboxModel extends QuestionCheckboxModel {
17204
17257
  dropdownListModel: DropdownMultiSelectListModel;
17205
17258
  private itemDisplayNameMap;
17259
+ private deselectAllItemText;
17206
17260
  constructor(name: string);
17207
17261
  locStrsChanged(): void;
17208
17262
  private updateReadOnlyText;
@@ -17278,6 +17332,8 @@ declare module "packages/survey-core/src/question_tagbox" {
17278
17332
  protected supportEmptyValidation(): boolean;
17279
17333
  protected onBlurCore(event: any): void;
17280
17334
  protected onFocusCore(event: any): void;
17335
+ protected allElementsSelected(): boolean;
17336
+ updateSelectAllItemText(isAllSelected: boolean): void;
17281
17337
  dispose(): void;
17282
17338
  clearValue(keepComment?: boolean): void;
17283
17339
  get showClearButton(): boolean;
@@ -26974,6 +27030,7 @@ declare module "packages/survey-react-ui/src/reactquestion" {
26974
27030
  constructor(props: any);
26975
27031
  private get question();
26976
27032
  private update;
27033
+ protected getQuestionPropertiesToTrack(): string[];
26977
27034
  private registerCallback;
26978
27035
  private unRegisterCallback;
26979
27036
  componentDidUpdate(prevProps: Readonly<any>): void;
@@ -27767,6 +27824,7 @@ declare module "packages/survey-react-ui/src/reactquestion_matrixdropdownbase" {
27767
27824
  protected getShowErrors(): boolean;
27768
27825
  protected getCellStyle(): any;
27769
27826
  protected getHeaderText(): string;
27827
+ protected renderElement(): JSX.Element | null;
27770
27828
  protected renderCellContent(): JSX.Element;
27771
27829
  protected renderQuestion(): JSX.Element;
27772
27830
  private renderOtherComment;