UNPKG

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
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; }