survey-analytics 1.11.12 → 1.11.14

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 (33) hide show
  1. package/README.md +0 -2
  2. package/package.json +3 -6
  3. package/survey-analytics-datatables.types/analytics-localization/english.d.ts +3 -0
  4. package/survey-analytics-datatables.types/localizationManager.d.ts +3 -0
  5. package/survey-analytics-tabulator.types/analytics-localization/english.d.ts +3 -0
  6. package/survey-analytics-tabulator.types/localizationManager.d.ts +3 -0
  7. package/survey-analytics.types/analytics-localization/english.d.ts +3 -0
  8. package/survey-analytics.types/choices-table.d.ts +17 -17
  9. package/survey-analytics.types/config.d.ts +2 -3
  10. package/survey-analytics.types/entries/summary.d.ts +1 -1
  11. package/survey-analytics.types/localizationManager.d.ts +3 -0
  12. package/survey-analytics.types/statistics-table.d.ts +17 -0
  13. package/survey-analytics.types/visualizationPanel.d.ts +11 -11
  14. package/survey-analytics.types/wordcloud/wordcloud.d.ts +0 -1
  15. package/survey.analytics.css +9 -9
  16. package/survey.analytics.css.map +1 -1
  17. package/survey.analytics.datatables.css +1 -1
  18. package/survey.analytics.datatables.js +4 -1
  19. package/survey.analytics.datatables.js.map +1 -1
  20. package/survey.analytics.datatables.min.css +1 -1
  21. package/survey.analytics.datatables.min.js +1 -1
  22. package/survey.analytics.datatables.min.js.LICENSE.txt +1 -1
  23. package/survey.analytics.js +201 -221
  24. package/survey.analytics.js.map +1 -1
  25. package/survey.analytics.min.css +2 -2
  26. package/survey.analytics.min.js +1 -1
  27. package/survey.analytics.min.js.LICENSE.txt +1 -1
  28. package/survey.analytics.tabulator.css +1 -1
  29. package/survey.analytics.tabulator.js +4 -1
  30. package/survey.analytics.tabulator.js.map +1 -1
  31. package/survey.analytics.tabulator.min.css +1 -1
  32. package/survey.analytics.tabulator.min.js +1 -1
  33. package/survey.analytics.tabulator.min.js.LICENSE.txt +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - SurveyJS Dashboard library v1.11.12
2
+ * surveyjs - SurveyJS Dashboard library v1.11.14
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -34,10 +34,10 @@ var code = "<svg style=\"display:none;\"><symbol viewBox=\"0 0 16 16\" id=\"sa-s
34
34
 
35
35
  /***/ }),
36
36
 
37
- /***/ "./src/choices-table.scss":
38
- /*!********************************!*\
39
- !*** ./src/choices-table.scss ***!
40
- \********************************/
37
+ /***/ "./src/nps.scss":
38
+ /*!**********************!*\
39
+ !*** ./src/nps.scss ***!
40
+ \**********************/
41
41
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42
42
 
43
43
  "use strict";
@@ -47,10 +47,10 @@ __webpack_require__.r(__webpack_exports__);
47
47
 
48
48
  /***/ }),
49
49
 
50
- /***/ "./src/nps.scss":
51
- /*!**********************!*\
52
- !*** ./src/nps.scss ***!
53
- \**********************/
50
+ /***/ "./src/statistics-table.scss":
51
+ /*!***********************************!*\
52
+ !*** ./src/statistics-table.scss ***!
53
+ \***********************************/
54
54
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
55
55
 
56
56
  "use strict";
