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.

58 lines (57 loc) 3.77 kB
import { Question, QuestionCheckboxModel, QuestionCompositeModel, QuestionCustomModel, QuestionDropdownModel, QuestionFileModel, QuestionMatrixDropdownModel, QuestionMatrixDynamicModel, QuestionMatrixModel, QuestionPanelDynamicModel, QuestionRadiogroupModel, QuestionSelectBase } from "survey-core"; import { BaseColumn, CompositeQuestionColumn, CustomQuestionColumn, FileColumn, ImageColumn, MatrixDynamicColumn, PanelDynamicColumn } 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 SelectBaseColumnsBuilder<T extends QuestionSelectBase> extends DefaultColumnsBuilder<T> { buildColumns(question: T, table: Table): Array<IColumn>; } export declare class CheckboxColumnsBuilder extends SelectBaseColumnsBuilder<QuestionCheckboxModel> { protected createColumn(question: QuestionCheckboxModel, table: Table): BaseColumn<QuestionCheckboxModel>; protected buildColumnsCore(question: QuestionCheckboxModel, table: Table): Array<IColumn>; } export declare class SingleChoiceColumnsBuilder extends SelectBaseColumnsBuilder<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; } export declare class MatrixDynamicColumnsBuilder extends DefaultColumnsBuilder<QuestionMatrixDynamicModel> { protected createColumn(question: QuestionMatrixDynamicModel, table: Table): MatrixDynamicColumn; } export declare class PanelDynamicColumnsBuilder extends DefaultColumnsBuilder<QuestionPanelDynamicModel> { protected createColumn(question: QuestionPanelDynamicModel, table: Table): PanelDynamicColumn; }