survey-analytics 2.2.3 → 2.2.5

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 (53) hide show
  1. package/fesm/shared.mjs +2 -1
  2. package/fesm/shared.mjs.map +1 -1
  3. package/fesm/shared2.mjs +379 -268
  4. package/fesm/shared2.mjs.map +1 -1
  5. package/fesm/survey.analytics.core.mjs +2 -2
  6. package/fesm/survey.analytics.mjs +177 -418
  7. package/fesm/survey.analytics.mjs.map +1 -1
  8. package/fesm/survey.analytics.tabulator.mjs +16 -4
  9. package/fesm/survey.analytics.tabulator.mjs.map +1 -1
  10. package/package.json +6 -5
  11. package/survey-analytics-tabulator.types/analytics-localization/english.d.ts +1 -0
  12. package/survey-analytics-tabulator.types/localizationManager.d.ts +1 -0
  13. package/survey-analytics-tabulator.types/tables/extensions/tableextensions.d.ts +1 -0
  14. package/survey-analytics.types/analytics-localization/english.d.ts +1 -0
  15. package/survey-analytics.types/boolean.d.ts +0 -1
  16. package/survey-analytics.types/entries/summary.core.d.ts +2 -1
  17. package/survey-analytics.types/histogram.d.ts +1 -1
  18. package/survey-analytics.types/localizationManager.d.ts +1 -0
  19. package/survey-analytics.types/pivot.d.ts +2 -0
  20. package/survey-analytics.types/plotly/chart-adapter.d.ts +22 -0
  21. package/survey-analytics.types/plotly/index.d.ts +2 -8
  22. package/survey-analytics.types/plotly/legacy.d.ts +33 -0
  23. package/survey-analytics.types/plotly/setup.d.ts +5 -3
  24. package/survey-analytics.types/{plotly/ranking.d.ts → ranking.d.ts} +2 -2
  25. package/survey-analytics.types/selectBase.d.ts +2 -0
  26. package/survey-analytics.types/statisticCalculators.d.ts +4 -0
  27. package/survey-analytics.types/visualizationManager.d.ts +1 -0
  28. package/survey-analytics.types/visualizerBase.d.ts +12 -3
  29. package/survey.analytics.core.css +1 -1
  30. package/survey.analytics.core.js +355 -151
  31. package/survey.analytics.core.js.map +1 -1
  32. package/survey.analytics.core.min.css +1 -1
  33. package/survey.analytics.core.min.js +1 -1
  34. package/survey.analytics.core.min.js.LICENSE.txt +1 -1
  35. package/survey.analytics.css +1 -1
  36. package/survey.analytics.js +679 -909
  37. package/survey.analytics.js.map +1 -1
  38. package/survey.analytics.min.css +1 -1
  39. package/survey.analytics.min.js +1 -1
  40. package/survey.analytics.min.js.LICENSE.txt +1 -1
  41. package/survey.analytics.tabulator.css +1 -1
  42. package/survey.analytics.tabulator.js +39 -5
  43. package/survey.analytics.tabulator.js.map +1 -1
  44. package/survey.analytics.tabulator.min.css +1 -1
  45. package/survey.analytics.tabulator.min.js +1 -1
  46. package/survey.analytics.tabulator.min.js.LICENSE.txt +1 -1
  47. package/survey-analytics.types/plotly/boolean.d.ts +0 -16
  48. package/survey-analytics.types/plotly/histogram.d.ts +0 -12
  49. package/survey-analytics.types/plotly/matrix.d.ts +0 -11
  50. package/survey-analytics.types/plotly/matrixdropdown-grouped.d.ts +0 -11
  51. package/survey-analytics.types/plotly/pivot.d.ts +0 -12
  52. package/survey-analytics.types/plotly/rating.d.ts +0 -20
  53. package/survey-analytics.types/plotly/selectBase.d.ts +0 -25
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v2.2.3
2
+ * surveyjs - SurveyJS Dashboard library v2.2.5
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
  */
@@ -7289,6 +7289,7 @@ var englishStrings = {
7289
7289
  ascOrder: "Ascending",
7290
7290
  descOrder: "Descending",
7291
7291
  showMinorColumns: "Show minor columns",
7292
+ actionsColumn: "Actions",
7292
7293
  otherCommentTitle: "Other items and comments",
7293
7294
  showPercentages: "Show percentages",
7294
7295
  hidePercentages: "Hide percentages",
@@ -8443,6 +8444,8 @@ __webpack_require__.r(__webpack_exports__);
8443
8444
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_1__);
8444
8445
  /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./selectBase */ "./src/selectBase.ts");
8445
8446
  /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
8447
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
8448
+
8446
8449
 
8447
8450
 
8448
8451
 
@@ -8506,6 +8509,7 @@ var BooleanModel = /** @class */ (function (_super) {
8506
8509
  return BooleanModel;
8507
8510
  }(_selectBase__WEBPACK_IMPORTED_MODULE_2__.SelectBase));
8508
8511
 
8512
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("boolean", BooleanModel);
8509
8513
 
8510
8514
 
8511
8515
  /***/ }),
@@ -8724,6 +8728,10 @@ __webpack_require__.r(__webpack_exports__);
8724
8728
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_1__);
8725
8729
  /* harmony import */ var _dataProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataProvider */ "./src/dataProvider.ts");
8726
8730
  /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./selectBase */ "./src/selectBase.ts");
8731
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
8732
+ /* harmony import */ var _statisticCalculators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./statisticCalculators */ "./src/statisticCalculators.ts");
8733
+
8734
+
8727
8735
 
8728
8736
 
8729
8737
 
@@ -8896,30 +8904,19 @@ var HistogramModel = /** @class */ (function (_super) {
8896
8904
  };
8897
8905
  HistogramModel.prototype.getCalculatedValuesCore = function () {
8898
8906
  var continiousValues = this.getContiniousValues();
8899
- var intervals = this.intervals;
8900
- var statistics = [];
8901
- var series = this.getSeriesValues();
8902
- if (series.length === 0) {
8903
- series.push("");
8904
- }
8905
- for (var i = 0; i < series.length; ++i) {
8906
- statistics.push(intervals.map(function (i) { return 0; }));
8907
- this._continiousData[series[i]].forEach(function (dataValue) {
8908
- for (var j = 0; j < intervals.length; ++j) {
8909
- if (intervals[j].start <= dataValue && (dataValue < intervals[j].end || j == intervals.length - 1)) {
8910
- statistics[i][j]++;
8911
- break;
8912
- }
8913
- }
8914
- });
8915
- }
8916
- return statistics;
8907
+ return (0,_statisticCalculators__WEBPACK_IMPORTED_MODULE_5__.histogramStatisticsCalculator)(this._continiousData, this.intervals, this.getSeriesValues());
8908
+ };
8909
+ HistogramModel.prototype.getValueType = function () {
8910
+ return this.valueType;
8917
8911
  };
8918
8912
  HistogramModel.IntervalsCount = 10;
8919
8913
  HistogramModel.UseIntervalsFrom = 10;
8920
8914
  return HistogramModel;
8921
8915
  }(_selectBase__WEBPACK_IMPORTED_MODULE_3__.SelectBase));
