survey-analytics 2.3.10 → 2.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/fesm/shared.mjs +496 -32
  2. package/fesm/shared.mjs.map +1 -1
  3. package/fesm/shared2.mjs +696 -212
  4. package/fesm/shared2.mjs.map +1 -1
  5. package/fesm/survey.analytics.core.mjs +2 -2
  6. package/fesm/survey.analytics.mjs +26 -8
  7. package/fesm/survey.analytics.mjs.map +1 -1
  8. package/fesm/survey.analytics.mongo.mjs +1 -1
  9. package/fesm/survey.analytics.tabulator.mjs +33 -8
  10. package/fesm/survey.analytics.tabulator.mjs.map +1 -1
  11. package/package.json +4 -3
  12. package/survey-analytics-tabulator.types/analytics-localization/arabic.d.ts +16 -0
  13. package/survey-analytics-tabulator.types/analytics-localization/dutch.d.ts +16 -0
  14. package/survey-analytics-tabulator.types/analytics-localization/english.d.ts +16 -0
  15. package/survey-analytics-tabulator.types/analytics-localization/farsi.d.ts +16 -0
  16. package/survey-analytics-tabulator.types/analytics-localization/finnish.d.ts +16 -0
  17. package/survey-analytics-tabulator.types/analytics-localization/french.d.ts +16 -0
  18. package/survey-analytics-tabulator.types/analytics-localization/german.d.ts +16 -0
  19. package/survey-analytics-tabulator.types/analytics-localization/italian.d.ts +16 -0
  20. package/survey-analytics-tabulator.types/analytics-localization/japanese.d.ts +16 -0
  21. package/survey-analytics-tabulator.types/analytics-localization/norwegian.d.ts +16 -0
  22. package/survey-analytics-tabulator.types/analytics-localization/polish.d.ts +16 -0
  23. package/survey-analytics-tabulator.types/analytics-localization/portuguese.d.ts +16 -0
  24. package/survey-analytics-tabulator.types/analytics-localization/russian.d.ts +16 -0
  25. package/survey-analytics-tabulator.types/analytics-localization/spanish.d.ts +16 -0
  26. package/survey-analytics-tabulator.types/analytics-localization/swedish.d.ts +16 -0
  27. package/survey-analytics-tabulator.types/localizationManager.d.ts +16 -0
  28. package/survey-analytics-tabulator.types/tables/table.d.ts +19 -0
  29. package/survey-analytics-tabulator.types/tables/tabulator.d.ts +2 -0
  30. package/survey-analytics.types/analytics-localization/arabic.d.ts +16 -0
  31. package/survey-analytics.types/analytics-localization/dutch.d.ts +16 -0
  32. package/survey-analytics.types/analytics-localization/english.d.ts +16 -0
  33. package/survey-analytics.types/analytics-localization/farsi.d.ts +16 -0
  34. package/survey-analytics.types/analytics-localization/finnish.d.ts +16 -0
  35. package/survey-analytics.types/analytics-localization/french.d.ts +16 -0
  36. package/survey-analytics.types/analytics-localization/german.d.ts +16 -0
  37. package/survey-analytics.types/analytics-localization/italian.d.ts +16 -0
  38. package/survey-analytics.types/analytics-localization/japanese.d.ts +16 -0
  39. package/survey-analytics.types/analytics-localization/norwegian.d.ts +16 -0
  40. package/survey-analytics.types/analytics-localization/polish.d.ts +16 -0
  41. package/survey-analytics.types/analytics-localization/portuguese.d.ts +16 -0
  42. package/survey-analytics.types/analytics-localization/russian.d.ts +16 -0
  43. package/survey-analytics.types/analytics-localization/spanish.d.ts +16 -0
  44. package/survey-analytics.types/analytics-localization/swedish.d.ts +16 -0
  45. package/survey-analytics.types/dataProvider.d.ts +10 -0
  46. package/survey-analytics.types/entries/mongo.d.ts +1 -0
  47. package/survey-analytics.types/histogram.d.ts +48 -1
  48. package/survey-analytics.types/localizationManager.d.ts +16 -0
  49. package/survey-analytics.types/mongo/index.d.ts +16 -0
  50. package/survey-analytics.types/mongo/pipelines.d.ts +1 -0
  51. package/survey-analytics.types/mongo/result-transformers.d.ts +35 -0
  52. package/survey-analytics.types/selectBase.d.ts +3 -1
  53. package/survey-analytics.types/statisticCalculators.d.ts +12 -2
  54. package/survey-analytics.types/visualizationMatrixDropdown.d.ts +4 -6
  55. package/survey-analytics.types/visualizationPanel.d.ts +1 -0
  56. package/survey-analytics.types/visualizationPanelDynamic.d.ts +2 -5
  57. package/survey-analytics.types/visualizerBase.d.ts +2 -0
  58. package/survey.analytics.core.css +1 -1
  59. package/survey.analytics.core.d.ts +1 -0
  60. package/survey.analytics.core.js +1232 -218
  61. package/survey.analytics.core.js.map +1 -1
  62. package/survey.analytics.core.min.css +1 -1
  63. package/survey.analytics.core.min.js +1 -1
  64. package/survey.analytics.core.min.js.LICENSE.txt +1 -1
  65. package/survey.analytics.css +1 -1
  66. package/survey.analytics.d.ts +1 -0
  67. package/survey.analytics.js +1257 -223
  68. package/survey.analytics.js.map +1 -1
  69. package/survey.analytics.min.css +1 -1
  70. package/survey.analytics.min.js +1 -1
  71. package/survey.analytics.min.js.LICENSE.txt +1 -1
  72. package/survey.analytics.mongo.d.ts +1 -0
  73. package/survey.analytics.mongo.js +1 -1
  74. package/survey.analytics.mongo.min.js.LICENSE.txt +1 -1
  75. package/survey.analytics.tabulator.css +1 -1
  76. package/survey.analytics.tabulator.d.ts +1 -0
  77. package/survey.analytics.tabulator.js +529 -40
  78. package/survey.analytics.tabulator.js.map +1 -1
  79. package/survey.analytics.tabulator.min.css +1 -1
  80. package/survey.analytics.tabulator.min.js +1 -1
  81. package/survey.analytics.tabulator.min.js.LICENSE.txt +1 -1