@@ -7349,6 +7349,7 @@ var englishStrings = {
7349
7349
  chartType_scatter: "Scatter",
7350
7350
  chartType_gauge: "Gauge",
7351
7351
  chartType_bullet: "Bullet",
7352
+ chartType_line: "Line",
7352
7353
  hideButton: "Hide",
7353
7354
  makePrivateButton: "Make private",
7354
7355
  makePublicButton: "Make public",
@@ -7385,6 +7386,8 @@ var englishStrings = {
7385
7386
  answer: "Answer",
7386
7387
  correctAnswer: "Correct answer: ",
7387
7388
  percent: "Percent",
7389
+ percentage: "Percentage",
7390
+ statistics_chart: "Chart",
7388
7391
  responses: "Responses",
7389
7392
  visualizer_nps: "NPS",
7390
7393
  npsScore: "NPS",
@@ -8390,151 +8393,6 @@ var BooleanModel = /** @class */ (function (_super) {
8390
8393
 
8391
8394
 
8392
8395
 
8393
- /***/ }),
8394
-
8395
- /***/ "./src/choices-table.ts":
8396
- /*!******************************!*\
8397
- !*** ./src/choices-table.ts ***!
8398
- \******************************/
8399
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8400
-
8401
- "use strict";
8402
- __webpack_require__.r(__webpack_exports__);
8403
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8404
- /* harmony export */ ChoicesTable: () => (/* binding */ ChoicesTable),
8405
- /* harmony export */ ChoicesTableAdapter: () => (/* binding */ ChoicesTableAdapter)
8406
- /* harmony export */ });
8407
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/utils/helpers.ts");
8408
- /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectBase */ "./src/selectBase.ts");
8409
- /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
8410
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
8411
-
8412
-
8413
-
8414
-
8415
- var styles = __webpack_require__(/*! ./choices-table.scss */ "./src/choices-table.scss");
8416
- var ChoicesTableAdapter = /** @class */ (function () {
8417
- function ChoicesTableAdapter(model) {
8418
- this.model = model;
8419
- }
8420
- ChoicesTableAdapter.prototype.create = function (container) {
8421
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
8422
- var _a, datasets, labels, colors, texts, seriesLabels, hasSeries, emptyTextNode;
8423
- var _this = this;
8424
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_b) {
8425
- switch (_b.label) {
8426
- case 0: return [4 /*yield*/, this.model.getAnswersData()];
8427
- case 1:
8428
- _a = _b.sent(), datasets = _a.datasets, labels = _a.labels, colors = _a.colors, texts = _a.texts, seriesLabels = _a.seriesLabels;
8429
- hasSeries = seriesLabels.length > 1;
8430
- emptyTextNode = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("p", "", {
8431
- innerText: _localizationManager__WEBPACK_IMPORTED_MODULE_2__.localization.getString("noResults"),
8432
- });
8433
- if (datasets.length === 0 || datasets[0].length === 0) {
8434
- container.appendChild(emptyTextNode);
8435
- return [2 /*return*/];
8436
- }
8437
- datasets.forEach(function (data, idx) {
8438
- var tableNode = (_utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("table", "sa-choices-table"));
8439
- tableNode.style.backgroundColor = _this.model.backgroundColor;
8440
- container.appendChild(tableNode);
8441
- var headerRow = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("tr");
8442
- var labelCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("th", "sa-choices-table__cell-header", {
8443
- textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_2__.localization.getString("answer"),
8444
- });
8445
- headerRow.appendChild(labelCell);
8446
- var sparklineCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("th", "sa-choices-table__cell-header", {
8447
- textContent: "",
8448
- });
8449
- headerRow.appendChild(sparklineCell);
8450
- var percentCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("th", "sa-choices-table__cell-header", {
8451
- textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_2__.localization.getString("percent"),
8452
- });
8453
- headerRow.appendChild(percentCell);
8454
- var valueCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("th", "sa-choices-table__cell-header", {
8455
- textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_2__.localization.getString("responses"),
8456
- });
8457
- headerRow.appendChild(valueCell);
8458
- tableNode.appendChild(headerRow);
8459
- data.forEach(function (rowData, index) {
8460
- var row = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("tr");
8461
- var labelCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("td", "sa-choices-table__cell", {
8462
- textContent: labels[index],
8463
- });
8464
- row.appendChild(labelCell);
8465
- var sparklineCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("td", "sa-choices-table__cell");
8466
- var outerBar = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("div", "sa-choices-sparkline");
8467
- var innerBar = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("div", "sa-choices-sparkline-value");
8468
- innerBar.style.width = texts[idx][index] + "%";
8469
- outerBar.appendChild(innerBar);
8470
- sparklineCell.appendChild(outerBar);
8471
- row.appendChild(sparklineCell);
8472
- var percentCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("td", "sa-choices-table__cell sa-choices-table__cell-value", {
8473
- textContent: "" + texts[idx][index] + "%",
8474
- });
8475
- row.appendChild(percentCell);
8476
- var valueCell = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("td", "sa-choices-table__cell sa-choices-table__cell-value", {
8477
- textContent: rowData,
8478
- });
8479
- row.appendChild(valueCell);
8480
- tableNode.appendChild(row);
8481
- });
8482
- container.className = "sa-choices-table__container";
8483
- container.appendChild(tableNode);
8484
- });
8485
- return [2 /*return*/];
8486
- }
8487
- });
8488
- });
8489
- };
8490
- ChoicesTableAdapter.prototype.destroy = function (node) {
8491
- node.innerHTML = "";
8492
- };
8493
- return ChoicesTableAdapter;
8494
- }());
8495
-
8496
- var ChoicesTable = /** @class */ (function (_super) {
8497
- (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(ChoicesTable, _super);
8498
- function ChoicesTable(question, data, options, name) {
8499
- var _this = _super.call(this, question, data, options, name || "choices") || this;
8500
- _this._choicesTableAdapter = new ChoicesTableAdapter(_this);
8501
- _this.answersOrder = "asc";
8502
- _this.showPercentages = true;
8503
- return _this;
8504
- }
8505
- ChoicesTable.prototype.destroyContent = function (container) {
8506
- this._choicesTableAdapter.destroy(container);
8507
- _super.prototype.destroyContent.call(this, container);
8508
- };
8509
- ChoicesTable.prototype.renderContentAsync = function (container) {
8510
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
8511
- var tableNode;
8512
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
8513
- switch (_a.label) {
8514
- case 0:
8515
- tableNode = _utils__WEBPACK_IMPORTED_MODULE_3__.DocumentHelper.createElement("div");
8516
- return [4 /*yield*/, this._choicesTableAdapter.create(tableNode)];
8517
- case 1:
8518
- _a.sent();
8519
- container.innerHTML = "";
8520
- container.appendChild(tableNode);
8521
- return [2 /*return*/, container];
8522
- }
8523
- });
8524
- });
8525
- };
8526
- ChoicesTable.prototype.destroy = function () {
8527
- this._choicesTableAdapter.destroy(this.contentContainer);
8528
- _super.prototype.destroy.call(this);
8529
- };
8530
- return ChoicesTable;
8531
- }(_selectBase__WEBPACK_IMPORTED_MODULE_1__.SelectBase));
8532
-
8533
- // VisualizationManager.registerVisualizer("radiogroup", ChoicesTable);
8534
- // VisualizationManager.registerVisualizer("dropdown", ChoicesTable);
8535
- // VisualizationManager.registerVisualizer("checkbox", ChoicesTable);
8536
-
8537
-
8538
8396
  /***/ }),
