survey-analytics 2.5.14 → 3.0.0-beta.0

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 (215) hide show
  1. package/fesm/shared.mjs +754 -3179
  2. package/fesm/shared.mjs.map +1 -1
  3. package/fesm/shared2.mjs +9687 -8187
  4. package/fesm/shared2.mjs.map +1 -1
  5. package/fesm/shared3.mjs +4982 -0
  6. package/fesm/shared3.mjs.map +1 -0
  7. package/fesm/shared4.mjs +42 -0
  8. package/fesm/shared4.mjs.map +1 -0
  9. package/fesm/survey.analytics.apexcharts.mjs +1061 -0
  10. package/fesm/survey.analytics.apexcharts.mjs.map +1 -0
  11. package/fesm/survey.analytics.core.mjs +3 -3
  12. package/fesm/survey.analytics.mjs +7 -755
  13. package/fesm/survey.analytics.mjs.map +1 -1
  14. package/fesm/survey.analytics.mongo.mjs +1 -1
  15. package/fesm/survey.analytics.plotly.mjs +13 -0
  16. package/fesm/survey.analytics.plotly.mjs.map +1 -0
  17. package/fesm/survey.analytics.tabulator.mjs +335 -180
  18. package/fesm/survey.analytics.tabulator.mjs.map +1 -1
  19. package/fesm/themes/index.mjs +1942 -0
  20. package/fesm/themes/index.mjs.map +1 -0
  21. package/package.json +37 -10
  22. package/survey-analytics-plotly.types/alternativeVizualizersWrapper.d.ts +73 -0
  23. package/survey-analytics-plotly.types/analytics-localization/arabic.d.ts +100 -0
  24. package/survey-analytics-plotly.types/analytics-localization/dutch.d.ts +100 -0
  25. package/survey-analytics-plotly.types/analytics-localization/english.d.ts +130 -0
  26. package/survey-analytics-plotly.types/analytics-localization/farsi.d.ts +100 -0
  27. package/survey-analytics-plotly.types/analytics-localization/finnish.d.ts +100 -0
  28. package/survey-analytics-plotly.types/analytics-localization/french.d.ts +100 -0
  29. package/survey-analytics-plotly.types/analytics-localization/german.d.ts +100 -0
  30. package/survey-analytics-plotly.types/analytics-localization/italian.d.ts +100 -0
  31. package/survey-analytics-plotly.types/analytics-localization/japanese.d.ts +100 -0
  32. package/survey-analytics-plotly.types/analytics-localization/norwegian.d.ts +100 -0
  33. package/survey-analytics-plotly.types/analytics-localization/polish.d.ts +100 -0
  34. package/survey-analytics-plotly.types/analytics-localization/portuguese.d.ts +100 -0
  35. package/survey-analytics-plotly.types/analytics-localization/russian.d.ts +100 -0
  36. package/survey-analytics-plotly.types/analytics-localization/spanish.d.ts +100 -0
  37. package/survey-analytics-plotly.types/analytics-localization/swedish.d.ts +100 -0
  38. package/survey-analytics-plotly.types/boolean.d.ts +15 -0
  39. package/survey-analytics-plotly.types/card.d.ts +29 -0
  40. package/survey-analytics-plotly.types/chartConfig.d.ts +9 -0
  41. package/survey-analytics-plotly.types/config.d.ts +35 -0
  42. package/survey-analytics-plotly.types/dashboard.d.ts +51 -0
  43. package/survey-analytics-plotly.types/dataProvider.d.ts +69 -0
  44. package/survey-analytics-plotly.types/entries/plotly.d.ts +2 -0
  45. package/survey-analytics-plotly.types/entries/summary.core.d.ts +44 -0
  46. package/survey-analytics-plotly.types/filterInfo.d.ts +11 -0
  47. package/survey-analytics-plotly.types/histogram.d.ts +102 -0
  48. package/{survey-analytics.types/layoutEngine.d.ts → survey-analytics-plotly.types/layout-engine.d.ts} +0 -12
  49. package/survey-analytics-plotly.types/localizationManager.d.ts +152 -0
  50. package/survey-analytics-plotly.types/matrix.d.ts +17 -0
  51. package/survey-analytics-plotly.types/matrixDropdownGrouped.d.ts +15 -0
  52. package/survey-analytics-plotly.types/muuri-layout-engine.d.ts +13 -0
  53. package/survey-analytics-plotly.types/nps.d.ts +37 -0
  54. package/survey-analytics-plotly.types/number.d.ts +27 -0
  55. package/survey-analytics-plotly.types/pivot.d.ts +59 -0
  56. package/{survey-analytics.types → survey-analytics-plotly.types}/plotly/chart-adapter.d.ts +11 -2
  57. package/survey-analytics-plotly.types/plotly/setup.d.ts +150 -0
  58. package/survey-analytics-plotly.types/ranking.d.ts +12 -0
  59. package/survey-analytics-plotly.types/selectBase.d.ts +116 -0
  60. package/survey-analytics-plotly.types/statisticCalculators.d.ts +9 -0
  61. package/survey-analytics-plotly.types/statistics-table.d.ts +28 -0
  62. package/survey-analytics-plotly.types/svgbundle.d.ts +2 -0
  63. package/survey-analytics-plotly.types/text.d.ts +25 -0
  64. package/survey-analytics-plotly.types/theme.d.ts +50 -0
  65. package/survey-analytics-plotly.types/themes/default-light.d.ts +965 -0
  66. package/survey-analytics-plotly.types/utils/calculationDateRanges.d.ts +35 -0
  67. package/survey-analytics-plotly.types/utils/dateRangeModel.d.ts +32 -0
  68. package/survey-analytics-plotly.types/utils/dateRangeWidget.d.ts +38 -0
  69. package/survey-analytics-plotly.types/utils/dropdownActionWidget.d.ts +31 -0
  70. package/survey-analytics-plotly.types/utils/dropdownBase.d.ts +47 -0
  71. package/survey-analytics-plotly.types/utils/dropdownWidget.d.ts +40 -0
  72. package/survey-analytics-plotly.types/utils/index.d.ts +62 -0
  73. package/survey-analytics-plotly.types/utils/toggle.d.ts +17 -0
  74. package/survey-analytics-plotly.types/utils/utils.d.ts +9 -0
  75. package/survey-analytics-plotly.types/visualizationComposite.d.ts +8 -0
  76. package/survey-analytics-plotly.types/visualizationManager.d.ts +60 -0
  77. package/survey-analytics-plotly.types/visualizationMatrixDropdown.d.ts +23 -0
  78. package/survey-analytics-plotly.types/visualizationMatrixDynamic.d.ts +8 -0
  79. package/survey-analytics-plotly.types/visualizationPanel.d.ts +464 -0
  80. package/survey-analytics-plotly.types/visualizationPanelDynamic.d.ts +20 -0
  81. package/survey-analytics-plotly.types/visualizerBase.d.ts +422 -0
  82. package/survey-analytics-plotly.types/visualizerDescription.d.ts +19 -0
  83. package/survey-analytics-plotly.types/visualizerFactory.d.ts +41 -0
  84. package/survey-analytics-plotly.types/wordcloud/stopwords/dutch.d.ts +1 -0
  85. package/survey-analytics-plotly.types/wordcloud/stopwords/english.d.ts +1 -0
  86. package/survey-analytics-plotly.types/wordcloud/stopwords/index.d.ts +3 -0
  87. package/survey-analytics-plotly.types/wordcloud/stopwords/norwegian.d.ts +1 -0
  88. package/survey-analytics-plotly.types/wordcloud/stopwords/spanish.d.ts +1 -0
  89. package/survey-analytics-plotly.types/wordcloud/widget.d.ts +38 -0
  90. package/survey-analytics-plotly.types/wordcloud/wordcloud.d.ts +28 -0
  91. package/survey-analytics-tabulator.types/analytics-localization/english.d.ts +28 -0
  92. package/survey-analytics-tabulator.types/entries/tabulator.d.ts +2 -25
  93. package/survey-analytics-tabulator.types/entries/tabulator.fontless.d.ts +26 -0
  94. package/survey-analytics-tabulator.types/localizationManager.d.ts +28 -0
  95. package/survey-analytics-tabulator.types/tables/extensions/footerextensions.d.ts +1 -0
  96. package/survey-analytics-tabulator.types/tables/extensions/tableextensions.d.ts +2 -1
  97. package/survey-analytics-tabulator.types/tables/tabulator.d.ts +7 -0
  98. package/survey-analytics-tabulator.types/theme.d.ts +50 -0
  99. package/survey-analytics-tabulator.types/themes/default-light.d.ts +965 -0
  100. package/survey-analytics-tabulator.types/utils/dropdownActionWidget.d.ts +31 -0
  101. package/survey-analytics-tabulator.types/utils/dropdownBase.d.ts +47 -0
  102. package/survey-analytics-tabulator.types/utils/dropdownWidget.d.ts +40 -0
  103. package/survey-analytics-tabulator.types/utils/index.d.ts +25 -2
  104. package/survey-analytics.types/alternativeVizualizersWrapper.d.ts +9 -4
  105. package/survey-analytics.types/analytics-localization/english.d.ts +28 -0
  106. package/survey-analytics.types/apexcharts/chart-adapter.d.ts +29 -0
  107. package/survey-analytics.types/apexcharts/index.d.ts +2 -0
  108. package/survey-analytics.types/apexcharts/setup.d.ts +185 -0
  109. package/survey-analytics.types/boolean.d.ts +1 -1
  110. package/survey-analytics.types/card.d.ts +29 -0
  111. package/survey-analytics.types/chartConfig.d.ts +9 -0
  112. package/survey-analytics.types/config.d.ts +1 -33
  113. package/survey-analytics.types/dashboard.d.ts +51 -0
  114. package/survey-analytics.types/dataProvider.d.ts +17 -0
  115. package/survey-analytics.types/entries/apexcharts.d.ts +2 -0
  116. package/survey-analytics.types/entries/apexcharts.fontless.d.ts +2 -0
  117. package/survey-analytics.types/entries/summary.core.d.ts +6 -0
  118. package/survey-analytics.types/histogram.d.ts +29 -13
  119. package/survey-analytics.types/layout-engine.d.ts +29 -0
  120. package/survey-analytics.types/localizationManager.d.ts +28 -0
  121. package/survey-analytics.types/matrix.d.ts +3 -2
  122. package/survey-analytics.types/matrixDropdownGrouped.d.ts +3 -2
  123. package/survey-analytics.types/muuri-layout-engine.d.ts +13 -0
  124. package/survey-analytics.types/nps.d.ts +5 -10
  125. package/survey-analytics.types/number.d.ts +8 -7
  126. package/survey-analytics.types/pivot.d.ts +25 -35
  127. package/survey-analytics.types/ranking.d.ts +3 -2
  128. package/survey-analytics.types/selectBase.d.ts +12 -15
  129. package/survey-analytics.types/statisticCalculators.d.ts +8 -13
  130. package/survey-analytics.types/statistics-table.d.ts +2 -2
  131. package/survey-analytics.types/text.d.ts +4 -3
  132. package/survey-analytics.types/theme.d.ts +50 -0
  133. package/survey-analytics.types/themes/default-light.d.ts +965 -0
  134. package/survey-analytics.types/utils/calculationDateRanges.d.ts +35 -0
  135. package/survey-analytics.types/utils/dateRangeModel.d.ts +32 -0
  136. package/survey-analytics.types/utils/dateRangeWidget.d.ts +38 -0
  137. package/survey-analytics.types/utils/dropdownActionWidget.d.ts +31 -0
  138. package/survey-analytics.types/utils/dropdownBase.d.ts +47 -0
  139. package/survey-analytics.types/utils/dropdownWidget.d.ts +40 -0
  140. package/survey-analytics.types/utils/index.d.ts +25 -2
  141. package/survey-analytics.types/utils/toggle.d.ts +17 -0
  142. package/survey-analytics.types/utils/utils.d.ts +9 -0
  143. package/survey-analytics.types/visualizationComposite.d.ts +1 -1
  144. package/survey-analytics.types/visualizationManager.d.ts +5 -5
  145. package/survey-analytics.types/visualizationMatrixDropdown.d.ts +2 -1
  146. package/survey-analytics.types/visualizationMatrixDynamic.d.ts +1 -1
  147. package/survey-analytics.types/visualizationPanel.d.ts +20 -3
  148. package/survey-analytics.types/visualizationPanelDynamic.d.ts +2 -1
  149. package/survey-analytics.types/visualizerBase.d.ts +65 -10
  150. package/survey-analytics.types/visualizerDescription.d.ts +19 -0
  151. package/survey-analytics.types/visualizerFactory.d.ts +11 -2
  152. package/survey-analytics.types/wordcloud/wordcloud.d.ts +6 -4
  153. package/survey.analytics.core.css +1131 -99
  154. package/survey.analytics.core.css.map +1 -1
  155. package/survey.analytics.core.js +5063 -1002
  156. package/survey.analytics.core.js.map +1 -1
  157. package/survey.analytics.core.min.css +9 -6
  158. package/survey.analytics.core.min.js +1 -1
  159. package/survey.analytics.core.min.js.LICENSE.txt +1 -1
  160. package/survey.analytics.css +1494 -103
  161. package/survey.analytics.css.map +1 -1
  162. package/survey.analytics.d.ts +1 -2
  163. package/survey.analytics.fontless.css +1629 -0
  164. package/survey.analytics.fontless.css.map +1 -0
  165. package/survey.analytics.fontless.min.css +14 -0
  166. package/survey.analytics.js +7427 -3055
  167. package/survey.analytics.js.map +1 -1
  168. package/survey.analytics.min.css +11 -6
  169. package/survey.analytics.min.js +1 -1
  170. package/survey.analytics.min.js.LICENSE.txt +1 -1
  171. package/survey.analytics.mongo.js +2 -2
  172. package/survey.analytics.mongo.js.map +1 -1
  173. package/survey.analytics.mongo.min.js +1 -1
  174. package/survey.analytics.mongo.min.js.LICENSE.txt +1 -1
  175. package/survey.analytics.plotly.css +1714 -0
  176. package/survey.analytics.plotly.css.map +1 -0
  177. package/survey.analytics.plotly.d.ts +1 -0
  178. package/survey.analytics.plotly.fontless.css +1492 -0
  179. package/survey.analytics.plotly.fontless.css.map +1 -0
  180. package/survey.analytics.plotly.fontless.min.css +13 -0
  181. package/survey.analytics.plotly.js +23829 -0
  182. package/survey.analytics.plotly.js.map +1 -0
  183. package/survey.analytics.plotly.min.css +14 -0
  184. package/survey.analytics.plotly.min.js +2 -0
  185. package/survey.analytics.plotly.min.js.LICENSE.txt +22 -0
  186. package/survey.analytics.tabulator.css +992 -132
  187. package/survey.analytics.tabulator.css.map +1 -1
  188. package/survey.analytics.tabulator.fontless.css +1121 -0
  189. package/survey.analytics.tabulator.fontless.css.map +1 -0
  190. package/survey.analytics.tabulator.fontless.min.css +6 -0
  191. package/survey.analytics.tabulator.js +2608 -235
  192. package/survey.analytics.tabulator.js.map +1 -1
  193. package/survey.analytics.tabulator.min.css +3 -2
  194. package/survey.analytics.tabulator.min.js +1 -1
  195. package/survey.analytics.tabulator.min.js.LICENSE.txt +1 -1
  196. package/themes/default-dark.js +1032 -0
  197. package/themes/default-dark.js.map +1 -0
  198. package/themes/default-dark.min.js +2 -0
  199. package/themes/default-dark.min.js.LICENSE.txt +5 -0
  200. package/themes/default-light.js +1032 -0
  201. package/themes/default-light.js.map +1 -0
  202. package/themes/default-light.min.js +2 -0
  203. package/themes/default-light.min.js.LICENSE.txt +5 -0
  204. package/themes/index.js +2063 -0
  205. package/themes/index.js.map +1 -0
  206. package/themes/index.min.js +2 -0
  207. package/themes/index.min.js.LICENSE.txt +5 -0
  208. package/themes/themes/default-dark.d.ts +965 -0
  209. package/themes/themes/default-light.d.ts +965 -0
  210. package/themes/themes/index.d.ts +1934 -0
  211. package/themes/utils/helpers.d.ts +8 -0
  212. package/survey-analytics.types/plotly/setup.d.ts +0 -32
  213. /package/{survey-analytics.types/entries/summary.d.ts → survey-analytics-plotly.types/entries/plotly.fontless.d.ts} +0 -0
  214. /package/{survey-analytics.types → survey-analytics-plotly.types}/plotly/index.d.ts +0 -0
  215. /package/{survey-analytics.types → survey-analytics-plotly.types}/plotly/legacy.d.ts +0 -0