@@ -81,4 +81,20 @@ export declare var portugueseStrings: {
81
81
  axisXAlternativeSelectorTitle: string;
82
82
  axisYAlternativeSelectorTitle: string;
83
83
  notSelected: string;
84
+ intervalMode_default: string;
85
+ intervalMode_decades: string;
86
+ intervalMode_years: string;
87
+ intervalMode_quarters: string;
88
+ intervalMode_months: string;
89
+ intervalMode_days: string;
90
+ intervalMode_custom: string;
91
+ intervalMode_auto: string;
92
+ intervalModeTitle: string;
93
+ noRunningTotals: string;
94
+ runningTotals: string;
95
+ groupDateSeries: string;
96
+ ungroupDateSeries: string;
97
+ noneAggregateText: string;
98
+ selectAggregateText: string;
99
+ groupedYearsAxisTitle: string;
84
100
  };
@@ -81,4 +81,20 @@ export declare var russianStrings: {
81
81
  axisXAlternativeSelectorTitle: string;
82
82
  axisYAlternativeSelectorTitle: string;
83
83
  notSelected: string;
84
+ intervalMode_default: string;
85
+ intervalMode_decades: string;
86
+ intervalMode_years: string;
87
+ intervalMode_quarters: string;
88
+ intervalMode_months: string;
89
+ intervalMode_days: string;
90
+ intervalMode_custom: string;
91
+ intervalMode_auto: string;
92
+ intervalModeTitle: string;
93
+ noRunningTotals: string;
94
+ runningTotals: string;
95
+ groupDateSeries: string;
96
+ ungroupDateSeries: string;
97
+ noneAggregateText: string;
98
+ selectAggregateText: string;
99
+ groupedYearsAxisTitle: string;
84
100
  };