8922
8916
 
8917
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("date", HistogramModel);
8918
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("number", HistogramModel, 100);
8919
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("rating", HistogramModel, 100);
8923
8920
 
8924
8921
 
8925
8922
  /***/ }),
@@ -9279,6 +9276,8 @@ __webpack_require__.r(__webpack_exports__);
9279
9276
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "survey-core");
9280
9277
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_1__);
9281
9278
  /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./selectBase */ "./src/selectBase.ts");
9279
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
9280
+
9282
9281
 
9283
9282
 
9284
9283
 
@@ -9373,6 +9372,7 @@ var Matrix = /** @class */ (function (_super) {
9373
9372
  return Matrix;
9374
9373
  }(_selectBase__WEBPACK_IMPORTED_MODULE_2__.SelectBase));
9375
9374
 
9375
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_3__.VisualizationManager.registerVisualizer("matrix", Matrix);
9376
9376
 
9377
9377
 
9378
9378
  /***/ }),
@@ -9602,6 +9602,10 @@ __webpack_require__.r(__webpack_exports__);
9602
9602
  /* harmony import */ var _visualizerBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visualizerBase */ "./src/visualizerBase.ts");
9603
9603
  /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
9604
9604
  /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/index */ "./src/utils/index.ts");
9605
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
9606
+ /* harmony import */ var _statisticCalculators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./statisticCalculators */ "./src/statisticCalculators.ts");
9607
+
9608
+
9605
9609
 
9606
9610
 
9607
9611
 
@@ -9611,6 +9615,11 @@ var NumberModel = /** @class */ (function (_super) {
9611
9615
  function NumberModel(question, data, options, name) {
9612
9616
  if (options === void 0) { options = {}; }
9613
9617
  var _this = _super.call(this, question, data, options, name || "number") || this;
9618
+ if (_visualizerBase__WEBPACK_IMPORTED_MODULE_1__.VisualizerBase.chartAdapterType) {
9619
+ _this._chartAdapter = new _visualizerBase__WEBPACK_IMPORTED_MODULE_1__.VisualizerBase.chartAdapterType(_this);
9620
+ _this.chartTypes = _this._chartAdapter.getChartTypes();
9621
+ _this.chartType = _this.chartTypes[0];
9622
+ }
9614
9623
  _this.registerToolbarItem("changeChartType", function () {
9615
9624
  if (_this.chartTypes.length > 1) {
9616
9625
  return _utils_index__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createSelector(_this.chartTypes.map(function (chartType) {
@@ -9695,31 +9704,11 @@ var NumberModel = /** @class */ (function (_super) {
9695
9704
  return [externalCalculatedData.value || 0, externalCalculatedData.minValue || 0, externalCalculatedData.maxValue || 0];
9696
9705
  };
9697
9706
  NumberModel.prototype.getCalculatedValuesCore = function () {
9698
- var _this = this;
9707
+ var _a;
9699
9708
  if (this._resultAverage === undefined ||
9700
9709
  this._resultMin === undefined ||
9701
9710
  this._resultMax === undefined) {
9702
- this._resultMin = Number.MAX_VALUE;
9703
- this._resultMax = -Number.MAX_VALUE;
9704
- this._resultAverage = 0;
9705
- var actualAnswerCount_1 = 0;
9706
- this.data.forEach(function (rowData) {
9707
- if (rowData[_this.question.name] !== undefined) {
9708
- var questionValue = +rowData[_this.question.name];
9709
- actualAnswerCount_1++;
9710
- _this._resultAverage += questionValue;
9711
- if (_this._resultMin > questionValue) {
9712
- _this._resultMin = questionValue;
9713
- }
9714
- if (_this._resultMax < questionValue) {
9715
- _this._resultMax = questionValue;
9716
- }
9717
- }
9718
- });
9719
- if (actualAnswerCount_1 > 0) {
9720
- this._resultAverage = this._resultAverage / actualAnswerCount_1;
9721
- }
9722
- this._resultAverage = Math.ceil(this._resultAverage * 100) / 100;
9711
+ _a = (0,_statisticCalculators__WEBPACK_IMPORTED_MODULE_5__.mathStatisticsCalculator)(this.surveyData, this.dataNames[0]), this._resultAverage = _a[0], this._resultMin = _a[1], this._resultMax = _a[2];
9723
9712
  }
9724
9713
  return [this._resultAverage, this._resultMin, this._resultMax];
9725
9714
  };
@@ -9728,6 +9717,9 @@ var NumberModel = /** @class */ (function (_super) {
9728
9717
  return NumberModel;
9729
9718
  }(_visualizerBase__WEBPACK_IMPORTED_MODULE_1__.VisualizerBase));
9730
9719
 
9720
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("number", NumberModel, 200);
9721
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("rating", NumberModel, 200);
9722
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.registerVisualizer("expression", NumberModel);
9731
9723
 
9732
9724
 
9733
9725
  /***/ }),
@@ -9750,6 +9742,8 @@ __webpack_require__.r(__webpack_exports__);
9750
9742
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
9751
9743
  /* harmony import */ var _visualizerBase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./visualizerBase */ "./src/visualizerBase.ts");
9752
9744
  /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
9745
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
9746
+
9753
9747
 
9754
9748
 
9755
9749
 
@@ -9944,7 +9938,7 @@ var PivotModel = /** @class */ (function (_super) {
9944
9938
  });
9945
9939
  PivotModel.prototype.getSeriesValues = function () {
9946
9940
  var _this = this;
9947
- if (this.questionsY.length === 0) {
9941
+ if (!this.questionsY || this.questionsY.length === 0) {
9948
9942
  return this.options.seriesValues || [];
9949
9943
  }
9950
9944
  var seriesValues = [];
@@ -10133,11 +10127,78 @@ var PivotModel = /** @class */ (function (_super) {
10133
10127
  }
10134
10128
  return statistics;
10135
10129
  };
10130
+ PivotModel.prototype.getValueType = function () {
10131
+ return this.valueType;
10132
+ };
10133
+ PivotModel.prototype.isSupportSoftUpdateContent = function () {
10134
+ return false;
10135
+ };
10136
10136
  PivotModel.IntervalsCount = 10;
10137
10137
  PivotModel.UseIntervalsFrom = 10;
10138
10138
  return PivotModel;
10139
10139
  }(_selectBase__WEBPACK_IMPORTED_MODULE_2__.SelectBase));
10140
10140
 
10141
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_6__.VisualizationManager.registerPivotVisualizer(PivotModel);
10142
+
10143
+
10144
+ /***/ }),
10145
+
10146
+ /***/ "./src/ranking.ts":
10147
+ /*!************************!*\
10148
+ !*** ./src/ranking.ts ***!
10149
+ \************************/
10150
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10151
+
10152
+ "use strict";
10153
+ __webpack_require__.r(__webpack_exports__);
10154
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10155
+ /* harmony export */ RankingModel: () => (/* binding */ RankingModel)
10156
+ /* harmony export */ });
10157
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/utils/helpers.ts");
10158
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
10159
+ /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./selectBase */ "./src/selectBase.ts");
10160
+
10161
+
10162
+
10163
+ var RankingModel = /** @class */ (function (_super) {
10164
+ (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(RankingModel, _super);
10165
+ function RankingModel() {
10166
+ return _super !== null && _super.apply(this, arguments) || this;
10167
+ }
10168
+ RankingModel.prototype.getQuestionResults = function () {
10169
+ var name = this.question.name;
10170
+ return this.data.map(function (dataItem) { return dataItem[name]; });
10171
+ };
10172
+ RankingModel.prototype.getEmptyData = function () {
10173
+ var choices = this.getValues();
10174
+ var data = [];
10175
+ data.length = choices.length;
10176
+ data.fill(0);
10177
+ return data;
10178
+ };
10179
+ RankingModel.prototype.getCalculatedValuesCore = function () {
10180
+ var _this = this;
10181
+ var results = this.getQuestionResults();
10182
+ var choices = this.getValues();
10183
+ var plotlyData = this.getEmptyData();
10184
+ results.forEach(function (result) {
10185
+ _this.applyResultToPlotlyData(result, plotlyData, choices);
10186
+ });
10187
+ return [plotlyData];
10188
+ };
10189
+ RankingModel.prototype.applyResultToPlotlyData = function (result, plotlyData, choices) {
10190
+ if (!result || !plotlyData || !choices)
10191
+ return;
10192
+ result.forEach(function (resultValue, resultValueIndex, result) {
10193
+ var index = choices.indexOf(resultValue);
10194
+ plotlyData[index] =
10195
+ +plotlyData[index] + (result.length - resultValueIndex);
10196
+ });
10197
+ };
10198
+ return RankingModel;
10199
+ }(_selectBase__WEBPACK_IMPORTED_MODULE_2__.SelectBase));
10200
+
10201
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_1__.VisualizationManager.registerVisualizer("ranking", RankingModel);
10141
10202
 
10142
10203
 
10143
10204
  /***/ }),
@@ -10160,6 +10221,8 @@ __webpack_require__.r(__webpack_exports__);
10160
10221
  /* harmony import */ var _visualizerBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./visualizerBase */ "./src/visualizerBase.ts");
