survey-analytics 2.3.9 → 2.3.11

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 (80) hide show
  1. package/fesm/shared.mjs +479 -15
  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 +27 -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 +28 -24
  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 +2 -0
  29. package/survey-analytics.types/analytics-localization/arabic.d.ts +16 -0
  30. package/survey-analytics.types/analytics-localization/dutch.d.ts +16 -0
  31. package/survey-analytics.types/analytics-localization/english.d.ts +16 -0
  32. package/survey-analytics.types/analytics-localization/farsi.d.ts +16 -0
  33. package/survey-analytics.types/analytics-localization/finnish.d.ts +16 -0
  34. package/survey-analytics.types/analytics-localization/french.d.ts +16 -0
  35. package/survey-analytics.types/analytics-localization/german.d.ts +16 -0
  36. package/survey-analytics.types/analytics-localization/italian.d.ts +16 -0
  37. package/survey-analytics.types/analytics-localization/japanese.d.ts +16 -0
  38. package/survey-analytics.types/analytics-localization/norwegian.d.ts +16 -0
  39. package/survey-analytics.types/analytics-localization/polish.d.ts +16 -0
  40. package/survey-analytics.types/analytics-localization/portuguese.d.ts +16 -0
  41. package/survey-analytics.types/analytics-localization/russian.d.ts +16 -0
  42. package/survey-analytics.types/analytics-localization/spanish.d.ts +16 -0
  43. package/survey-analytics.types/analytics-localization/swedish.d.ts +16 -0
  44. package/survey-analytics.types/dataProvider.d.ts +10 -0
  45. package/survey-analytics.types/entries/mongo.d.ts +1 -0
  46. package/survey-analytics.types/histogram.d.ts +48 -1
  47. package/survey-analytics.types/localizationManager.d.ts +16 -0
  48. package/survey-analytics.types/mongo/index.d.ts +16 -0
  49. package/survey-analytics.types/mongo/pipelines.d.ts +1 -0
  50. package/survey-analytics.types/mongo/result-transformers.d.ts +35 -0
  51. package/survey-analytics.types/selectBase.d.ts +3 -1
  52. package/survey-analytics.types/statisticCalculators.d.ts +12 -2
  53. package/survey-analytics.types/visualizationMatrixDropdown.d.ts +4 -6
  54. package/survey-analytics.types/visualizationPanel.d.ts +1 -0
  55. package/survey-analytics.types/visualizationPanelDynamic.d.ts +2 -5
  56. package/survey-analytics.types/visualizerBase.d.ts +2 -0
  57. package/survey.analytics.core.css +1 -1
  58. package/survey.analytics.core.d.ts +1 -0
  59. package/survey.analytics.core.js +1215 -201
  60. package/survey.analytics.core.js.map +1 -1
  61. package/survey.analytics.core.min.css +1 -1
  62. package/survey.analytics.core.min.js +1 -1
  63. package/survey.analytics.core.min.js.LICENSE.txt +1 -1
  64. package/survey.analytics.css +1 -1
  65. package/survey.analytics.d.ts +1 -0
  66. package/survey.analytics.js +1241 -206
  67. package/survey.analytics.js.map +1 -1
  68. package/survey.analytics.min.css +1 -1
  69. package/survey.analytics.min.js +1 -1
  70. package/survey.analytics.min.js.LICENSE.txt +1 -1
  71. package/survey.analytics.mongo.d.ts +1 -0
  72. package/survey.analytics.mongo.js +1 -1
  73. package/survey.analytics.mongo.min.js.LICENSE.txt +1 -1
  74. package/survey.analytics.tabulator.css +1 -1
  75. package/survey.analytics.tabulator.d.ts +1 -0
  76. package/survey.analytics.tabulator.js +506 -38
  77. package/survey.analytics.tabulator.js.map +1 -1
  78. package/survey.analytics.tabulator.min.css +1 -1
  79. package/survey.analytics.tabulator.min.js +1 -1
  80. package/survey.analytics.tabulator.min.js.LICENSE.txt +1 -1
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.3.9
2
+ * surveyjs - SurveyJS Dashboard library v2.3.11
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
  */
6
6
 
7
7
  export { D as DocumentHelper, l as localization, a as setupLocale, s as surveyStrings } from './shared.mjs';