@@ -81,4 +81,20 @@ export declare var spanishStrings: {
81
81
  axisXAlternativeSelectorTitle: string;
82
82
  axisYAlternativeSelectorTitle: string;
83
83
  notSelected: string;
84
+ intervalMode_default: string;
85
+ intervalMode_decades: string;
86
+ intervalMode_years: string;
87
+ intervalMode_quarters: string;
88
+ intervalMode_months: string;
89
+ intervalMode_days: string;
90
+ intervalMode_custom: string;
91
+ intervalMode_auto: string;
92
+ intervalModeTitle: string;
93
+ noRunningTotals: string;
94
+ runningTotals: string;
95
+ groupDateSeries: string;
96
+ ungroupDateSeries: string;
97
+ noneAggregateText: string;
98
+ selectAggregateText: string;
99
+ groupedYearsAxisTitle: string;
84
100
  };
@@ -81,4 +81,20 @@ export declare var swedishStrings: {
81
81
  axisXAlternativeSelectorTitle: string;
82
82
  axisYAlternativeSelectorTitle: string;
83
83
  notSelected: string;
84
+ intervalMode_default: string;
85
+ intervalMode_decades: string;
86
+ intervalMode_years: string;
87
+ intervalMode_quarters: string;
88
+ intervalMode_months: string;
89
+ intervalMode_days: string;
90
+ intervalMode_custom: string;
91
+ intervalMode_auto: string;
92
+ intervalModeTitle: string;
93
+ noRunningTotals: string;
94
+ runningTotals: string;
95
+ groupDateSeries: string;
96
+ ungroupDateSeries: string;
97
+ noneAggregateText: string;
98
+ selectAggregateText: string;
99
+ groupedYearsAxisTitle: string;
84
100
  };
@@ -33,10 +33,20 @@ export declare class DataProvider {
33
33
  * Sets filter by question name and value.
34
34
  */
35
35
  setFilter(questionName: string, selectedValue: any): void;
36
+ /**
37
+ * Resets filter.
38
+ */
39
+ resetFilter(): void;
40
+ /**
41
+ * Fires when data has been changed.
42
+ */
43
+ onFilterChanged: Event<(sender: DataProvider, options: any) => any, DataProvider, any>;
44
+ raiseFilterChanged(questionName?: string, selectedValue?: any): void;
36
45
  /**
37
46
  * Fires when data has been changed.
38
47
  */
39
48
  onDataChanged: Event<(sender: DataProvider, options: any) => any, DataProvider, any>;
40
49
  raiseDataChanged(questionName?: string): void;
41
50
  getFilters(): SummaryFilter[];
51
+ fixDropdownData(dataNames: string[]): void;
42
52
  }
@@ -0,0 +1 @@
1
+ export * from "../mongo";
@@ -1,16 +1,36 @@
1
1
  import { ItemValue, Question } from "survey-core";
2
- import { SelectBase } from "./selectBase";
2
+ import { IAnswersData, SelectBase } from "./selectBase";
3
+ export declare type HistogramIntervalMode = "auto" | "custom" | "decades" | "years" | "quarters" | "months" | "days";
4
+ export interface IHistogramInterval {
5
+ start: number;
6
+ end: number;
7
+ label: string;
8
+ }
9
+ export declare function getBestIntervalMode(min: number, max: number): HistogramIntervalMode;
10
+ export declare const intervalCalculators: {
11
+ decades: (min: number, max: number) => any[];
12
+ years: (min: number, max: number) => any[];
13
+ months: (min: number, max: number) => any[];
14
+ quarters: (min: number, max: number) => any[];
15
+ days: (min: number, max: number) => any[];
16
+ };
3
17
  export declare class HistogramModel extends SelectBase {
4
18
  protected valueType: "date" | "number";
5
19
  private _cachedValues;
6
20
  private _continuousData;
7
21
  private _cachedIntervals;
8
22
  private _intervalPrecision;
23
+ private showRunningTotalsBtn;
24
+ private showGroupedBtn;
25
+ private changeIntervalsModeSelector;
26
+ private aggregateDataNameSelector;
9
27
  static IntervalsCount: number;
10
28
  static UseIntervalsFrom: number;
11
29
  constructor(question: Question, data: Array<{
12
30
  [index: string]: any;
13
31
  }>, options?: Object, name?: string);
32
+ private updateIntervalsModeSelector;
33
+ private updateAggregateDataNameSelector;
14
34
  private reset;
15
35
  getContinuousValue(value: any): number;
16
36
  getString(value: number): string;
@@ -23,17 +43,44 @@ export declare class HistogramModel extends SelectBase {
23
43
  [index: string]: any;
24
44
  }>): void;