10161
10222
  /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
10162
10223
  /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/index */ "./src/utils/index.ts");
10224
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
10225
+
10163
10226
 
10164
10227
 
10165
10228
 
@@ -10270,6 +10333,20 @@ var SelectBase = /** @class */ (function (_super) {
10270
10333
  _this._hideEmptyAnswers = _this.options.hideEmptyAnswers === true;
10271
10334
  _this._answersOrder = _this.options.answersOrder || "default";
10272
10335
  _this._showMissingAnswers = _this.isSupportMissingAnswers() && _this.options.showMissingAnswers === true;
10336
+ if (_this.options.allowExperimentalFeatures) {
10337
+ // this.chartTypes.splice(1, 0, "vbar");
10338
+ }
10339
+ if (_visualizerBase__WEBPACK_IMPORTED_MODULE_2__.VisualizerBase.chartAdapterType) {
10340
+ _this._chartAdapter = new _visualizerBase__WEBPACK_IMPORTED_MODULE_2__.VisualizerBase.chartAdapterType(_this);
10341
+ _this.chartTypes = _this._chartAdapter.getChartTypes();
10342
+ if (_this.getSeriesValues().length > 0 && _this.chartTypes.indexOf("stackedbar") === -1) {
10343
+ _this.chartTypes.push("stackedbar");
10344
+ }
10345
+ _this._chartType = _this.chartTypes[0];
10346
+ if (_this.chartTypes.indexOf(_this.options.defaultChartType) !== -1) {
10347
+ _this._chartType = _this.options.defaultChartType;
10348
+ }
10349
+ }
10273
10350
  _this.registerToolbarItem("changeChartType", function () {
10274
10351
  if (_this.chartTypes.length > 1) {
10275
10352
  return _utils_index__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createSelector(_this.chartTypes.map(function (chartType) {
@@ -10452,6 +10529,16 @@ var SelectBase = /** @class */ (function (_super) {
10452
10529
  var selectBaseQuestion = this.question;
10453
10530
  return resultValues.map(function (value) { return survey_core__WEBPACK_IMPORTED_MODULE_1__.ItemValue.getTextOrHtmlByValue(selectBaseQuestion.choices, value); }).join(", ");
10454
10531
  };
10532
+ SelectBase.prototype.isSupportSoftUpdateContent = function () {
10533
+ return true;
10534
+ };
10535
+ SelectBase.prototype.softUpdateContent = function () {
10536
+ var _a;
10537
+ var chartNode = (_a = this.contentContainer) === null || _a === void 0 ? void 0 : _a.children[0];
10538
+ if (chartNode) {
10539
+ this._chartAdapter.update(chartNode);
10540
+ }
10541
+ };
10455
10542
  SelectBase.prototype.getSelectedItemByText = function (itemText) {
10456
10543
  var selBase = this.question;
10457
10544
  if (this.question.hasOther && itemText == selBase.otherText) {
@@ -10813,6 +10900,127 @@ var SelectBase = /** @class */ (function (_super) {
10813
10900
  return SelectBase;
10814
10901
  }(_visualizerBase__WEBPACK_IMPORTED_MODULE_2__.VisualizerBase));
10815
10902
 
10903
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_5__.VisualizationManager.registerVisualizer("checkbox", SelectBase);
10904
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_5__.VisualizationManager.registerVisualizer("radiogroup", SelectBase);
10905
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_5__.VisualizationManager.registerVisualizer("dropdown", SelectBase);
10906
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_5__.VisualizationManager.registerVisualizer("imagepicker", SelectBase);
10907
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_5__.VisualizationManager.registerVisualizer("tagbox", SelectBase);
10908
+
10909
+
10910
+ /***/ }),
10911
+
10912
+ /***/ "./src/statisticCalculators.ts":
10913
+ /*!*************************************!*\
10914
+ !*** ./src/statisticCalculators.ts ***!
10915
+ \*************************************/
10916
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10917
+
10918
+ "use strict";
10919
+ __webpack_require__.r(__webpack_exports__);
10920
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10921
+ /* harmony export */ defaultStatisticsCalculator: () => (/* binding */ defaultStatisticsCalculator),
10922
+ /* harmony export */ histogramStatisticsCalculator: () => (/* binding */ histogramStatisticsCalculator),
10923
+ /* harmony export */ mathStatisticsCalculator: () => (/* binding */ mathStatisticsCalculator)
10924
+ /* harmony export */ });
10925
+ /* harmony import */ var _dataProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dataProvider */ "./src/dataProvider.ts");
10926
+
10927
+ function defaultStatisticsCalculator(data, dataInfo) {
10928
+ var dataNames = dataInfo.dataNames;
10929
+ var statistics = [];
10930
+ var values = dataInfo.getValues();
10931
+ var valuesIndex = {};
10932
+ values.forEach(function (val, index) {
10933
+ valuesIndex[val] = index;
10934
+ });
10935
+ var processMissingAnswers = values.indexOf(undefined) !== -1;
10936
+ var series = dataInfo.getSeriesValues();
10937
+ var seriesIndex = {};
10938
+ series.forEach(function (val, index) {
10939
+ seriesIndex[val] = index;
10940
+ });
10941
+ var seriesLength = series.length || 1;
10942
+ for (var i = 0; i < dataNames.length; ++i) {
10943
+ var dataNameStatistics = new Array();
10944
+ for (var j = 0; j < seriesLength; ++j) {
10945
+ dataNameStatistics.push(new Array(values.length).fill(0));
10946
+ }
10947
+ statistics.push(dataNameStatistics);
10948
+ }
10949
+ data.forEach(function (row) {
10950
+ dataNames.forEach(function (dataName, index) {
10951
+ var rowValue = row[dataName];
10952
+ if (rowValue !== undefined || processMissingAnswers) {
10953
+ var rowValues = Array.isArray(rowValue) ? rowValue : [rowValue];
10954
+ if (series.length > 0) {
10955
+ if (row[_dataProvider__WEBPACK_IMPORTED_MODULE_0__.DataProvider.seriesMarkerKey] !== undefined) {
10956
+ // Series are labelled by seriesMarkerKey in row data
10957
+ var seriesNo_1 = seriesIndex[row[_dataProvider__WEBPACK_IMPORTED_MODULE_0__.DataProvider.seriesMarkerKey]] || 0;
10958
+ rowValues.forEach(function (val) {
10959
+ statistics[index][seriesNo_1][valuesIndex[val]]++;
10960
+ });
10961
+ }
10962
+ else {
10963
+ // Series are the keys in question value (matrix question)
10964
+ // TODO: think about the de-normalization and combine with the previous case
10965
+ rowValues.forEach(function (val) {
10966
+ series.forEach(function (seriesName) {
10967
+ if (val[seriesName] !== undefined) {
10968
+ var seriesNo = seriesIndex[seriesName] || 0;
10969
+ statistics[index][seriesNo][valuesIndex[val[seriesName]]]++;
10970
+ }
10971
+ });
10972
+ });
10973
+ }
10974
+ }
10975
+ else {
10976
+ // No series
10977
+ rowValues.forEach(function (val) { return statistics[0][0][valuesIndex[val]]++; });
10978
+ }
10979
+ }
10980
+ });
10981
+ });
10982
+ return dataInfo.dataNames.length > 1 ? statistics : statistics[0];
10983
+ }
10984
+ function histogramStatisticsCalculator(data, intervals, seriesValues) {
10985
+ var statistics = [];
10986
+ if (seriesValues.length === 0) {
10987
+ seriesValues.push("");
10988
+ }
10989
+ for (var i = 0; i < seriesValues.length; ++i) {
10990
+ statistics.push(intervals.map(function (i) { return 0; }));
10991
+ data[seriesValues[i]].forEach(function (dataValue) {
10992
+ for (var j = 0; j < intervals.length; ++j) {
10993
+ if (intervals[j].start <= dataValue && (dataValue < intervals[j].end || j == intervals.length - 1)) {
10994
+ statistics[i][j]++;
10995
+ break;
10996
+ }
10997
+ }
10998
+ });
10999
+ }
11000
+ return statistics;
11001
+ }
11002
+ function mathStatisticsCalculator(data, dataName) {
11003
+ var resultMin = Number.MAX_VALUE, resultMax = -Number.MAX_VALUE, resultAverage = 0;
11004
+ var actualAnswerCount = 0;
11005
+ data.forEach(function (rowData) {
11006
+ if (rowData[dataName] !== undefined) {
11007
+ var questionValue = +rowData[dataName];
11008
+ actualAnswerCount++;
11009
+ resultAverage += questionValue;
11010
+ if (resultMin > questionValue) {
11011
+ resultMin = questionValue;
11012
+ }
11013
+ if (resultMax < questionValue) {
11014
+ resultMax = questionValue;
11015
+ }
11016
+ }
11017
+ });
11018
+ if (actualAnswerCount > 0) {
11019
+ resultAverage = resultAverage / actualAnswerCount;
11020
+ }
11021
+ resultAverage = Math.ceil(resultAverage * 100) / 100;
11022
+ return [resultAverage, resultMin, resultMax];
11023
+ }
10816
11024
 
10817
11025
 
10818
11026
  /***/ }),
@@ -11205,7 +11413,9 @@ __webpack_require__.r(__webpack_exports__);
11205
11413
  /* harmony export */ __decorate: () => (/* binding */ __decorate),
11206
11414
  /* harmony export */ __extends: () => (/* binding */ __extends),
11207
11415
  /* harmony export */ __generator: () => (/* binding */ __generator),
11208
- /* harmony export */ __rest: () => (/* binding */ __rest)
11416
+ /* harmony export */ __rest: () => (/* binding */ __rest),
11417
+ /* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),
11418
+ /* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays)
11209
11419
  /* harmony export */ });
11210
11420
  var __assign = Object["assign"] ||
11211
11421
  function (target) {
@@ -11344,6 +11554,25 @@ function __generator(thisArg, body) {
11344
11554
  return { value: op[0] ? op[1] : void 0, done: true };
11345
11555
  }
11346
11556
  }
11557
+ var __spreadArrays = function () {
11558
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
11559
+ s += arguments[i].length;
11560
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
11561
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
11562
+ r[k] = a[j];
11563
+ return r;
11564
+ };
11565
+ function __spreadArray(to, from, pack) {
11566
+ if (pack || arguments.length === 2)
11567
+ for (var i = 0, l = from.length, ar; i < l; i++) {
11568
+ if (ar || !(i in from)) {
11569
+ if (!ar)
11570
+ ar = Array.prototype.slice.call(from, 0, i);
11571
+ ar[i] = from[i];
11572
+ }
11573
+ }
11574
+ return to.concat(ar || Array.prototype.slice.call(from));
11575
+ }
11347
11576
 
11348
11577
 
11349
11578
  /***/ }),
