survey-analytics
Version:
SurveyJS Dashboard is a UI component for visualizing and analyzing survey data. It interprets the form JSON schema to identify question types and renders collected responses using interactive charts and tables.
48 lines (47 loc) • 2.96 kB
TypeScript
import { Question, QuestionCheckboxModel, QuestionCompositeModel, QuestionCustomModel, QuestionDropdownModel, QuestionFileModel, QuestionMatrixDropdownModel, QuestionMatrixModel, QuestionRadiogroupModel } from "survey-core";
import { BaseColumn, CompositeQuestionColumn, CustomQuestionColumn, FileColumn, ImageColumn } from "./columns";
import { IColumn } from "./config";
import { Table } from "./table";
export interface IColumnsBuilder {
buildColumns(question: Question, table: Table): Array<IColumn>;
}
export declare class DefaultColumnsBuilder<T extends Question = Question> implements IColumnsBuilder {
protected createColumn(question: T, table: Table): BaseColumn<T>;
protected buildColumnsCore(question: T, table: Table): Array<IColumn>;
buildColumns(question: T, table: Table): Array<IColumn>;
}
export declare class ColumnsBuilderFactory {
static Instance: ColumnsBuilderFactory;
private constructor();
private readonly columnsBuilders;
private readonly defaultColumnsBuilder;
registerBuilderColumn(type: string, columnsBuilder: IColumnsBuilder): void;
getColumnsBuilder(type: string): IColumnsBuilder;
}
export declare class CheckboxColumnsBuilder extends DefaultColumnsBuilder<QuestionCheckboxModel> {
protected createColumn(question: QuestionCheckboxModel, table: Table): BaseColumn<QuestionCheckboxModel>;
}
export declare class SingleChoiceColumnsBuilder extends DefaultColumnsBuilder<QuestionDropdownModel | QuestionRadiogroupModel> {
protected createColumn(question: QuestionDropdownModel | QuestionRadiogroupModel, table: Table): BaseColumn<QuestionDropdownModel | QuestionRadiogroupModel>;
}
export declare class MatrixColumnsBuilder extends DefaultColumnsBuilder<QuestionMatrixModel> {
protected buildColumnsCore(questionBase: Question, table: Table): IColumn[];
}
export declare class ImageColumnsBuilder extends DefaultColumnsBuilder {
protected createColumn(question: Question, table: Table): ImageColumn;
}
export declare class FileColumnsBuilder extends DefaultColumnsBuilder<QuestionFileModel> {
protected createColumn(question: QuestionFileModel, table: Table): FileColumn;
}
export declare class MatrixDropdownColumnBuilder extends DefaultColumnsBuilder {
buildColumns(questionBase: QuestionMatrixDropdownModel, table: Table): Array<IColumn>;
}
export declare class CustomColumnsBuilder extends DefaultColumnsBuilder<QuestionCustomModel> {
protected createColumn(question: QuestionCustomModel, table: Table): CustomQuestionColumn;
}
export declare class CompositeColumnsBuilder extends DefaultColumnsBuilder<QuestionCompositeModel> {
static ShowAsSeparateColumns: boolean;
protected getDisplayName(question: QuestionCompositeModel, table: Table): string;
protected buildColumnsCore(question: QuestionCompositeModel, table: Table): Array<IColumn>;
protected createColumn(question: QuestionCompositeModel, table: Table): CompositeQuestionColumn;
}