8539
8397
 
8540
8398
  /***/ "./src/dataProvider.ts":
@@ -8872,6 +8730,7 @@ var HistogramModel = /** @class */ (function (_super) {
8872
8730
  if (this.question.getType() == "rating") {
8873
8731
  if (this.needUseRateValues) {
8874
8732
  var rateValues_1 = this.question["rateValues"];
8733
+ rateValues_1.sort(function (iv1, iv2) { return iv1.value - iv2.value; });
8875
8734
  return rateValues_1.map(function (rateValue, i) { return ({
8876
8735
  start: rateValue.value,
8877
8736
  end: i < rateValues_1.length - 1 ? rateValues_1[i + 1].value : rateValue.value + 1,
@@ -9842,7 +9701,7 @@ var HistogramPlotly = /** @class */ (function (_super) {
9842
9701
  HistogramPlotly.prototype.getValueType = function () {
9843
9702
  return this.valueType;
9844
9703
  };
9845
- HistogramPlotly.types = ["vbar", "bar", "scatter"];
9704
+ HistogramPlotly.types = ["vbar", "bar"];
9846
9705
  return HistogramPlotly;
9847
9706
  }(_histogram__WEBPACK_IMPORTED_MODULE_2__.HistogramModel));
9848
9707
 
@@ -10401,7 +10260,7 @@ var SelectBasePlotly = /** @class */ (function (_super) {
10401
10260
  _this.chartTypes.push("stackedbar");
10402
10261
  }
10403
10262
  if (options.allowExperimentalFeatures) {
10404
- _this.chartTypes.splice(1, 0, "vbar");
10263
+ // this.chartTypes.splice(1, 0, "vbar");
10405
10264
  }
10406
10265
  _this._chartType = _this.chartTypes[0];
10407
10266
  if (_this.chartTypes.indexOf(options.defaultChartType) !== -1) {
@@ -10445,7 +10304,7 @@ var SelectBasePlotly = /** @class */ (function (_super) {
10445
10304
  }
10446
10305
  return statistics;
10447
10306
  };
10448
- SelectBasePlotly.types = ["bar", "pie", "doughnut", "scatter"];
10307
+ SelectBasePlotly.types = ["bar", "vbar", "pie", "doughnut"];
10449
10308
  SelectBasePlotly.displayModeBar = undefined;
10450
10309
  return SelectBasePlotly;
10451
10310
  }(_selectBase__WEBPACK_IMPORTED_MODULE_2__.SelectBase));
@@ -10663,6 +10522,20 @@ var PlotlySetup = /** @class */ (function () {
10663
10522
  var topMargin = 30;
10664
10523
  var bottomMargin = 30;
10665
10524
  var datasets = answersData.datasets, labels = answersData.labels, colors = answersData.colors, texts = answersData.texts, seriesLabels = answersData.seriesLabels;
10525
+ if (model.type !== "histogram") {
10526
+ labels = [].concat(labels).reverse();
10527
+ colors = [].concat(colors.slice(0, labels.length)).reverse();
10528
+ var ts_1 = [];
10529
+ texts.forEach(function (text) {
10530
+ ts_1.push([].concat(text).reverse());
10531
+ });
10532
+ texts = ts_1;
10533
+ var ds_1 = [];
10534
+ datasets.forEach(function (dataset) {
10535
+ ds_1.push([].concat(dataset).reverse());
10536
+ });
10537
+ datasets = ds_1;
10538
+ }
10666
10539
  var traces = [];
10667
10540
  var hasSeries = seriesLabels.length > 1 || model.question.getType() === "matrix";
10668
10541
  var layout = {
@@ -10684,10 +10557,10 @@ var PlotlySetup = /** @class */ (function () {
10684
10557
  showlegend: false,
10685
10558
  };
10686
10559
  var traceConfig = {
10687
- type: "bar",
10560
+ type: model.chartType === "line" ? "line" : "bar",
10688
10561
  customdata: hasSeries ? seriesLabels : labels,
10689
10562
  hoverinfo: "x+y",
10690
- mode: "markers",
10563
+ mode: model.chartType === "line" ? "lines+markers" : "markers",
10691
10564
  textposition: "none",
10692
10565
  width: 0.5,
10693
10566
  bargap: 0.5,
@@ -10811,6 +10684,7 @@ var PlotlySetup = /** @class */ (function () {
10811
10684
  PlotlySetup.setups = {
10812
10685
  bar: PlotlySetup.setupBar,
10813
10686
  vbar: PlotlySetup.setupVBar,
10687
+ line: PlotlySetup.setupVBar,
10814
10688
  stackedbar: PlotlySetup.setupBar,
10815
10689
  doughnut: PlotlySetup.setupPie,
10816
10690
  pie: PlotlySetup.setupPie,
@@ -11056,7 +10930,7 @@ var SelectBase = /** @class */ (function (_super) {
11056
10930
  this.emptyAnswersBtn.innerText = this._hideEmptyAnswers
11057
10931
  ? _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("showEmptyAnswers")
11058
10932
  : _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("hideEmptyAnswers");
11059
- if (this.chartType == "bar" || this.chartType == "vbar" || this.chartType == "scatter") {
10933
+ if (this.chartType == "bar" || this.chartType == "vbar" || this.chartType == "line" || this.chartType == "scatter") {
11060
10934
  this.emptyAnswersBtn.style.display = "inline";
11061
10935
  }
11062
10936
  else {
@@ -11081,6 +10955,7 @@ var SelectBase = /** @class */ (function (_super) {
11081
10955
  if (!!this.choicesOrderSelector) {
11082
10956
  if (this.chartType == "bar" ||
11083
10957
  this.chartType == "vbar" ||
10958
+ this.chartType == "line" ||
11084
10959
  this.chartType == "scatter" ||
11085
10960
  ((this.chartType == "pie" || this.chartType == "doughnut") &&
11086
10961
  this.topN > 0)) {
@@ -11499,6 +11374,152 @@ var SelectBase = /** @class */ (function (_super) {
11499
11374
 
11500
11375
 
11501
11376
 
11377
+ /***/ }),
11378
+
11379
+ /***/ "./src/statistics-table.ts":
11380
+ /*!*********************************!*\
11381
+ !*** ./src/statistics-table.ts ***!
11382
+ \*********************************/
11383
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11384
+
11385
+ "use strict";
11386
+ __webpack_require__.r(__webpack_exports__);
11387
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11388
+ /* harmony export */ StatisticsTable: () => (/* binding */ StatisticsTable),
11389
+ /* harmony export */ StatisticsTableAdapter: () => (/* binding */ StatisticsTableAdapter)
11390
+ /* harmony export */ });
11391
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/utils/helpers.ts");
11392
+ /* harmony import */ var _selectBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectBase */ "./src/selectBase.ts");
11393
+ /* harmony import */ var _visualizationManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./visualizationManager */ "./src/visualizationManager.ts");
11394
+ /* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./localizationManager */ "./src/localizationManager.ts");
11395
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils/index.ts");
11396
+
11397
+
11398
+
11399
+
11400
+
11401
+ var styles = __webpack_require__(/*! ./statistics-table.scss */ "./src/statistics-table.scss");
11402
+ var StatisticsTableAdapter = /** @class */ (function () {
11403
+ function StatisticsTableAdapter(model) {
11404
+ this.model = model;
11405
+ }
11406
+ StatisticsTableAdapter.prototype.create = function (container) {
11407
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
11408
+ var _a, datasets, labels, colors, texts, seriesLabels, hasSeries, emptyTextNode;
11409
+ var _this = this;
11410
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_b) {
11411
+ switch (_b.label) {
11412
+ case 0: return [4 /*yield*/, this.model.getAnswersData()];
11413
+ case 1:
11414
+ _a = _b.sent(), datasets = _a.datasets, labels = _a.labels, colors = _a.colors, texts = _a.texts, seriesLabels = _a.seriesLabels;
11415
+ hasSeries = seriesLabels.length > 1;
11416
+ emptyTextNode = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("p", "", {
11417
+ innerText: _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("noResults"),
11418
+ });
11419
+ if (datasets.length === 0 || datasets[0].length === 0) {
11420
+ container.appendChild(emptyTextNode);
11421
+ return [2 /*return*/];
11422
+ }
11423
+ datasets.forEach(function (data, idx) {
11424
+ var tableNode = (_utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("table", "sa-statistics-table"));
11425
+ tableNode.style.backgroundColor = _this.model.backgroundColor;
11426
+ container.appendChild(tableNode);
11427
+ var headerRow = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("tr");
11428
+ var labelCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("th", "sa-statistics-table__cell-header", {
11429
+ textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("answer"),
11430
+ });
11431
+ headerRow.appendChild(labelCell);
11432
+ var sparklineCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("th", "sa-statistics-table__cell-header", {
11433
+ textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("statistics_chart"),
11434
+ });
11435
+ headerRow.appendChild(sparklineCell);
11436
+ var percentCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("th", "sa-statistics-table__cell-header", {
11437
+ textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("percentage"),
11438
+ });
11439
+ headerRow.appendChild(percentCell);
11440
+ var valueCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("th", "sa-statistics-table__cell-header", {
11441
+ textContent: _localizationManager__WEBPACK_IMPORTED_MODULE_3__.localization.getString("responses"),
11442
+ });
11443
+ headerRow.appendChild(valueCell);
11444
+ tableNode.appendChild(headerRow);
11445
+ for (var index = data.length - 1; index >= 0; index--) {
11446
+ var row = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("tr");
11447
+ var labelCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("td", "sa-statistics-table__cell", {
11448
+ textContent: labels[index],
11449
+ });
11450
+ row.appendChild(labelCell);
11451
+ var sparklineCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("td", "sa-statistics-table__cell");
11452
+ var outerBar = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-choices-sparkline");
11453
+ var innerBar = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div", "sa-choices-sparkline-value");
11454
+ innerBar.style.width = texts[idx][index] + "%";
11455
+ outerBar.appendChild(innerBar);
11456
+ sparklineCell.appendChild(outerBar);
11457
+ row.appendChild(sparklineCell);
11458
+ var percentCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("td", "sa-statistics-table__cell sa-statistics-table__cell-value", {
11459
+ textContent: "" + texts[idx][index] + "%",
11460
+ });
11461
+ row.appendChild(percentCell);
11462
+ var valueCell = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("td", "sa-statistics-table__cell sa-statistics-table__cell-value", {
11463
+ textContent: data[index],
11464
+ });
11465
+ row.appendChild(valueCell);
11466
+ tableNode.appendChild(row);
11467
+ }
11468
+ container.className = "sa-statistics-table__container";
11469
+ container.appendChild(tableNode);
11470
+ });
11471
+ return [2 /*return*/];
11472
+ }
11473
+ });
11474
+ });
11475
+ };
11476
+ StatisticsTableAdapter.prototype.destroy = function (node) {
11477
+ node.innerHTML = "";
11478
+ };
11479
+ return StatisticsTableAdapter;
11480
+ }());
11481
+
11482
+ var StatisticsTable = /** @class */ (function (_super) {
11483
+ (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(StatisticsTable, _super);
11484
+ function StatisticsTable(question, data, options, name) {
11485
+ var _this = _super.call(this, question, data, options, name || "choices") || this;
11486
+ _this._statisticsTableAdapter = new StatisticsTableAdapter(_this);
11487
+ _this.showPercentages = true;
11488
+ return _this;
11489
+ }
11490
+ StatisticsTable.prototype.destroyContent = function (container) {
11491
+ this._statisticsTableAdapter.destroy(container);
11492
+ _super.prototype.destroyContent.call(this, container);
11493
+ };
11494
+ StatisticsTable.prototype.renderContentAsync = function (container) {
11495
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
11496
+ var tableNode;
11497
+ return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
11498
+ switch (_a.label) {
11499
+ case 0:
11500
+ tableNode = _utils__WEBPACK_IMPORTED_MODULE_4__.DocumentHelper.createElement("div");
11501
+ return [4 /*yield*/, this._statisticsTableAdapter.create(tableNode)];
11502
+ case 1:
11503
+ _a.sent();
11504
+ container.innerHTML = "";
11505
+ container.appendChild(tableNode);
11506
+ return [2 /*return*/, container];
11507
+ }
11508
+ });
11509
+ });
11510
+ };
11511
+ StatisticsTable.prototype.destroy = function () {
11512
+ this._statisticsTableAdapter.destroy(this.contentContainer);
11513
+ _super.prototype.destroy.call(this);
11514
+ };
11515
+ return StatisticsTable;
11516
+ }(_selectBase__WEBPACK_IMPORTED_MODULE_1__.SelectBase));
11517
+
11518
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_2__.VisualizationManager.registerVisualizer("radiogroup", StatisticsTable);
11519
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_2__.VisualizationManager.registerVisualizer("dropdown", StatisticsTable);
11520
+ _visualizationManager__WEBPACK_IMPORTED_MODULE_2__.VisualizationManager.registerVisualizer("checkbox", StatisticsTable);
11521
+
11522
+
11502
11523
  /***/ }),
11503
11524
 
11504
11525
  /***/ "./src/text.ts":
@@ -15592,24 +15613,32 @@ var WordCloudWidget = /** @class */ (function () {
15592
15613
  var _this = this;
15593
15614
  this._renderedTarget = target;
15594
15615
  var cloudElement = document.createElement("div");
15616
+ document.body.appendChild(cloudElement);
15617
+ cloudElement.style.position = "fixed";
15618
+ cloudElement.style.top = "-1000px";
15619
+ cloudElement.style.width = "0";
15620
+ cloudElement.style.height = "0";
15621
+ var startPoint = {
15622
+ x: cloudElement.offsetWidth / 2,
15623
+ y: cloudElement.offsetHeight / 2
15624
+ };
15625
+ var _a = this.arrangeWords(cloudElement, startPoint), yMin = _a[0], yMax = _a[1];
15626
+ this._placedWords.forEach(function (wordInfo) {
15627
+ wordInfo.element.style.top = wordInfo.top - yMin + _this._options.padding + "px";
15628
+ });
15629
+ cloudElement.remove();
15630
+ cloudElement.style.top = "auto";
15631
+ cloudElement.style.left = "50%";
15595
15632
  cloudElement.className = "sa-visualizer-wordcloud";
15596
15633
  cloudElement.style.position = "relative";
15597
- target.appendChild(cloudElement);
15598
15634
  if (this._options.maxHeight > 0) {
15599
15635
  cloudElement.style.height = this._options.maxHeight + "px";
15600
15636
  cloudElement.style.overflow = "auto";
15601
15637
  }
15602
- var startPoint = {
15603
- x: cloudElement.offsetWidth / 2,
15604
- y: cloudElement.offsetHeight / 2
15605
- };
15606
- var _a = this.arrangeWords(cloudElement, startPoint), yMin = _a[0], yMax = _a[1];
15607
15638
  if (this._options.maxHeight == 0) {
15608
15639
  cloudElement.style.height = yMax - yMin + this._options.padding * 2 + "px";
15609
15640
  }
15610
- this._placedWords.forEach(function (wordInfo) {
15611
- wordInfo.element.style.top = wordInfo.top - yMin + _this._options.padding + "px";
15612
- });
15641
+ target.appendChild(cloudElement);
15613
15642
  };
15614
15643
  WordCloudWidget.prototype.dispose = function () {
15615
15644
  if (!!this._renderedTarget) {
@@ -15652,7 +15681,6 @@ __webpack_require__.r(__webpack_exports__);
15652
15681
 
15653
15682
 
15654
15683
 
15655
- // import WordCloudLib from "wordcloud";
15656
15684
 
15657
15685
  var WordCloudAdapter = /** @class */ (function () {
15658
15686
  function WordCloudAdapter(model) {
@@ -15665,54 +15693,6 @@ var WordCloudAdapter = /** @class */ (function () {
15665
15693
  enumerable: false,
15666
15694
  configurable: true
15667
15695
  });
15668
- WordCloudAdapter.prototype.createWordCloud2 = function (node) {
15669
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
15670
- var data, colors, canvasNode, emptyTextNode, config, options;
15671
- var _this = this;
15672
- return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
15673
- switch (_a.label) {
15674
- case 0: return [4 /*yield*/, this.model.getCalculatedValues()];
15675
- case 1:
15676
- data = _a.sent();
15677
- colors = this.model.getColors();
15678
- canvasNode = (_utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("canvas", ""));
15679
- emptyTextNode = _utils__WEBPACK_IMPORTED_MODULE_5__.DocumentHelper.createElement("p", "", {
15680
- innerText: _localizationManager__WEBPACK_IMPORTED_MODULE_6__.localization.getString("noResults"),
15681
- });
15682
- if (data.length === 0) {
15683
- node.appendChild(emptyTextNode);
15684
- return [2 /*return*/];
15685
- }
15686
- node.appendChild(canvasNode);
15687
- config = {
15688
- list: data,
15689
- weightFactor: WordCloudAdapter.weightFactor,
15690
- abortThreshold: WordCloudAdapter.abortThreshold,
15691
- drawOutOfBound: WordCloudAdapter.drawOutOfBound,
15692
- shrinkToFit: WordCloudAdapter.shrinkToFit,
15693
- fontFamily: "Segoe UI Bold, sans-serif",
15694
- color: function (word, weight) {
15695
- return _this.model.getRandomColor();
15696
- },
15697
- rotateRatio: 0.5,
15698
- rotationSteps: 2,
15699
- backgroundColor: this.model.backgroundColor,
15700
- click: function (item) {
15701
- // eslint-disable-next-line no-console
15702
- console.log(item[0] + ": " + item[1]);
15703
- },
15704
- };
15705
- options = {
15706
- canvas: canvasNode,
15707
- config: config
15708
- };
15709
- WordCloudAdapter.onWordcloudCreating.fire(this.model, options);
15710
- // this._wordcloud = WordCloudLib(options.canvas, options.config as any);
15711
- return [2 /*return*/, this._wordcloud];
15712
- }
15713
- });
15714
- });
15715
- };
15716
15696
  WordCloudAdapter.prototype.create = function (element) {
15717
15697
  return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
15718
15698
  var data, colors, emptyTextNode, config, options;
@@ -15967,8 +15947,6 @@ __webpack_require__.r(__webpack_exports__);
15967
15947
  /* harmony export */ AlternativeVisualizersWrapper: () => (/* reexport safe */ _alternativeVizualizersWrapper__WEBPACK_IMPORTED_MODULE_25__.AlternativeVisualizersWrapper),
15968
15948
  /* harmony export */ BooleanModel: () => (/* reexport safe */ _boolean__WEBPACK_IMPORTED_MODULE_17__.BooleanModel),
15969
15949
  /* harmony export */ BooleanPlotly: () => (/* reexport safe */ _plotly_index__WEBPACK_IMPORTED_MODULE_26__.BooleanPlotly),
15970
- /* harmony export */ ChoicesTable: () => (/* reexport safe */ _choices_table__WEBPACK_IMPORTED_MODULE_30__.ChoicesTable),
15971
- /* harmony export */ ChoicesTableAdapter: () => (/* reexport safe */ _choices_table__WEBPACK_IMPORTED_MODULE_30__.ChoicesTableAdapter),
15972
15950
  /* harmony export */ DataProvider: () => (/* reexport safe */ _dataProvider__WEBPACK_IMPORTED_MODULE_12__.DataProvider),
15973
15951
  /* harmony export */ DocumentHelper: () => (/* reexport safe */ _utils_index__WEBPACK_IMPORTED_MODULE_32__.DocumentHelper),
15974
15952
  /* harmony export */ GaugePlotly: () => (/* reexport safe */ _plotly_index__WEBPACK_IMPORTED_MODULE_26__.GaugePlotly),
@@ -15988,6 +15966,8 @@ __webpack_require__.r(__webpack_exports__);
15988
15966
  /* harmony export */ RankingPlotly: () => (/* reexport safe */ _plotly_index__WEBPACK_IMPORTED_MODULE_26__.RankingPlotly),
15989
15967
  /* harmony export */ SelectBase: () => (/* reexport safe */ _selectBase__WEBPACK_IMPORTED_MODULE_15__.SelectBase),
15990
15968
  /* harmony export */ SelectBasePlotly: () => (/* reexport safe */ _plotly_index__WEBPACK_IMPORTED_MODULE_26__.SelectBasePlotly),
15969
+ /* harmony export */ StatisticsTable: () => (/* reexport safe */ _statistics_table__WEBPACK_IMPORTED_MODULE_30__.StatisticsTable),
15970
+ /* harmony export */ StatisticsTableAdapter: () => (/* reexport safe */ _statistics_table__WEBPACK_IMPORTED_MODULE_30__.StatisticsTableAdapter),
15991
15971
  /* harmony export */ Text: () => (/* reexport safe */ _text__WEBPACK_IMPORTED_MODULE_29__.Text),
15992
15972
  /* harmony export */ TextTableAdapter: () => (/* reexport safe */ _text__WEBPACK_IMPORTED_MODULE_29__.TextTableAdapter),
15993
15973
  /* harmony export */ VisualizationManager: () => (/* reexport safe */ _visualizationManager__WEBPACK_IMPORTED_MODULE_20__.VisualizationManager),
@@ -16035,7 +16015,7 @@ __webpack_require__.r(__webpack_exports__);
16035
16015
  /* harmony import */ var _wordcloud_wordcloud__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../wordcloud/wordcloud */ "./src/wordcloud/wordcloud.ts");
16036
16016
  /* harmony import */ var _wordcloud_stopwords_index__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../wordcloud/stopwords/index */ "./src/wordcloud/stopwords/index.ts");
16037
16017
  /* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../text */ "./src/text.ts");
16038
- /* harmony import */ var _choices_table__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../choices-table */ "./src/choices-table.ts");
16018
+ /* harmony import */ var _statistics_table__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../statistics-table */ "./src/statistics-table.ts");
16039
16019
  /* harmony import */ var _nps__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../nps */ "./src/nps.ts");
16040
16020
  /* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../utils/index */ "./src/utils/index.ts");
16041
16021