8
- export { A as AlternativeVisualizersWrapper, B as BooleanModel, D as DataProvider, H as HistogramModel, M as Matrix, o as NpsAdapter, p as NpsVisualizer, n as NpsVisualizerWidget, N as NumberModel, q as PivotModel, P as PostponeHelper, R as RankingModel, S as SelectBase, l as StatisticsTable, k as StatisticsTableAdapter, m as StatisticsTableBoolean, j as Text, T as TextTableAdapter, g as VisualizationComposite, b as VisualizationManager, f as VisualizationMatrixDropdown, e as VisualizationMatrixDynamic, c as VisualizationPanel, d as VisualizationPanelDynamic, a as VisualizerBase, V as VisualizerFactory, i as WordCloud, W as WordCloudAdapter, h as hideEmptyAnswersInData, t as textHelper } from './shared2.mjs';
8
+ export { A as AlternativeVisualizersWrapper, B as BooleanModel, D as DataProvider, H as HistogramModel, M as Matrix, q as NpsAdapter, r as NpsVisualizer, p as NpsVisualizerWidget, N as NumberModel, s as PivotModel, P as PostponeHelper, R as RankingModel, S as SelectBase, n as StatisticsTable, m as StatisticsTableAdapter, o as StatisticsTableBoolean, l as Text, T as TextTableAdapter, j as VisualizationComposite, b as VisualizationManager, f as VisualizationMatrixDropdown, e as VisualizationMatrixDynamic, c as VisualizationPanel, d as VisualizationPanelDynamic, a as VisualizerBase, V as VisualizerFactory, k as WordCloud, W as WordCloudAdapter, g as getBestIntervalMode, h as hideEmptyAnswersInData, i as intervalCalculators, t as textHelper } from './shared2.mjs';
9
9
  import 'survey-core';
10
10
  //# sourceMappingURL=survey.analytics.core.mjs.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.3.9
2
+ * surveyjs - SurveyJS Dashboard library v2.3.11
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
  */
@@ -7,8 +7,8 @@
7
7
  import { Event, ItemValue } from 'survey-core';
8
8
  import { l as localization, b as DataHelper } from './shared.mjs';
9
9
  export { D as DocumentHelper, a as setupLocale, s as surveyStrings } from './shared.mjs';
10
- import { N as NumberModel, b as VisualizationManager, S as SelectBase, r as defaultStatisticsCalculator, B as BooleanModel, H as HistogramModel, M as Matrix, q as PivotModel, R as RankingModel, a as VisualizerBase, _ as __awaiter } from './shared2.mjs';
11
- export { A as AlternativeVisualizersWrapper, D as DataProvider, o as NpsAdapter, p as NpsVisualizer, n as NpsVisualizerWidget, P as PostponeHelper, l as StatisticsTable, k as StatisticsTableAdapter, m as StatisticsTableBoolean, j as Text, T as TextTableAdapter, g as VisualizationComposite, f as VisualizationMatrixDropdown, e as VisualizationMatrixDynamic, c as VisualizationPanel, d as VisualizationPanelDynamic, V as VisualizerFactory, i as WordCloud, W as WordCloudAdapter, h as hideEmptyAnswersInData, t as textHelper } from './shared2.mjs';
10
+ import { N as NumberModel, b as VisualizationManager, S as SelectBase, u as defaultStatisticsCalculator, B as BooleanModel, H as HistogramModel, M as Matrix, s as PivotModel, R as RankingModel, a as VisualizerBase, _ as __awaiter } from './shared2.mjs';
11
+ export { A as AlternativeVisualizersWrapper, D as DataProvider, q as NpsAdapter, r as NpsVisualizer, p as NpsVisualizerWidget, P as PostponeHelper, n as StatisticsTable, m as StatisticsTableAdapter, o as StatisticsTableBoolean, l as Text, T as TextTableAdapter, j as VisualizationComposite, f as VisualizationMatrixDropdown, e as VisualizationMatrixDynamic, c as VisualizationPanel, d as VisualizationPanelDynamic, V as VisualizerFactory, k as WordCloud, W as WordCloudAdapter, g as getBestIntervalMode, h as hideEmptyAnswersInData, i as intervalCalculators, t as textHelper } from './shared2.mjs';
12
12
  import Plotly from 'plotly.js-dist-min';