@@ -0,0 +1,464 @@
1
+ import { Event, SurveyModel } from "survey-core";
2
+ import { ICalculationResult, VisualizerBase } from "./visualizerBase";
3
+ import { AlternativeVisualizersWrapper } from "./alternativeVizualizersWrapper";
4
+ import { IVisualizerPanelElement, IState, IPermission } from "./config";
5
+ import { LayoutEngine } from "./layout-engine";
6
+ import { DataProvider } from "./dataProvider";
7
+ import { IDateRangeChangedOptions } from "./utils/dateRangeModel";
8
+ import "./visualizationPanel.scss";
9
+ export interface IVisualizerPanelRenderedElement extends IVisualizerPanelElement {
10
+ renderedElement?: HTMLElement;
11
+ }
12
+ /**
13
+ * Visualization Panel configuration. Pass it as the third argument to the [`VisualizationPanel`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel) constructor:
14
+ *
15
+ * ```js
16
+ * import { VisualizationPanel } from "survey-analytics";
17
+ *
18
+ * const vizPanel = new VisualizationPanel(
19
+ * surveyQuestions,
20
+ * surveyResults,
21
+ * vizPanelOptions
22
+ * );
23
+ * ```
24
+ *
25
+ * [View Demo](https://surveyjs.io/dashboard/examples/interactive-survey-data-dashboard/ (linkStyle))
26
+ */
27
+ export interface IVisualizationPanelOptions {
28
+ /**
29
+ * The number of label characters after which truncation starts.
30
+ *
31
+ * Set this property to -1 to disable truncation.
32
+ *
33
+ * Default value: 27
34
+ */
35
+ labelTruncateLength?: number;
36
+ allowMakeQuestionsPrivate?: boolean;
37
+ seriesValues?: string[];
38
+ seriesLabels?: string[];
39
+ useValuesAsLabels?: boolean;
40
+ /**
41
+ * Pass a survey instance to use survey locales in the Visualization Panel.
42
+ *
43
+ * [View Demo](https://surveyjs.io/dashboard/examples/localize-survey-data-dashboard-ui/ (linkStyle))
44
+ */
45
+ survey?: SurveyModel;
46
+ /**
47
+ * A common data provider for all visualizers.
48
+ */
49
+ dataProvider?: DataProvider;
50
+ /**
51
+ * Allows users to change the visibility of individual charts.
52
+ *
53
+ * This property adds a Hide button to each chart.
54
+ *
55
+ * Default value: `true`
56
+ */
57
+ allowHideQuestions?: boolean;
58
+ /**
59
+ * Specifies whether to arrange charts based on the available screen space and allow users to reorder them via drag and drop.
60
+ *
61
+ * If this property is disabled, charts are displayed one under another, and users cannot drag and drop them. If you want to disable only drag and drop, set the [`allowDragDrop`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowDynamicLayout) property to `false`.
62
+ *
63
+ * Default value: `true`
64
+ *
65
+ * [How to Disable the Layout Engine](https://github.com/surveyjs/surveyjs-howtos-and-troubleshooting/blob/50a2f6f755193afb4733435e2942f80c98731e84/categories/data-visualization/custom-layout.md (linkStyle))
66
+ * @see layoutEngine
67
+ */
68
+ allowDynamicLayout?: boolean;
69
+ /**
70
+ * Specifies whether users can drag and drop charts. Applies only if [`allowDynamicLayout`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowDynamicLayout) is `true`.
71
+ *
72
+ * Default value: `true`
73
+ * @see layoutEngine
74
+ */
75
+ allowDragDrop?: boolean;
76
+ /**
77
+ * A layout engine used to arrange charts on the Visualization Panel.
78
+ *
79
+ * You can use this property to integrate a third-party layout engine with SurveyJS Dashboard.
80
+ *
81
+ * @see allowDynamicLayout
82
+ */
83
+ layoutEngine?: LayoutEngine;
84
+ /**
85
+ * Allows users to switch between absolute and percentage values in bar charts.
86
+ *
87
+ * This property adds a Show Percentages button to each bar chart.
88
+ *
89
+ * Default value: `false`
90
+ *
91
+ * @see showPercentages
92
+ * @see showOnlyPercentages
93
+ * @see percentagePrecision
94
+ */
95
+ allowShowPercentages?: boolean;
96
+ /**
97
+ * Specifies whether bar charts display percentages in addition to absolute values.
98
+ *
99
+ * Users can change this property value if you enable the `allowShowPercentages` property.
100
+ *
101
+ * Default value: `false`
102
+ *
103
+ * @see allowShowPercentages
104
+ * @see showOnlyPercentages
105
+ * @see percentagePrecision
106
+ */
107
+ showPercentages?: boolean;
108
+ /**
109
+ * Specifies whether bar charts display only percentages, without absolute values.
110
+ *
111
+ * Applies only if the `allowShowPercentages` or `showPercentages` property is enabled.
112
+ *
113
+ * Default value: `false`
114
+ *
115
+ * @see allowShowPercentages
116
+ * @see showPercentages
117
+ * @see percentagePrecision
118
+ */
119
+ showOnlyPercentages?: boolean;
120
+ /**
121
+ * Specifies percentage precision.
122
+ *
123
+ * Default value: 2
124
+ *
125
+ * @see allowShowPercentages
126
+ * @see showPercentages
127
+ * @see showOnlyPercentages
128
+ */
129
+ percentagePrecision?: number;
130
+ haveCommercialLicense?: boolean;
131
+ /**
132
+ * Allows users to sort answers by answer count. Applies only to [bar charts](https://surveyjs.io/dashboard/documentation/chart-types#bar-chart), [histograms](https://surveyjs.io/dashboard/documentation/chart-types#histogram), and [statistics tables](https://surveyjs.io/dashboard/documentation/chart-types#statistics-table).
133
+ *
134
+ * This property adds a Sorting dropdown to each supported visualizer.
135
+ *
136
+ * Default value: `true`
137
+ *
138
+ * @see answersOrder
139
+ */
140
+ allowSortAnswers?: boolean;
141
+ /**
142
+ * @deprecated Use the [`allowSortAnswers`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowSortAnswers) property instead.
143
+ */
144
+ allowChangeAnswersOrder?: boolean;
145
+ /**
146
+ * Specifies how to sort answers in [bar charts](https://surveyjs.io/dashboard/documentation/chart-types#bar-chart), [histograms](https://surveyjs.io/dashboard/documentation/chart-types#histogram), and [statistics tables](https://surveyjs.io/dashboard/documentation/chart-types#statistics-table).
147
+ *
148
+ * Accepted values:
149
+ *
150
+ * - `"default"` (default) - Do not sort answers.
151
+ * - `"asc"` - Sort answers by ascending answer count.
152
+ * - `"desc"` - Sort answers by descending answer count.
153
+ *
154
+ * Users can change this property value if you enable the `allowSortAnswers` property.
155
+ *
156
+ * @see allowSortAnswers
157
+ */
158
+ answersOrder?: "default" | "asc" | "desc";
159
+ /**
160
+ * Allows users to hide answers with zero count in [bar charts](https://surveyjs.io/dashboard/documentation/chart-types#bar-chart), [histograms](https://surveyjs.io/dashboard/documentation/chart-types#histogram), and [statistics tables](https://surveyjs.io/dashboard/documentation/chart-types#statistics-table).
161
+ *
162
+ * This property adds a Hide Empty Answers button to each supported visualizer.
163
+ *
164
+ * Default value: `false`
165
+ */
166
+ allowHideEmptyAnswers?: boolean;
167
+ /**
168
+ * Hides answers with zero count in [bar charts](https://surveyjs.io/dashboard/documentation/chart-types#bar-chart), [histograms](https://surveyjs.io/dashboard/documentation/chart-types#histogram), and [statistics tables](https://surveyjs.io/dashboard/documentation/chart-types#statistics-table).
169
+ *
170
+ * Users can change this property value if you enable the `allowHideEmptyAnswers` property.
171
+ *
172
+ * Default value: `false`
173
+ *
174
+ * @see allowHideEmptyAnswers
175
+ */
176
+ hideEmptyAnswers?: boolean;
177
+ /**
178
+ * Allows users to select whether to show top 5, 10, or 20 answers by answer count.
179
+ *
180
+ * This property adds a Top N Answers dropdown to each chart.
181
+ *
182
+ * Default value: `false`
183
+ */
184
+ allowTopNAnswers?: boolean;
185
+ /**
186
+ * Allows users to show the number of respondents who did not answer a particular question.
187
+ *
188
+ * This property adds a Show Missing Answers button to each chart.
189
+ *
190
+ * Default value: `false`
191
+ */
192
+ allowShowMissingAnswers?: boolean;
193
+ allowExperimentalFeatures?: boolean;
194
+ /**
195
+ * Default chart type.
196
+ *
197
+ * Accepted values depend on the question type as follows:
198
+ *
199
+ * - Boolean: `"bar"` | `"vbar"` | `"pie"` | `"doughnut"`
200
+ * - Date, Number: `"bar"` | `"vbar"`
201
+ * - Matrix: `"bar"` | `"vbar"` | `"pie"` | `"doughnut"` | `"stackedbar"`
202
+ * - Rating: `"bar"` | `"vbar"` | `"gauge"` | `"bullet"`
203
+ * - Radiogroup, Checkbox, Dropdown, Image Picker: `"bar"` | `"vbar"` | `"pie"` | `"doughnut"`
204
+ * - Ranking: `"bar"` | `"vbar"` | `"pie"` | `"doughnut" | `"radar"`
205
+ *
206
+ * To set a type for an individual chart, access this chart in the `visualizers` array or using the [`getVisualizer(questionName)`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel#getVisualizer) method and set its `chartType` property to one of the values described above:
207
+ *
208
+ * ```js
209
+ * const vizPanel = new SurveyAnalytics.VisualizationPanel( ... );
210
+ * vizPanel.visualizers[0].chartType = "stackedbar";
211
+ * // --- or ---
212
+ * vizPanel.getVisualizer("my-question").chartType = "stackedbar";
213
+ * ```
214
+ */
215
+ defaultChartType?: string;
216
+ /**
217
+ * Allows users to transpose a visualized matrix question.
218
+ *
219
+ * This property adds a Transpose button to charts that visualize matrixes. When users select Per Values, matrix rows go to chart arguments and matrix columns form chart series. When users select Per Columns, matrix rows form chart series and matrix columns go to chart arguments.
220
+ *
221
+ * Default value: `false`
222
+ */
223
+ allowTransposeData?: boolean;
224
+ /**
225
+ * Allows users to cross-filter charts. The filter applies when users select a series point.
226
+ *
227
+ * Default value: `true`
228
+ */
229
+ allowSelection?: boolean;
230
+ renderContent?: Function;
231
+ destroyContent?: Function;
232
+ /**
233
+ * Removes HTML tags from survey element titles.
234
+ *
235
+ * Survey element titles can contain HTML markup and are specified by users. An attacker can inject malicious code into the titles. To guard against it, keep this property set to `true`.
236
+ *
237
+ * Default value: `true`
238
+ */
239
+ stripHtmlFromTitles?: boolean;
240
+ /**
241
+ * Allows users to switch between different visualizer types.
242
+ *
243
+ * Default value: `true`
244
+ */
245
+ allowChangeVisualizerType?: boolean;
246
+ legendPosition?: "left" | "right" | "top" | "bottom";
247
+ }
248
+ /**
249
+ * An object that visualizes survey results and allows users to analyze them.
250
+ *
251
+ * Constructor parameters:
252
+ *
253
+ * - `questions`: Array\<[`Question`](https://surveyjs.io/form-library/documentation/api-reference/question)\>\
254
+ * Survey questions to visualize. Call `SurveyModel`'s [`getAllQuestions()`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#getQuestionByName) method to access all survey questions and pass its result as the `questions` parameter.
255
+ * - `data`: `Array<any>`\
256
+ * Survey results.
257
+ * - `vizPanelOptions`: [`IVisualizationPanelOptions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions)\
258
+ * Visualization Panel configuration.
259
+ *
260
+ * [View Demo](https://surveyjs.io/dashboard/examples/interactive-survey-data-dashboard/ (linkStyle))
261
+ */
262
+ export declare class VisualizationPanel extends VisualizerBase {
263
+ protected questions: Array<any>;
264
+ private _elements;
265
+ private isRoot;
266
+ static LayoutEngine: new (allowed: boolean, itemSelector: string, dragEnabled?: boolean) => LayoutEngine;
267
+ visualizers: Array<VisualizerBase>;
268
+ private renderedQuestionsCount;
269
+ private static counter;
270
+ private resetFilterButton;
271
+ private _dateRangeWidget;
272
+ private _dateRangeModel;
273
+ private static getVisualizerName;
274
+ private updateResetFilterButtonDisabled;
275
+ constructor(questions: Array<any>, data: Array<{
276
+ [index: string]: any;
277
+ }>, options?: IVisualizationPanelOptions, _elements?: Array<IVisualizerPanelRenderedElement>, isRoot?: boolean);
278
+ resetFilter(): void;
279
+ reorderVisibleElements(order: string[]): void;
280
+ private onAfterRenderQuestionCallback;
281
+ private onStateChangedCallback;
282
+ /**
283
+ * An event that is raised when a user selects a different visualizer type from the Type drop-down menu.
284
+ *
285
+ * Parameters:
286
+ *
287
+ * - `sender`: `AlternativeVisualizersWrapper`\
288
+ * An object that controls altenative visualizers.
289
+ *
290
+ * - `options.visualizer`: `VisualizerBase`\
291
+ * An applied visualizer.
292
+ **/
293
+ onAlternativeVisualizerChanged: Event<(sender: AlternativeVisualizersWrapper, options: any) => any, AlternativeVisualizersWrapper, any>;
294
+ private onAlternativeVisualizerChangedCallback;
295
+ private createHideButtonElement;
296
+ private createDragAreaElement;
297
+ private createHeaderElement;
298
+ protected onDataChanged(): void;
299
+ protected showElementCore(element: IVisualizerPanelRenderedElement, elementIndex?: number): void;
300
+ showElement(elementName: string): void;
301
+ protected hideElementCore(element: IVisualizerPanelRenderedElement): void;
302
+ hideElement(elementName: string): void;
303
+ /**
304
+ * Hides all panel elements. Users can select the elements they want to show from a drop-down menu.
305
+ * @see showAllElements
306
+ * @see allowHideQuestions
307
+ */
308
+ hideAllElements(): void;
309
+ /**
310
+ * Shows all panel elements if they are hidden to a drop-down menu.
311
+ * @see hideAllElements
312
+ * @see allowHideQuestions
313
+ */
314
+ showAllElements(): void;
315
+ protected makeElementPrivate(element: IVisualizerPanelElement): void;
316
+ protected makeElementPublic(element: IVisualizerPanelElement): void;
317
+ protected moveVisibleElement(fromVisibleIndex: number, toVisibleIndex: number): void;
318
+ protected moveElement(fromIndex: number, toIndex: number): void;
319
+ protected setBackgroundColorCore(color: string): void;
320
+ private buildVisualizers;
321
+ private destroyVisualizers;
322
+ protected setLocale(newLocale: string): void;
323
+ /**
324
+ * Returns the [`allowDynamicLayout`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowDynamicLayout) property value of the [`IVisualizationPanelOptions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions) object.
325
+ */
326
+ get allowDynamicLayout(): boolean;
327
+ /**
328
+ * Returns the [`allowDragDrop`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowDragDrop) property value of the [`IVisualizationPanelOptions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions) object.
329
+ */
330
+ get allowDragDrop(): boolean;
331
+ /**
332
+ * Returns the [`allowHideQuestions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowHideQuestions) property value of the [`IVisualizationPanelOptions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions) object.
333
+ */
334
+ get allowHideQuestions(): boolean;
335
+ get allowMakeQuestionsPrivate(): boolean;
336
+ get haveSeveralChildren(): boolean;
337
+ private _layoutEngine;
338
+ /**
339
+ * Returns a [`LayoutEngine`](https://surveyjs.io/dashboard/documentation/api-reference/layoutengine) instance used to arrange visualization items on `VisualizationPanel`.
340
+ */
341
+ get layoutEngine(): LayoutEngine;
342
+ protected buildElements(questions: any[]): IVisualizerPanelElement[];
343
+ /**
344
+ * Returns an array of [`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement) objects with information about visualization items.
345
+ * @param questionNames Question [names](https://surveyjs.io/form-library/documentation/api-reference/question#name). Do not specify this parameter to get an array of all visualization items.
346
+ * @see visibleElements
347
+ * @see hiddenElements
348
+ */
349
+ getElements(questionNames?: Array<string>): IVisualizerPanelElement[];
350
+ /**
351
+ * Returns an array of [`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement) objects with information about currently visible visualization items.
352
+ *
353
+ * If you want to disallow users to hide visualization items, set the [`allowHideQuestions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowHideQuestions) property to `false`.
354
+ * @see hiddenElements
355
+ * @see getElements
356
+ */
357
+ get visibleElements(): IVisualizerPanelRenderedElement[];
358
+ /**
359
+ * Returns an array of [`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement) objects with information about currently hidden visualization items.
360
+ *
361
+ * If you want to disallow users to hide visualization items, set the [`allowHideQuestions`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowHideQuestions) property to `false`.
362
+ * @see visibleElements
363
+ * @see getElements
364
+ */
365
+ get hiddenElements(): IVisualizerPanelRenderedElement[];
366
+ get publicElements(): IVisualizerPanelRenderedElement[];
367
+ get privateElements(): IVisualizerPanelRenderedElement[];
368
+ protected get locales(): any;
369
+ /**
370
+ * Returns a visualization item with a specified question name.
371
+ * @param name A question [name](https://surveyjs.io/form-library/documentation/api-reference/question#name).
372
+ */
373
+ getElement(questionName: string): IVisualizerPanelRenderedElement;
374
+ /**
375
+ * Returns a [visualizer](https://surveyjs.io/dashboard/documentation/api-reference/visualizerbase) that visualizes a specified survey question.
376
+ * @param questionName A question [name](https://surveyjs.io/form-library/documentation/api-reference/question#name).
377
+ */
378
+ getVisualizer(questionName: string): VisualizerBase;
379
+ /**
380
+ * @deprecated Use [`onElementShown`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel#onElementShown), [`onElementHidden`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel#onElementHidden), or [`onElementMoved`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel#onElementMoved) instead.
381
+ */
382
+ onVisibleElementsChanged: Event<(sender: VisualizationPanel, options: any) => any, VisualizationPanel, any>;
383
+ /**
384
+ * An event that is raised when users [show a visualization item](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowHideQuestions).
385
+ *
386
+ * Parameters:
387
+ *
388
+ * - `sender`: [`VisualizationPanel`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel)\
389
+ * A `VisualizationPanel` that raised the event.
390
+ *
391
+ * - `options.elements`: Array\<[`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement)\>\
392
+ * Information about all visualization items rendered by this `VisualizationPanel`.
393
+ *
394
+ * - `options.element`: [`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement)\
395
+ * A visualization item that has been shown.
396
+ */
397
+ onElementShown: Event<(sender: VisualizationPanel, options: any) => any, VisualizationPanel, any>;
398
+ /**
399
+ * An event that is raised when users [hide a visualization item](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowHideQuestions).
400
+ *
401
+ * Parameters:
402
+ *
403
+ * - `sender`: [`VisualizationPanel`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel)\
404
+ * A `VisualizationPanel` that raised the event.
405
+ *
406
+ * - `options.elements`: Array\<[`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement)\>\
407
+ * Information about all visualization items rendered by this `VisualizationPanel`.
408
+ *
409
+ * - `options.element`: [`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement)\
410
+ * A visualization item that has been hidden.
411
+ */
412
+ onElementHidden: Event<(sender: VisualizationPanel, options: any) => any, VisualizationPanel, any>;
413
+ /**
414
+ * An event that is raised when users [move a visualization item](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizationpaneloptions#allowDynamicLayout).
415
+ *
416
+ * Parameters:
417
+ *
418
+ * - `sender`: [`VisualizationPanel`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationpanel)\
419
+ * A `VisualizationPanel` that raised the event.
420
+ *
421
+ * - `options.elements`: Array\<[`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement)\>\
422
+ * Information about all visualization items rendered by this `VisualizationPanel`.
423
+ *
424
+ * - `options.element`: [`IVisualizerPanelElement`](https://surveyjs.io/dashboard/documentation/api-reference/ivisualizerpanelelement)\
425
+ * A visualization item that has been moved.
426
+ */
427
+ onElementMoved: Event<(sender: VisualizationPanel, options: any) => any, VisualizationPanel, any>;
428
+ onDateRangeChanged: Event<(sender: VisualizationPanel, options: IDateRangeChangedOptions) => any, VisualizationPanel, any>;
429
+ createDateRangeWidget(): void;
430
+ protected visibleElementsChanged(element: IVisualizerPanelElement, reason: string): void;
431
+ onPermissionsChangedCallback: any;
432
+ protected renderPanelElement(element: IVisualizerPanelRenderedElement, container: HTMLElement): HTMLElement;
433
+ protected renderBanner(container: HTMLElement): void;
434
+ protected renderToolbar(container: HTMLElement): void;
435
+ renderContent(container: HTMLElement): void;
436
+ protected destroyContent(container: HTMLElement): void;
437
+ /**
438
+ * Redraws the `VisualizationPanel` and all its content.
439
+ */
440
+ refresh(): void;
441
+ layout(): void;
442
+ /**
443
+ * Filters visualized data based on a specified question name and value. This method is called when a user clicks a chart point.
444
+ * @param questionName A question [name](https://surveyjs.io/form-library/documentation/api-reference/question#name).
445
+ * @param selectedValue
446
+ * @see IVisualizationPanelOptions.allowSelection
447
+ */
448
+ setFilter(questionName: string, selectedValue: any): void;
449
+ getState(): IState;
450
+ /**
451
+ * The state of `VisualizationPanel`. Includes information about the visualized elements and current locale.
452
+ *
453
+ * [View Demo](https://surveyjs.io/dashboard/examples/save-dashboard-state-to-local-storage/ (linkStyle))
454
+ * @see onStateChanged
455
+ */
456
+ get state(): IState;
457
+ set state(newState: IState);
458
+ resetState(): void;
459
+ get permissions(): IPermission[];
460
+ set permissions(permissions: IPermission[]);
461
+ protected getCalculatedValuesCore(): ICalculationResult;
462
+ protected onThemeChanged(): void;
463
+ destroy(): void;
464
+ }
@@ -0,0 +1,20 @@
1
+ import { VisualizerBase } from "./visualizerBase";
2
+ import { VisualizationPanel } from "./visualizationPanel";
3
+ import { Question, IQuestion } from "survey-core";
4
+ export declare class VisualizationPanelDynamic extends VisualizerBase {
5
+ protected _contentVisualizer: VisualizationPanel;
6
+ constructor(question: Question, data: Array<{
7
+ [index: string]: any;
8
+ }>, options?: {
9
+ [index: string]: any;
10
+ }, type?: string);
11
+ get contentVisualizer(): VisualizationPanel;
12
+ protected setLocale(newLocale: string): void;
13
+ private onAfterRenderPanelCallback;
14
+ resetFilter(): void;
15
+ getQuestions(): IQuestion[];
16
+ protected onThemeChanged(): void;
17
+ destroyContent(container: HTMLElement): void;
18
+ renderContent(container: HTMLElement): void;
19
+ destroy(): void;
20
+ }