25
45
  protected onDataChanged(): void;
46
+ protected onSelectionChanged(item: ItemValue): void;
26
47
  protected getContinuousValues(): {
27
48
  original: any;
28
49
  continuous: number;
50
+ row: any;
29
51
  }[];
52
+ protected isSupportSoftUpdateContent(): boolean;
30
53
  protected isSupportMissingAnswers(): boolean;
31
54
  protected get needUseRateValues(): boolean;
32
55
  getValues(): Array<any>;
33
56
  getLabels(): Array<string>;
34
57
  get hasCustomIntervals(): boolean;
35
58
  get intervals(): any;
59
+ intervalModes: HistogramIntervalMode[];
60
+ private _intervalsMode;
61
+ get intervalsMode(): HistogramIntervalMode;
62
+ set intervalsMode(val: HistogramIntervalMode);
63
+ get allowChangeIntervals(): boolean;
64
+ private _showRunningTotals;
65
+ get showRunningTotals(): boolean;
66
+ set showRunningTotals(val: boolean);
67
+ private updateShowRunningTotalsBtn;
68
+ private _showGrouped;
69
+ get showGrouped(): boolean;
70
+ set showGrouped(val: boolean);
71
+ private updateShowGroupedBtn;
72
+ get canShowGroupedDateSeries(): boolean;
73
+ private _aggregateDataName;
74
+ get aggregateDataName(): string;
75
+ set aggregateDataName(val: string);
76
+ get possibleAggregateDataNames(): Array<string>;
36
77
  convertFromExternalData(externalCalculatedData: any): any[];
37
78
  protected getCalculatedValuesCore(): Array<any>;
79
+ getCalculatedValues(): Promise<Array<Object>>;
80
+ private getGroupedDateAnswersData;
81
+ /**
82
+ * Returns object with all infotmation for data visualization: datasets, labels, colors, additional texts (percentage).
83
+ */
84
+ getAnswersData(): Promise<IAnswersData>;
38
85
  getValueType(): "date" | "number";
39
86
  }
@@ -98,6 +98,22 @@ export declare var surveyStrings: {
98
98
  axisXAlternativeSelectorTitle: string;
99
99
  axisYAlternativeSelectorTitle: string;
100
100
  notSelected: string;
101
+ intervalMode_default: string;
102
+ intervalMode_decades: string;
103
+ intervalMode_years: string;
104
+ intervalMode_quarters: string;
105
+ intervalMode_months: string;
106
+ intervalMode_days: string;
107
+ intervalMode_custom: string;
108
+ intervalMode_auto: string;
109
+ intervalModeTitle: string;
110
+ noRunningTotals: string;
111
+ runningTotals: string;
112
+ groupDateSeries: string;
113
+ ungroupDateSeries: string;
114
+ noneAggregateText: string;
115
+ selectAggregateText: string;
116
+ groupedYearsAxisTitle: string;
101
117
  license: string;
102
118
  license2: string;
103
119
  };
