UNPKG

survey-analytics

Version:

SurveyJS analytics Library.

115 lines (114 loc) 4.33 kB
import { Question, ItemValue, Event } from "survey-core"; import { VisualizerBase } from "./visualizerBase"; export interface IVisualizerWithSelection { selection: ItemValue; onDataItemSelected: (selectedValue: any, selectedText: string) => void; setSelection(item: ItemValue): void; } export interface IAnswersData { datasets: Array<Array<any>>; labels: Array<string>; colors: Array<string>; texts: Array<Array<any>>; seriesLabels: Array<string>; } export declare function hideEmptyAnswersInData(answersData: IAnswersData): IAnswersData; export declare class SelectBase extends VisualizerBase implements IVisualizerWithSelection { protected selectedItem: ItemValue; private choicesOrderSelector; private showPercentageBtn; private emptyAnswersBtn; private transposeDataBtn; private topNSelector; private _showPercentages; private _showOnlyPercentages; private _percentagePrecision; protected _answersOrder: string; protected _supportSelection: boolean; private _hideEmptyAnswers; private _topN; static topNValuesDefaults: number[]; topNValues: any[]; private _transposeData; private _showMissingAnswers; private missingAnswersBtn; constructor(question: Question, data: Array<{ [index: string]: any; }>, options?: any, name?: string); protected chartTypes: string[]; protected _chartType: string; /** * Chart type - current chart type. */ get chartType(): string; set chartType(newChartType: string); private updateEmptyAnswersBtn; private updateTransposeDataBtn; private updateOrderSelector; private updateShowPercentageBtn; private updateTopNSelector; private updateMissingAnswersBtn; protected onChartTypeChanged(): void; protected setChartType(chartType: string): void; protected getCorrectAnswerText(): string; getSelectedItemByText(itemText: string): any; setSelection(item: ItemValue): void; get selection(): ItemValue; /** * Gets and sets whether chart should show percentages only. */ get showOnlyPercentages(): boolean; set showOnlyPercentages(val: boolean); /** * Gets and sets whether chart should show values and percentages. */ get showPercentages(): boolean; set showPercentages(val: boolean); /** * Gets and sets chart elements order. */ get answersOrder(): string; set answersOrder(value: string); /** * Set to true if need to hide empty chart elements (e.g. bars vith zero value). */ get hideEmptyAnswers(): boolean; set hideEmptyAnswers(value: boolean); get transposeData(): boolean; set transposeData(value: boolean); /** * Set to some value if need to show top N chart elements. */ get topN(): number; set topN(value: number); protected isSupportAnswersOrder(): boolean; protected isSupportMissingAnswers(): boolean; /** * Set to true if you want to see chart elements for missing answers (e.g. radiogroup items never been selected by surveyee). */ get showMissingAnswers(): boolean; set showMissingAnswers(value: boolean); refreshContent(): void; onDataItemSelected: (selectedValue: any, selectedText: string) => void; get showValuesInOriginalOrder(): boolean; valuesSource(): Array<ItemValue>; getValues(): Array<any>; getLabels(): Array<string>; getPercentages(data: Array<Array<number>>): Array<Array<number>>; protected answersDataReady(answersData: IAnswersData): any; /** * Fires when answer data has been combined before they passed to draw graph. * options - the answers data object containing: datasets, labels, colors, additional texts (percentage). * options fields can be modified */ onAnswersDataReady: Event<(sender: SelectBase, options: any) => any, SelectBase, any>; /** * Returns object with all infotmation for data visualization: datasets, labels, colors, additional texts (percentage). */ getAnswersData(): Promise<IAnswersData>; convertFromExternalData(externalCalculatedData: any): any[]; protected transpose(data: Array<Array<number>>): Array<Array<number>>; private static _stateProperties; getState(): any; setState(state: any): void; }