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.
87 lines (86 loc) • 3.27 kB
TypeScript
import { ItemValue, Question } from "survey-core";
import { IAnswersData, SelectBase } from "./selectBase";
export declare type HistogramIntervalMode = "auto" | "custom" | "decades" | "years" | "quarters" | "months" | "days";
export interface IHistogramInterval {
start: number;
end: number;
label: string;
}
export declare function getBestIntervalMode(min: number, max: number): HistogramIntervalMode;
export declare const intervalCalculators: {
decades: (min: number, max: number) => any[];
years: (min: number, max: number) => any[];
months: (min: number, max: number) => any[];
quarters: (min: number, max: number) => any[];
days: (min: number, max: number) => any[];
};
export declare class HistogramModel extends SelectBase {
protected valueType: "date" | "number";
private _cachedValues;
private _continuousData;
private _cachedIntervals;
private _intervalPrecision;
private showRunningTotalsBtn;
private showGroupedBtn;
private changeIntervalsModeSelector;
private aggregateDataNameSelector;
static IntervalsCount: number;
static UseIntervalsFrom: number;
constructor(question: Question, data: Array<{
[index: string]: any;
}>, options?: Object, name?: string);
private updateIntervalsModeSelector;
private updateAggregateDataNameSelector;
private reset;
getContinuousValue(value: any): number;
getString(value: number): string;
private toPrecision;
getSelectedItemByText(itemText: string): ItemValue;
/**
* Updates visualizer data.
*/
updateData(data: Array<{
[index: string]: any;
}>): void;
protected onDataChanged(): void;
protected onSelectionChanged(item: ItemValue): void;
protected getContinuousValues(): {
original: any;
continuous: number;
row: any;
}[];
protected isSupportSoftUpdateContent(): boolean;
protected isSupportMissingAnswers(): boolean;
protected get needUseRateValues(): boolean;
getValues(): Array<any>;
getLabels(): Array<string>;
get hasCustomIntervals(): boolean;
get intervals(): any;
intervalModes: HistogramIntervalMode[];
private _intervalsMode;
get intervalsMode(): HistogramIntervalMode;
set intervalsMode(val: HistogramIntervalMode);
get allowChangeIntervals(): boolean;
private _showRunningTotals;
get showRunningTotals(): boolean;
set showRunningTotals(val: boolean);
private updateShowRunningTotalsBtn;
private _showGrouped;
get showGrouped(): boolean;
set showGrouped(val: boolean);
private updateShowGroupedBtn;
get canShowGroupedDateSeries(): boolean;
private _aggregateDataName;
get aggregateDataName(): string;
set aggregateDataName(val: string);
get possibleAggregateDataNames(): Array<string>;
convertFromExternalData(externalCalculatedData: any): any[];
protected getCalculatedValuesCore(): Array<any>;
getCalculatedValues(): Promise<Array<Object>>;
private getGroupedDateAnswersData;
/**
* Returns object with all infotmation for data visualization: datasets, labels, colors, additional texts (percentage).
*/
getAnswersData(): Promise<IAnswersData>;
getValueType(): "date" | "number";
}