@@ -11590,8 +11819,6 @@ __webpack_require__.r(__webpack_exports__);
11590
11819
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11591
11820
  /* harmony export */ VisualizationManager: () => (/* binding */ VisualizationManager)
11592
11821
  /* harmony export */ });
11593
- /* harmony import */ var _visualizerBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visualizerBase */ "./src/visualizerBase.ts");
11594
-
11595
11822
  /**
11596
11823
  * An object with methods used to register and unregister visualizers for individual question types.
11597
11824
  *
@@ -11661,10 +11888,10 @@ var VisualizationManager = /** @class */ (function () {
11661
11888
  VisualizationManager.getVisualizersByType = function (questionType) {
11662
11889
  var vDescrs = VisualizationManager.vizualizers[questionType];
11663
11890
  if (!vDescrs) {
11664
- if (_visualizerBase__WEBPACK_IMPORTED_MODULE_0__.VisualizerBase.suppressVisualizerStubRendering) {
11891
+ if (VisualizationManager.defaultVisualizer.suppressVisualizerStubRendering) {
11665
11892
  return [];
11666
11893
  }
11667
- return [_visualizerBase__WEBPACK_IMPORTED_MODULE_0__.VisualizerBase];
11894
+ return [VisualizationManager.defaultVisualizer];
11668
11895
  }
11669
11896
  vDescrs = [].concat(vDescrs);
11670
11897
  vDescrs.sort(function (v1, v2) { return v1.index - v2.index; });
@@ -11675,7 +11902,7 @@ var VisualizationManager = /** @class */ (function () {
11675
11902
  * @see registerAltVisualizerSelector
11676
11903
  */
11677
11904
  VisualizationManager.getAltVisualizerSelector = function () {
11678
- return VisualizationManager.alternativesVisualizer || _visualizerBase__WEBPACK_IMPORTED_MODULE_0__.VisualizerBase;
11905
+ return VisualizationManager.alternativesVisualizer || VisualizationManager.defaultVisualizer;
11679
11906
  };
11680
11907
  /**
11681
11908
  * Registers an alternative visualizer selector.
@@ -11685,11 +11912,12 @@ var VisualizationManager = /** @class */ (function () {
11685
11912
  VisualizationManager.alternativesVisualizer = constructor;
11686
11913
  };
11687
11914
  VisualizationManager.getPivotVisualizerConstructor = function () {
11688
- return VisualizationManager.pivotVisualizer || _visualizerBase__WEBPACK_IMPORTED_MODULE_0__.VisualizerBase;
11915
+ return VisualizationManager.pivotVisualizer || VisualizationManager.defaultVisualizer;
11689
11916
  };
11690
11917
  VisualizationManager.registerPivotVisualizer = function (constructor) {
11691
11918
  VisualizationManager.pivotVisualizer = constructor;
11692
11919
  };
11920
+ VisualizationManager.defaultVisualizer = undefined;
11693
11921
  VisualizationManager.alternativesVisualizer = undefined;
11694
11922
  VisualizationManager.pivotVisualizer = undefined;
11695
11923
  VisualizationManager.vizualizers = {};
@@ -12763,17 +12991,19 @@ __webpack_require__.r(__webpack_exports__);
12763
12991
  __webpack_require__.r(__webpack_exports__);
12764
12992
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12765
12993
  /* harmony export */ PostponeHelper: () => (/* binding */ PostponeHelper),
12766
- /* harmony export */ VisualizerBase: () => (/* binding */ VisualizerBase),
12767
- /* harmony export */ defaultStatisticsCalculator: () => (/* binding */ defaultStatisticsCalculator)
12994
+ /* harmony export */ VisualizerBase: () => (/* binding */ VisualizerBase)
12768
12995
  /* harmony export */ });
12769
12996
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/utils/helpers.ts");
12770
12997
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "survey-core");
12771
12998
  /* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_1__);
12772
12999
  /* harmony import */ var _dataProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataProvider */ "./src/dataProvider.ts");
12773
13000
  /* harmony import */ var _visualizerFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./visualizerFactory */ "./src/visualizerFactory.ts");
12774
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
12775
- /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
12776
- /* harmony import */ var _visualizerBase_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visualizerBase.scss */ "./src/visualizerBase.scss");
13001
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
13002
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
13003
+ /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
13004
+ /* harmony import */ var _statisticCalculators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./statisticCalculators */ "./src/statisticCalculators.ts");
13005
+ /* harmony import */ var _visualizerBase_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./visualizerBase.scss */ "./src/visualizerBase.scss");
13006
+
12777
13007
 