13
13
 
14
14
  class PlotlySetup {
@@ -22,6 +22,7 @@ class PlotlySetup {
22
22
  let traces = [];
23
23
  const traceConfig = {
24
24
  type: model.chartType,
25
+ sort: false,
25
26
  labels: labels,
26
27
  customdata: labels,
27
28
  text: labels.map((label) => {
@@ -92,7 +93,7 @@ class PlotlySetup {
92
93
  let lineHeight = 30;
93
94
  let topMargin = 30;
94
95
  let bottomMargin = 30;
95
- let { datasets, labels, colors, texts, seriesLabels, } = answersData;
96
+ let { datasets, labels, colors, texts, seriesLabels, labelsTitle, valuesTitle } = answersData;
96
97
  const hasSeries = seriesLabels.length > 1 || model.question.getType() === "matrix";
97
98
  const traces = [];
98
99
  const traceConfig = {
@@ -170,6 +171,12 @@ class PlotlySetup {
170
171
  }),
171
172
  },
172
173
  };
174
+ if (labelsTitle) {
175
+ layout.yaxis.title = { text: labelsTitle };
176
+ }
177
+ if (valuesTitle) {
178
+ layout.xaxis.title = { text: valuesTitle };
179
+ }
173
180
  if (hasSeries && model.chartType !== "stackedbar") {
174
181
  layout.height =
175
182
  (labels.length * seriesLabels.length + 1) * lineHeight +
@@ -191,7 +198,7 @@ class PlotlySetup {
191
198
  static setupVBar(model, answersData) {
192
199
  let topMargin = 30;
193
200
  let bottomMargin = 30;
194
- let { datasets, labels, colors, texts, seriesLabels, } = answersData;
201
+ let { datasets, labels, colors, texts, seriesLabels, labelsTitle, valuesTitle } = answersData;
195
202
  const hasSeries = seriesLabels.length > 1 || model.question.getType() === "matrix";
196
203
  if (model.type !== "histogram" && model.type !== "pivot") {
197
204
  labels = [].concat(labels).reverse();
@@ -217,7 +224,7 @@ class PlotlySetup {
217
224
  orientation: "v",
218
225
  textposition: "none",
219
226
  };
220
- if (model.type === "histogram" || !hasSeries) {
227
+ if (!hasSeries) {
221
228
  traceConfig.width = 0.5;
222
229
  traceConfig.bargap = 0.5;
223
230
  traceConfig.mode = "markers",
@@ -240,6 +247,8 @@ class PlotlySetup {
240
247
  }
241
248
  traces.push(trace);
242
249
  });
250
+ const maxTicks = 50;
251
+ const tickStep = Math.ceil(labels.length / maxTicks);
243
252
  const layout = {
244
253
  font: {
245
254
  family: "Segoe UI, sans-serif",
@@ -266,11 +275,20 @@ class PlotlySetup {
266
275
  type: "category",
267
276
  tickmode: "array",
268
277
  tickvals: labels,
269
- ticktext: labels.map((label) => {
270
- return PlotlySetup.getTruncatedLabel(label, model.labelTruncateLength) + " ";
278
+ ticktext: labels.map((label, index) => {
279
+ if (labels.length > maxTicks && index % tickStep !== 0) {
280
+ return "";
281
+ }
282
+ return PlotlySetup.getTruncatedLabel(label, model.labelTruncateLength);
271
283
  }),
272
284
  },
273
285
  };
286
+ if (labelsTitle) {
287
+ layout.xaxis.title = { text: labelsTitle };
288
+ }
289
+ if (valuesTitle) {
290
+ layout.yaxis.title = { text: valuesTitle };
291
+ }
274
292
  if (model.showPercentages && model.showOnlyPercentages) {
275
293
  layout.yaxis = {
276
294
  automargin: true,
@@ -542,6 +560,7 @@ class MatrixDropdownGrouped extends SelectBase {
542
560
  const statistics = defaultStatisticsCalculator(this.surveyData, {
543
561
  name: this.name,
544
562
  dataNames: series,
563
+ dataPath: this.dataPath,
545
564
  getValues: () => values,
546
565
  getLabels: () => values,
547
566
  getSeriesValues: () => rows,