@@ -0,0 +1,16 @@
1
+ import { Db } from "mongodb";
2
+ export interface IFilterItem {
3
+ field: string;
4
+ value: any;
5
+ }
6
+ export declare class MongoDbAdapter {
7
+ private db;
8
+ private getId;
9
+ constructor(db: Db, getId: () => string);
10
+ create(collectionName: string, object: any): Promise<unknown>;
11
+ retrieve(collectionName: string, filter: Array<IFilterItem>): Promise<unknown>;
12
+ update(collectionName: string, object: any): Promise<unknown>;
13
+ delete(collectionName: string, id: any): Promise<unknown>;
14
+ retrievePaginated(collectionName: string, filter: any, order: any, offset: number, limit: number): Promise<unknown>;
15
+ retrieveSummary(collectionName: string, surveyId: string, questionId: string, questionType: string, visualizerType: string, filter: Array<IFilterItem>): Promise<unknown>;
16
+ }
@@ -0,0 +1 @@
1
+ export declare function createPipeline(surveyId: string, questionId: string, visualizerType: string, questionType: string): any[];
@@ -0,0 +1,35 @@
1
+ declare function choiceTransformationPipeline(result: any): {
2
+ data: {};
3
+ totalCount: number;
4
+ };
5
+ declare function numberTransformationPipeline(result: any): {
6
+ value: number;
7
+ minValue: number;
8
+ maxValue: number;
9
+ data?: undefined;
10
+ } | {
11
+ data: {
12
+ value: any;
13
+ minValue: any;
14
+ maxValue: any;
15
+ };
16
+ value?: undefined;
17
+ minValue?: undefined;
18
+ maxValue?: undefined;
19
+ };
20
+ declare function histogramTransformationPipeline(result: any): {
21
+ data: any[];
22
+ intervals: any;
23
+ totalCount: number;
24
+ };
25
+ export declare const transformers: {
26
+ boolean: typeof choiceTransformationPipeline;
27
+ radiogroup: typeof choiceTransformationPipeline;
28
+ dropdown: typeof choiceTransformationPipeline;
29
+ checkbox: typeof choiceTransformationPipeline;
30
+ tagbox: typeof choiceTransformationPipeline;
31
+ number: typeof numberTransformationPipeline;
32
+ rating: typeof numberTransformationPipeline;
33
+ histogram: typeof histogramTransformationPipeline;
34
+ };
35
+ export {};
@@ -11,6 +11,8 @@ export interface IAnswersData {
11
11
  colors: Array<string>;
12
12
  texts: Array<Array<any>>;
13
13
  seriesLabels: Array<string>;
14
+ labelsTitle?: string;
15
+ valuesTitle?: string;
14
16
  }
15
17
  export declare function hideEmptyAnswersInData(answersData: IAnswersData): IAnswersData;