12778
13008
 
12779
13009
 
@@ -12841,6 +13071,7 @@ var VisualizerBase = /** @class */ (function () {
12841
13071
  this.contentContainer = undefined;
12842
13072
  this.footerContainer = undefined;
12843
13073
  this._supportSelection = false;
13074
+ this._chartAdapter = undefined;
12844
13075
  /**
12845
13076
  * An event that is raised after the visualizer's content is rendered.
12846
13077
  *
@@ -13196,7 +13427,7 @@ var VisualizerBase = /** @class */ (function () {
13196
13427
  };
13197
13428
  VisualizerBase.prototype.renderToolbar = function (container) {
13198
13429
  if (this.showToolbar) {
13199
- var toolbar_1 = (_utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-toolbar"));
13430
+ var toolbar_1 = (_utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-toolbar"));
13200
13431
  this.createToolbarItems(toolbar_1);
13201
13432
  container.appendChild(toolbar_1);
13202
13433
  }
@@ -13213,27 +13444,40 @@ var VisualizerBase = /** @class */ (function () {
13213
13444
  if (!!this.options && typeof this.options.destroyContent === "function") {
13214
13445
  this.options.destroyContent(container, this);
13215
13446
  }
13216
- else {
13217
- container.innerHTML = "";
13447
+ else if (this._chartAdapter) {
13448
+ this._chartAdapter.destroy(container.children[0]);
13218
13449
  }
13450
+ container.innerHTML = "";
13219
13451
  };
13220
13452
  VisualizerBase.prototype.renderHeader = function (container) {
13221
13453
  if (!!this.options && typeof this.options.renderHeader === "function") {
13222
13454
  this.options.renderHeader(container, this);
13223
13455
  }
13224
13456
  else {
13225
- var correctAnswerElement = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-visualizer__correct-answer");
13226
- correctAnswerElement.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.getString("correctAnswer") + this.getCorrectAnswerText();
13457
+ var correctAnswerElement = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-visualizer__correct-answer");
13458
+ correctAnswerElement.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString("correctAnswer") + this.getCorrectAnswerText();
13227
13459
  container.appendChild(correctAnswerElement);
13228
13460
  }
13229
13461
  };
13230
13462
  VisualizerBase.prototype.renderContentAsync = function (container) {
13231
13463
  return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
13464
+ var chartNode;
13232
13465
  return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
13233
- return [2 /*return*/, new Promise(function (resolve, reject) {
13234
- container.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.getString("noVisualizerForQuestion");
13235
- resolve(container);
13236
- })];
13466
+ switch (_a.label) {
13467
+ case 0:
13468
+ if (!this._chartAdapter) return [3 /*break*/, 2];
13469
+ chartNode = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div");
13470
+ container.innerHTML = "";
13471
+ container.appendChild(chartNode);
13472
+ return [4 /*yield*/, this._chartAdapter.create(chartNode)];
13473
+ case 1:
13474
+ _a.sent();
13475
+ return [3 /*break*/, 3];
13476
+ case 2:
13477
+ container.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString("noVisualizerForQuestion");
13478
+ _a.label = 3;
13479
+ case 3: return [2 /*return*/, container];
13480
+ }
13237
13481
  });
13238
13482
  });
13239
13483
  };
@@ -13270,23 +13514,23 @@ var VisualizerBase = /** @class */ (function () {
13270
13514
  var _this = this;
13271
13515
  container.innerHTML = "";
13272
13516
  if (this.hasFooter) {
13273
- var footerTitleElement = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("h4", "sa-visualizer__footer-title", { innerText: _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.getString("otherCommentTitle") });
13517
+ var footerTitleElement = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("h4", "sa-visualizer__footer-title", { innerText: _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString("otherCommentTitle") });
13274
13518
  container.appendChild(footerTitleElement);
13275
- var footerContentElement_1 = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-visualizer__footer-content");
13519
+ var footerContentElement_1 = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-visualizer__footer-content");
13276
13520
  footerContentElement_1.style.display = VisualizerBase.otherCommentCollapsed
13277
13521
  ? "none"
13278
13522
  : "block";
13279
- var visibilityButton_1 = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createButton(function () {
13523
+ var visibilityButton_1 = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createButton(function () {
13280
13524
  if (footerContentElement_1.style.display === "none") {
13281
13525
  footerContentElement_1.style.display = "block";
13282
- visibilityButton_1.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.getString("hideButton");
13526
+ visibilityButton_1.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString("hideButton");
13283
13527
  }
13284
13528
  else {
13285
13529
  footerContentElement_1.style.display = "none";
13286
- visibilityButton_1.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.getString(VisualizerBase.otherCommentCollapsed ? "showButton" : "hideButton");
13530
+ visibilityButton_1.innerText = _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString(VisualizerBase.otherCommentCollapsed ? "showButton" : "hideButton");
13287
13531
  }
13288
13532
  _this.footerVisualizer.invokeOnUpdate();
13289
- }, _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.getString("showButton") /*, "sa-toolbar__button--right"*/);
13533
+ }, _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString("showButton") /*, "sa-toolbar__button--right"*/);
13290
13534
  container.appendChild(visibilityButton_1);
13291
13535
  container.appendChild(footerContentElement_1);
13292
13536
  this.footerVisualizer.render(footerContentElement_1);
@@ -13301,18 +13545,18 @@ var VisualizerBase = /** @class */ (function () {
13301
13545
  targetElement = document.getElementById(targetElement);
13302
13546
  }
13303
13547
  this.renderResult = targetElement;
13304
- this.toolbarContainer = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-visualizer__toolbar");
13548
+ this.toolbarContainer = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-visualizer__toolbar");
13305
13549
  targetElement.appendChild(this.toolbarContainer);
13306
13550
  this.renderToolbar(this.toolbarContainer);
13307
13551
  if (this.hasHeader) {
13308
- this.headerContainer = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-visualizer__header");
13552
+ this.headerContainer = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-visualizer__header");
13309
13553
  targetElement.appendChild(this.headerContainer);
13310
13554
  this.renderHeader(this.headerContainer);
13311
13555
  }
13312
- this.contentContainer = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-visualizer__content");
13556
+ this.contentContainer = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-visualizer__content");
13313
13557
  targetElement.appendChild(this.contentContainer);
13314
13558
  this.renderContent(this.contentContainer);
13315
- this.footerContainer = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-visualizer__footer");
13559
+ this.footerContainer = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("div", "sa-visualizer__footer");
13316
13560
  targetElement.appendChild(this.footerContainer);
13317
13561
  this.renderFooter(this.footerContainer);
13318
13562
  };
@@ -13325,10 +13569,23 @@ var VisualizerBase = /** @class */ (function () {
13325
13569
  });
13326
13570
  }
13327
13571
  };
13328
- VisualizerBase.prototype.updateContent = function () {
13572
+ VisualizerBase.prototype.isSupportSoftUpdateContent = function () {
13573
+ return false;
13574
+ };
13575
+ VisualizerBase.prototype.softUpdateContent = function () {
13576
+ };
13577
+ VisualizerBase.prototype.hardUpdateContent = function () {
13329
13578
  this.destroyContent(this.contentContainer);
13330
13579
  this.renderContent(this.contentContainer);
13331
13580
  };
13581
+ VisualizerBase.prototype.updateContent = function () {
13582
+ if (!this.isSupportSoftUpdateContent()) {
13583
+ this.hardUpdateContent();
13584
+ }
13585
+ else {
13586
+ this.softUpdateContent();
13587
+ }
13588
+ };
13332
13589
  /**
13333
13590
  * Re-renders the visualizer and its content.
13334
13591
  */
@@ -13424,10 +13681,10 @@ var VisualizerBase = /** @class */ (function () {
13424
13681
  if (!!this._getDataCore) {
13425
13682
  return this._getDataCore(this);
13426
13683
  }
13427
- return defaultStatisticsCalculator(this.surveyData, this);
13684
+ return (0,_statisticCalculators__WEBPACK_IMPORTED_MODULE_7__.defaultStatisticsCalculator)(this.surveyData, this);
13428
13685
  };
13429
13686
  VisualizerBase.prototype.renderLoadingIndicator = function (contentContainer) {
13430
- contentContainer.appendChild((0,_utils__WEBPACK_IMPORTED_MODULE_4__.createLoadingIndicator)());
13687
+ contentContainer.appendChild((0,_utils__WEBPACK_IMPORTED_MODULE_5__.createLoadingIndicator)());
13431
13688
  };
13432
13689
  VisualizerBase.prototype.convertFromExternalData = function (externalCalculatedData) {
13433
13690
  return externalCalculatedData;
@@ -13515,7 +13772,7 @@ var VisualizerBase = /** @class */ (function () {
13515
13772
  if (!!survey) {
13516
13773
  return survey.locale;
13517
13774
  }
13518
- return _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.currentLocale;
13775
+ return _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.currentLocale;
13519
13776
  },
13520
13777
  set: function (newLocale) {
13521
13778
  this.setLocale(newLocale);
@@ -13526,13 +13783,14 @@ var VisualizerBase = /** @class */ (function () {
13526
13783
  configurable: true
13527
13784
  });
13528
13785
  VisualizerBase.prototype.setLocale = function (newLocale) {
13529
- _localizationManager__WEBPACK_IMPORTED_MODULE_5__.localization.currentLocale = newLocale;
13786
+ _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.currentLocale = newLocale;
13530
13787
  var survey = this.options.survey;
13531
13788
  if (!!survey && survey.locale !== newLocale) {
13532
13789
  survey.locale = newLocale;
13533
13790
  }
13534
13791
  };
13535
13792
  VisualizerBase.suppressVisualizerStubRendering = false;
13793
+ VisualizerBase.chartAdapterType = undefined;
13536
13794
  // public static otherCommentQuestionType = "comment"; // TODO: make it configureable - allow choose what kind of question/visualizer will be used for comments/others
13537
13795
  VisualizerBase.otherCommentCollapsed = true;
13538
13796
  VisualizerBase.customColors = [];
@@ -13551,63 +13809,7 @@ var VisualizerBase = /** @class */ (function () {
13551
13809
  return VisualizerBase;
13552
13810
  }());
13553
13811
 
13554
- function defaultStatisticsCalculator(data, dataInfo) {
13555
- var dataNames = dataInfo.dataNames;
13556
- var statistics = [];
13557
- var values = dataInfo.getValues();
13558
- var valuesIndex = {};
13559
- values.forEach(function (val, index) {
13560
- valuesIndex[val] = index;
13561
- });
13562
- var processMissingAnswers = values.indexOf(undefined) !== -1;
13563
- var series = dataInfo.getSeriesValues();
13564
- var seriesIndex = {};
13565
- series.forEach(function (val, index) {
13566
- seriesIndex[val] = index;
13567
- });
13568
- var seriesLength = series.length || 1;
13569
- for (var i = 0; i < dataNames.length; ++i) {
13570
- var dataNameStatistics = new Array();
13571
- for (var j = 0; j < seriesLength; ++j) {
13572
- dataNameStatistics.push(new Array(values.length).fill(0));
13573
- }
13574
- statistics.push(dataNameStatistics);
13575
- }
13576
- data.forEach(function (row) {
13577
- dataNames.forEach(function (dataName, index) {
13578
- var rowValue = row[dataName];
13579
- if (rowValue !== undefined || processMissingAnswers) {
13580
- var rowValues = Array.isArray(rowValue) ? rowValue : [rowValue];
13581
- if (series.length > 0) {
13582
- if (row[_dataProvider__WEBPACK_IMPORTED_MODULE_2__.DataProvider.seriesMarkerKey] !== undefined) {
13583
- // Series are labelled by seriesMarkerKey in row data
13584
- var seriesNo_1 = seriesIndex[row[_dataProvider__WEBPACK_IMPORTED_MODULE_2__.DataProvider.seriesMarkerKey]] || 0;
13585
- rowValues.forEach(function (val) {
13586
- statistics[index][seriesNo_1][valuesIndex[val]]++;
13587
- });
13588
- }
13589
- else {
13590
- // Series are the keys in question value (matrix question)
13591
- // TODO: think about the de-normalization and combine with the previous case
13592
- rowValues.forEach(function (val) {
13593
- series.forEach(function (seriesName) {
13594
- if (val[seriesName] !== undefined) {
13595
- var seriesNo = seriesIndex[seriesName] || 0;
13596
- statistics[index][seriesNo][valuesIndex[val[seriesName]]]++;
13597
- }
13598
- });
13599
- });
13600
- }
13601
- }
13602
- else {
13603
- // No series
13604
- rowValues.forEach(function (val) { return statistics[0][0][valuesIndex[val]]++; });
13605
- }
13606
- }
13607
- });
13608
- });
13609
- return dataInfo.dataNames.length > 1 ? statistics : statistics[0];
13610
- }
13812
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_4__.VisualizationManager.defaultVisualizer = VisualizerBase;
13611
13813
 
13612
13814
 
13613
13815
  /***/ }),
@@ -15577,18 +15779,19 @@ var __webpack_exports__ = {};
15577
15779
  __webpack_require__.r(__webpack_exports__);
15578
15780
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
15579
15781
  /* harmony export */ AlternativeVisualizersWrapper: () => (/* reexport safe */ _alternativeVizualizersWrapper__WEBPACK_IMPORTED_MODULE_27__.AlternativeVisualizersWrapper),
15580
- /* harmony export */ BooleanModel: () => (/* reexport safe */ _boolean__WEBPACK_IMPORTED_MODULE_19__.BooleanModel),
15782
+ /* harmony export */ BooleanModel: () => (/* reexport safe */ _boolean__WEBPACK_IMPORTED_MODULE_18__.BooleanModel),
15581
15783
  /* harmony export */ DataProvider: () => (/* reexport safe */ _dataProvider__WEBPACK_IMPORTED_MODULE_14__.DataProvider),
15582
- /* harmony export */ DocumentHelper: () => (/* reexport safe */ _utils_index__WEBPACK_IMPORTED_MODULE_34__.DocumentHelper),
15583
- /* harmony export */ HistogramModel: () => (/* reexport safe */ _histogram__WEBPACK_IMPORTED_MODULE_20__.HistogramModel),
15584
- /* harmony export */ Matrix: () => (/* reexport safe */ _matrix__WEBPACK_IMPORTED_MODULE_18__.Matrix),
15784
+ /* harmony export */ DocumentHelper: () => (/* reexport safe */ _utils_index__WEBPACK_IMPORTED_MODULE_35__.DocumentHelper),
15785
+ /* harmony export */ HistogramModel: () => (/* reexport safe */ _histogram__WEBPACK_IMPORTED_MODULE_19__.HistogramModel),
15786
+ /* harmony export */ Matrix: () => (/* reexport safe */ _matrix__WEBPACK_IMPORTED_MODULE_17__.Matrix),
15585
15787
  /* harmony export */ NpsAdapter: () => (/* reexport safe */ _nps__WEBPACK_IMPORTED_MODULE_32__.NpsAdapter),
15586
15788
  /* harmony export */ NpsVisualizer: () => (/* reexport safe */ _nps__WEBPACK_IMPORTED_MODULE_32__.NpsVisualizer),
15587
15789
  /* harmony export */ NpsVisualizerWidget: () => (/* reexport safe */ _nps__WEBPACK_IMPORTED_MODULE_32__.NpsVisualizerWidget),
15588
- /* harmony export */ NumberModel: () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_16__.NumberModel),
15589
- /* harmony export */ PivotModel: () => (/* reexport safe */ _pivot__WEBPACK_IMPORTED_MODULE_33__.PivotModel),
15790
+ /* harmony export */ NumberModel: () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_20__.NumberModel),
15791
+ /* harmony export */ PivotModel: () => (/* reexport safe */ _pivot__WEBPACK_IMPORTED_MODULE_34__.PivotModel),
15590
15792
  /* harmony export */ PostponeHelper: () => (/* reexport safe */ _visualizerBase__WEBPACK_IMPORTED_MODULE_21__.PostponeHelper),
15591
- /* harmony export */ SelectBase: () => (/* reexport safe */ _selectBase__WEBPACK_IMPORTED_MODULE_17__.SelectBase),
15793
+ /* harmony export */ RankingModel: () => (/* reexport safe */ _ranking__WEBPACK_IMPORTED_MODULE_33__.RankingModel),
15794
+ /* harmony export */ SelectBase: () => (/* reexport safe */ _selectBase__WEBPACK_IMPORTED_MODULE_16__.SelectBase),
15592
15795
  /* harmony export */ StatisticsTable: () => (/* reexport safe */ _statistics_table__WEBPACK_IMPORTED_MODULE_31__.StatisticsTable),
15593
15796
  /* harmony export */ StatisticsTableAdapter: () => (/* reexport safe */ _statistics_table__WEBPACK_IMPORTED_MODULE_31__.StatisticsTableAdapter),
15594
15797
  /* harmony export */ Text: () => (/* reexport safe */ _text__WEBPACK_IMPORTED_MODULE_30__.Text),
@@ -15602,8 +15805,7 @@ __webpack_require__.r(__webpack_exports__);
15602
15805
  /* harmony export */ VisualizerFactory: () => (/* reexport safe */ _visualizerFactory__WEBPACK_IMPORTED_MODULE_15__.VisualizerFactory),
15603
15806
  /* harmony export */ WordCloud: () => (/* reexport safe */ _wordcloud_wordcloud__WEBPACK_IMPORTED_MODULE_28__.WordCloud),
15604
15807
  /* harmony export */ WordCloudAdapter: () => (/* reexport safe */ _wordcloud_wordcloud__WEBPACK_IMPORTED_MODULE_28__.WordCloudAdapter),
15605
- /* harmony export */ defaultStatisticsCalculator: () => (/* reexport safe */ _visualizerBase__WEBPACK_IMPORTED_MODULE_21__.defaultStatisticsCalculator),
15606
- /* harmony export */ hideEmptyAnswersInData: () => (/* reexport safe */ _selectBase__WEBPACK_IMPORTED_MODULE_17__.hideEmptyAnswersInData),
15808
+ /* harmony export */ hideEmptyAnswersInData: () => (/* reexport safe */ _selectBase__WEBPACK_IMPORTED_MODULE_16__.hideEmptyAnswersInData),
15607
15809
  /* harmony export */ localization: () => (/* reexport safe */ _localizationManager__WEBPACK_IMPORTED_MODULE_0__.localization),
15608
15810
  /* harmony export */ surveyStrings: () => (/* reexport safe */ _localizationManager__WEBPACK_IMPORTED_MODULE_0__.surveyStrings),
15609
15811
  /* harmony export */ textHelper: () => (/* reexport safe */ _wordcloud_stopwords_index__WEBPACK_IMPORTED_MODULE_29__.textHelper)
@@ -15624,11 +15826,11 @@ __webpack_require__.r(__webpack_exports__);
15624
15826
  /* harmony import */ var _analytics_localization_finnish__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../analytics-localization/finnish */ "./src/analytics-localization/finnish.ts");
15625
15827
  /* harmony import */ var _dataProvider__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../dataProvider */ "./src/dataProvider.ts");
15626
15828
  /* harmony import */ var _visualizerFactory__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../visualizerFactory */ "./src/visualizerFactory.ts");
15627
- /* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../number */ "./src/number.ts");
15628
- /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../selectBase */ "./src/selectBase.ts");
15629
- /* harmony import */ var _matrix__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../matrix */ "./src/matrix.ts");
15630
- /* harmony import */ var _boolean__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../boolean */ "./src/boolean.ts");
15631
- /* harmony import */ var _histogram__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../histogram */ "./src/histogram.ts");
15829
+ /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../selectBase */ "./src/selectBase.ts");
15830
+ /* harmony import */ var _matrix__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../matrix */ "./src/matrix.ts");
15831
+ /* harmony import */ var _boolean__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../boolean */ "./src/boolean.ts");
15832
+ /* harmony import */ var _histogram__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../histogram */ "./src/histogram.ts");
15833
+ /* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../number */ "./src/number.ts");
15632
15834
  /* harmony import */ var _visualizerBase__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../visualizerBase */ "./src/visualizerBase.ts");
15633
15835
  /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../visualizationManager */ "./src/visualizationManager.ts");
15634
15836
  /* harmony import */ var _visualizationPanel__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../visualizationPanel */ "./src/visualizationPanel.ts");
@@ -15641,8 +15843,9 @@ __webpack_require__.r(__webpack_exports__);
15641
15843
  /* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../text */ "./src/text.ts");
15642
15844
  /* harmony import */ var _statistics_table__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../statistics-table */ "./src/statistics-table.ts");
15643
15845
  /* harmony import */ var _nps__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../nps */ "./src/nps.ts");
15644
- /* harmony import */ var _pivot__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../pivot */ "./src/pivot.ts");
15645
- /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../utils/index */ "./src/utils/index.ts");
15846
+ /* harmony import */ var _ranking__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../ranking */ "./src/ranking.ts");
15847
+ /* harmony import */ var _pivot__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../pivot */ "./src/pivot.ts");
15848
+ /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../utils/index */ "./src/utils/index.ts");
15646
15849
 
15647
15850
  //localization
15648
15851
 
@@ -15678,6 +15881,7 @@ __webpack_require__.r(__webpack_exports__);
15678
15881
 
15679
15882
 
15680
15883
 
15884
+
15681
15885
 
15682
15886
 
15683
15887
  })();