16
18
  export declare class SelectBase extends VisualizerBase implements IVisualizerWithSelection {
@@ -53,6 +55,7 @@ export declare class SelectBase extends VisualizerBase implements IVisualizerWit
53
55
  protected isSupportSoftUpdateContent(): boolean;
54
56
  protected softUpdateContent(): void;
55
57
  getSelectedItemByText(itemText: string): any;
58
+ protected onSelectionChanged(item: ItemValue): void;
56
59
  setSelection(item: ItemValue): void;
57
60
  get selection(): ItemValue;
58
61
  /**
@@ -97,7 +100,6 @@ export declare class SelectBase extends VisualizerBase implements IVisualizerWit
97
100
  getValues(): Array<any>;
98
101
  getLabels(): Array<string>;
99
102
  getPercentages(data: Array<Array<number>>): Array<Array<number>>;
100
- protected answersDataReady(answersData: IAnswersData): any;
101
103
  /**
102
104
  * Fires when answer data has been combined before they passed to draw graph.
103
105
  * options - the answers data object containing: datasets, labels, colors, additional texts (percentage).
@@ -1,4 +1,14 @@
1
1
  import { IDataInfo } from "./visualizerBase";
2
2
  export declare function defaultStatisticsCalculator(data: Array<any>, dataInfo: IDataInfo): Array<any>;
3
- export declare function histogramStatisticsCalculator(data: any, intervals: any, seriesValues: Array<string>): Array<any>;
4
- export declare function mathStatisticsCalculator(data: Array<any>, dataName: string): number[];
3
+ export declare function histogramStatisticsCalculator(data: {
4
+ [series: string]: Array<{
5
+ continuous: number;
6
+ row: any;
7
+ }>;
8
+ }, intervals: Array<{
9
+ start: number;
10
+ end: number;
11
+ label: string;
12
+ }>, dataInfo: IDataInfo, aggregateDataNames?: any[]): Array<any>;
13
+ export declare function mathStatisticsCalculator(data: Array<any>, dataInfo: IDataInfo): number[];
14
+ export declare function getNestedDataRows(dataRow: any, dataInfo: IDataInfo): Array<any>;
@@ -1,7 +1,7 @@
1
- import { QuestionMatrixDropdownModel } from "survey-core";
1
+ import { QuestionMatrixDropdownModel, Question } from "survey-core";
2
2
  import { VisualizerBase } from "./visualizerBase";
3
3
  export declare class VisualizationMatrixDropdown extends VisualizerBase {
4
- protected _matrixDropdownVisualizer: VisualizerBase;
4
+ protected _contentVisualizer: VisualizerBase;
5
5
  private readonly _childOptions;
6
6
  constructor(question: QuestionMatrixDropdownModel, data: Array<{
7
7
  [index: string]: any;
@@ -10,14 +10,12 @@ export declare class VisualizationMatrixDropdown extends VisualizerBase {
10
10
  }, name?: string);
11
11
  get canGroupColumns(): boolean;
12
12
  protected setLocale(newLocale: string): void;
13
- get matrixDropdownVisualizer(): VisualizerBase;
13
+ get contentVisualizer(): VisualizerBase;
14
14
  private onPanelAfterRenderCallback;
15
- private updateDropdownVisualizerData;
16
15
  updateData(data: Array<{
17
16
  [index: string]: any;
18
17
  }>): void;
19
- protected onDataChanged(): void;
20
- getQuestions(): any[];
18
+ getQuestions(): Array<Question>;
21
19
  destroyContent(container: HTMLElement): void;
22
20
  renderContent(container: HTMLElement): void;
23
21
  destroy(): void;
@@ -266,6 +266,7 @@ export declare class VisualizationPanel extends VisualizerBase {
266
266
  constructor(questions: Array<any>, data: Array<{
267
267
  [index: string]: any;
268
268
  }>, options?: IVisualizationPanelOptions, _elements?: Array<IVisualizerPanelRenderedElement>, isRoot?: boolean);
269
+ resetFilter(): void;
269
270
  reorderVisibleElements(order: string[]): void;
270
271
  private onAfterRenderQuestionCallback;
271
272
  private onStateChangedCallback;
@@ -2,7 +2,7 @@ import { VisualizerBase } from "./visualizerBase";
2
2
  import { VisualizationPanel } from "./visualizationPanel";
3
3
  import { Question, IQuestion } from "survey-core";
4
4
  export declare class VisualizationPanelDynamic extends VisualizerBase {
5
- protected _panelVisualizer: VisualizationPanel;
5
+ protected _contentVisualizer: VisualizationPanel;
6
6
  constructor(question: Question, data: Array<{
7
7
  [index: string]: any;
8
8
  }>, options?: {
@@ -11,10 +11,7 @@ export declare class VisualizationPanelDynamic extends VisualizerBase {
11
11
  get contentVisualizer(): VisualizationPanel;
12
12
  protected setLocale(newLocale: string): void;
13
13
  private onAfterRenderPanelCallback;
14
- updateData(data: Array<{
15
- [index: string]: any;
16
- }>): void;
17
- protected onDataChanged(): void;
14
+ resetFilter(): void;
18
15
  getQuestions(): IQuestion[];
19
16
  destroyContent(container: HTMLElement): void;
20
17
  renderContent(container: HTMLElement): void;
@@ -9,6 +9,7 @@ export interface IChartAdapter {
9
9
  }
10
10
  export interface IDataInfo {
11
11
  name: string;
12
+ dataPath?: string;
12
13
  dataNames: Array<string>;
13
14
  getValues(): Array<any>;
14
15
  getLabels(): Array<string>;
@@ -139,6 +140,7 @@ export declare class VisualizerBase implements IDataInfo {
139
140
  */
140
141
  get name(): string;
141
142
  get dataNames(): Array<string>;
143
+ get dataPath(): string;
142
144
  /**
143
145
  * Indicates whether the visualizer displays a header. This property is `true` when a visualized question has a correct answer.
144
146
  * @see hasFooter
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.3.10
2
+ * surveyjs - SurveyJS Dashboard library v2.3.12
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -0,0 +1 @@
1
+ export * from './survey-analytics.types/entries/summary.core';