survey-analytics 2.2.6 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm/shared.mjs +2 -1
- package/fesm/shared.mjs.map +1 -1
- package/fesm/shared2.mjs +7 -4
- package/fesm/shared2.mjs.map +1 -1
- package/fesm/survey.analytics.core.mjs +1 -1
- package/fesm/survey.analytics.mjs +80 -19
- package/fesm/survey.analytics.mjs.map +1 -1
- package/fesm/survey.analytics.tabulator.mjs +1 -1
- package/package.json +2 -2
- package/survey-analytics-tabulator.types/analytics-localization/english.d.ts +1 -0
- package/survey-analytics-tabulator.types/localizationManager.d.ts +1 -0
- package/survey-analytics.types/analytics-localization/english.d.ts +1 -0
- package/survey-analytics.types/config.d.ts +1 -0
- package/survey-analytics.types/localizationManager.d.ts +1 -0
- package/survey-analytics.types/plotly/chart-adapter.d.ts +1 -0
- package/survey-analytics.types/plotly/setup.d.ts +1 -0
- package/survey-analytics.types/ranking.d.ts +4 -0
- package/survey-analytics.types/visualizationPanel.d.ts +4 -2
- package/survey.analytics.core.css +1 -1
- package/survey.analytics.core.js +9 -6
- package/survey.analytics.core.js.map +1 -1
- package/survey.analytics.core.min.css +1 -1
- package/survey.analytics.core.min.js +1 -1
- package/survey.analytics.core.min.js.LICENSE.txt +1 -1
- package/survey.analytics.css +1 -1
- package/survey.analytics.js +103 -37
- package/survey.analytics.js.map +1 -1
- package/survey.analytics.min.css +1 -1
- package/survey.analytics.min.js +1 -1
- package/survey.analytics.min.js.LICENSE.txt +1 -1
- package/survey.analytics.tabulator.css +1 -1
- package/survey.analytics.tabulator.js +2 -1
- package/survey.analytics.tabulator.js.map +1 -1
- package/survey.analytics.tabulator.min.css +1 -1
- package/survey.analytics.tabulator.min.js +1 -1
- package/survey.analytics.tabulator.min.js.LICENSE.txt +1 -1
package/survey.analytics.css
CHANGED
package/survey.analytics.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* surveyjs - SurveyJS Dashboard library v2.
|
|
2
|
+
* surveyjs - SurveyJS Dashboard library v2.3.0
|
|
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
|
*/
|
|
@@ -7276,6 +7276,7 @@ var englishStrings = {
|
|
|
7276
7276
|
chartType_gauge: "Gauge",
|
|
7277
7277
|
chartType_bullet: "Bullet",
|
|
7278
7278
|
chartType_line: "Line",
|
|
7279
|
+
chartType_radar: "Radar",
|
|
7279
7280
|
hideButton: "Hide",
|
|
7280
7281
|
makePrivateButton: "Make private",
|
|
7281
7282
|
makePublicButton: "Make public",
|
|
@@ -10378,6 +10379,7 @@ var plotlyChartTypes = {
|
|
|
10378
10379
|
"matrix": _legacy__WEBPACK_IMPORTED_MODULE_8__.MatrixPlotly.types,
|
|
10379
10380
|
"matrixDropdownGrouped": _legacy__WEBPACK_IMPORTED_MODULE_8__.MatrixDropdownGroupedPlotly.types,
|
|
10380
10381
|
"pivot": _legacy__WEBPACK_IMPORTED_MODULE_8__.PivotPlotly.types,
|
|
10382
|
+
"ranking": [].concat(_legacy__WEBPACK_IMPORTED_MODULE_8__.SelectBasePlotly.types).concat(["radar"]),
|
|
10381
10383
|
};
|
|
10382
10384
|
var PlotlyChartAdapter = /** @class */ (function () {
|
|
10383
10385
|
function PlotlyChartAdapter(model) {
|
|
@@ -10397,11 +10399,19 @@ var PlotlyChartAdapter = /** @class */ (function () {
|
|
|
10397
10399
|
var chartType = this.model.chartType;
|
|
10398
10400
|
if (chartType === "pie" || chartType === "doughnut") {
|
|
10399
10401
|
traces.forEach(function (trace) {
|
|
10402
|
+
if (!trace)
|
|
10403
|
+
return;
|
|
10404
|
+
if (!trace.marker)
|
|
10405
|
+
trace.marker = {};
|
|
10400
10406
|
trace.marker.colors = boolColors_1;
|
|
10401
10407
|
});
|
|
10402
10408
|
}
|
|
10403
10409
|
else if (chartType === "bar") {
|
|
10404
10410
|
traces.forEach(function (trace) {
|
|
10411
|
+
if (!trace)
|
|
10412
|
+
return;
|
|
10413
|
+
if (!trace.marker)
|
|
10414
|
+
trace.marker = {};
|
|
10405
10415
|
trace.marker.color = boolColors_1;
|
|
10406
10416
|
});
|
|
10407
10417
|
}
|
|
@@ -10710,11 +10720,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
10710
10720
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10711
10721
|
/* harmony export */ PlotlySetup: () => (/* binding */ PlotlySetup)
|
|
10712
10722
|
/* harmony export */ });
|
|
10713
|
-
/* harmony import */ var
|
|
10714
|
-
/* harmony import */ var
|
|
10715
|
-
/* harmony import */ var
|
|
10716
|
-
/* harmony import */ var
|
|
10717
|
-
/* harmony import */ var
|
|
10723
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/utils/helpers.ts");
|
|
10724
|
+
/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! survey-core */ "survey-core");
|
|
10725
|
+
/* harmony import */ var survey_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(survey_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
10726
|
+
/* harmony import */ var _localizationManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../localizationManager */ "./src/localizationManager.ts");
|
|
10727
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./src/utils/index.ts");
|
|
10728
|
+
/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../number */ "./src/number.ts");
|
|
10729
|
+
|
|
10718
10730
|
|
|
10719
10731
|
|
|
10720
10732
|
|
|
@@ -10879,25 +10891,7 @@ var PlotlySetup = /** @class */ (function () {
|
|
|
10879
10891
|
topMargin +
|
|
10880
10892
|
bottomMargin;
|
|
10881
10893
|
}
|
|
10882
|
-
|
|
10883
|
-
// traces[index].marker.color = undefined;
|
|
10884
|
-
// traces[index].name = label;
|
|
10885
|
-
// if (model.chartType === "stackedbar") {
|
|
10886
|
-
// traces[index].type = "bar";
|
|
10887
|
-
// traces[index].width = 0.5;
|
|
10888
|
-
// } else {
|
|
10889
|
-
// traces[index].width =
|
|
10890
|
-
// (model.showPercentages ? 0.7 : 0.5) / traces.length;
|
|
10891
|
-
// }
|
|
10892
|
-
// });
|
|
10893
|
-
// traces.forEach((trace, traceIndex) => {
|
|
10894
|
-
// const percentString = model.showPercentages ? "%" : "";
|
|
10895
|
-
// traces[traceIndex].hovertext = [];
|
|
10896
|
-
// yFullTexts.forEach((yFullText, yFullTextIndex) => {
|
|
10897
|
-
// traces[traceIndex].hovertext.push(`${trace.y[yFullTextIndex]} : ${trace.name}, ${trace.text[yFullTextIndex]}${percentString}`);
|
|
10898
|
-
// });
|
|
10899
|
-
// });
|
|
10900
|
-
if (["ar", "fa"].indexOf(_localizationManager__WEBPACK_IMPORTED_MODULE_1__.localization.currentLocale) !== -1) {
|
|
10894
|
+
if (["ar", "fa"].indexOf(_localizationManager__WEBPACK_IMPORTED_MODULE_2__.localization.currentLocale) !== -1) {
|
|
10901
10895
|
layout.xaxis.autorange = "reversed";
|
|
10902
10896
|
layout.yaxis.side = "right";
|
|
10903
10897
|
layout.legend = {
|
|
@@ -11089,11 +11083,11 @@ var PlotlySetup = /** @class */ (function () {
|
|
|
11089
11083
|
maxValue = rateValues[rateValues.length - 1].value;
|
|
11090
11084
|
minValue = rateValues[0].value;
|
|
11091
11085
|
}
|
|
11092
|
-
var colors = model.generateColors(maxValue, minValue,
|
|
11093
|
-
if (
|
|
11094
|
-
level =
|
|
11095
|
-
minValue =
|
|
11096
|
-
maxValue =
|
|
11086
|
+
var colors = model.generateColors(maxValue, minValue, _number__WEBPACK_IMPORTED_MODULE_4__.NumberModel.stepsCount);
|
|
11087
|
+
if (_number__WEBPACK_IMPORTED_MODULE_4__.NumberModel.showAsPercentage) {
|
|
11088
|
+
level = _utils__WEBPACK_IMPORTED_MODULE_3__.DataHelper.toPercentage(level, maxValue);
|
|
11089
|
+
minValue = _utils__WEBPACK_IMPORTED_MODULE_3__.DataHelper.toPercentage(minValue, maxValue);
|
|
11090
|
+
maxValue = _utils__WEBPACK_IMPORTED_MODULE_3__.DataHelper.toPercentage(maxValue, maxValue);
|
|
11097
11091
|
}
|
|
11098
11092
|
var traces = [
|
|
11099
11093
|
{
|
|
@@ -11125,16 +11119,85 @@ var PlotlySetup = /** @class */ (function () {
|
|
|
11125
11119
|
};
|
|
11126
11120
|
return { traces: traces, layout: layout, hasSeries: false };
|
|
11127
11121
|
};
|
|
11122
|
+
PlotlySetup.setupRadar = function (model, answersData) {
|
|
11123
|
+
var datasets = answersData.datasets, labels = answersData.labels, colors = answersData.colors, texts = answersData.texts, seriesLabels = answersData.seriesLabels;
|
|
11124
|
+
var hasSeries = seriesLabels.length > 1 || model.question.getType() === "matrix";
|
|
11125
|
+
var traces = [];
|
|
11126
|
+
var traceConfig = {
|
|
11127
|
+
type: "scatterpolar",
|
|
11128
|
+
mode: "lines+markers",
|
|
11129
|
+
fill: "toself",
|
|
11130
|
+
line: {
|
|
11131
|
+
width: 2
|
|
11132
|
+
},
|
|
11133
|
+
marker: {
|
|
11134
|
+
size: 6
|
|
11135
|
+
}
|
|
11136
|
+
};
|
|
11137
|
+
datasets.forEach(function (dataset, index) {
|
|
11138
|
+
var traceName = hasSeries ? seriesLabels[index] : "";
|
|
11139
|
+
var trace = Object.assign({}, traceConfig, {
|
|
11140
|
+
r: dataset,
|
|
11141
|
+
theta: labels,
|
|
11142
|
+
name: traceName,
|
|
11143
|
+
text: texts[index],
|
|
11144
|
+
hoverinfo: "r+theta+name",
|
|
11145
|
+
customdata: labels,
|
|
11146
|
+
hovertemplate: "%{theta}: %{r}" +
|
|
11147
|
+
"<extra></extra>",
|
|
11148
|
+
line: (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)({}, traceConfig.line), { color: colors[index % colors.length] }),
|
|
11149
|
+
marker: (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)({}, traceConfig.marker), { color: colors[index % colors.length] })
|
|
11150
|
+
});
|
|
11151
|
+
traces.push(trace);
|
|
11152
|
+
});
|
|
11153
|
+
var layout = {
|
|
11154
|
+
font: {
|
|
11155
|
+
family: "Segoe UI, sans-serif",
|
|
11156
|
+
size: 14,
|
|
11157
|
+
weight: "normal",
|
|
11158
|
+
color: "#404040",
|
|
11159
|
+
},
|
|
11160
|
+
polar: {
|
|
11161
|
+
radialaxis: {
|
|
11162
|
+
visible: true,
|
|
11163
|
+
range: [0, Math.max.apply(Math, datasets.map(function (s) { return Math.max.apply(Math, s); })) * 1.1],
|
|
11164
|
+
tickfont: {
|
|
11165
|
+
size: 12
|
|
11166
|
+
}
|
|
11167
|
+
},
|
|
11168
|
+
angularaxis: {
|
|
11169
|
+
tickfont: {
|
|
11170
|
+
size: 12
|
|
11171
|
+
},
|
|
11172
|
+
ticktext: labels.map(function (label) {
|
|
11173
|
+
return PlotlySetup.getTruncatedLabel(label, model.labelTruncateLength);
|
|
11174
|
+
}),
|
|
11175
|
+
tickvals: labels
|
|
11176
|
+
}
|
|
11177
|
+
},
|
|
11178
|
+
showlegend: hasSeries,
|
|
11179
|
+
colorway: colors,
|
|
11180
|
+
plot_bgcolor: model.backgroundColor,
|
|
11181
|
+
paper_bgcolor: model.backgroundColor,
|
|
11182
|
+
margin: {
|
|
11183
|
+
l: 50,
|
|
11184
|
+
r: 50,
|
|
11185
|
+
t: 50,
|
|
11186
|
+
b: 50
|
|
11187
|
+
}
|
|
11188
|
+
};
|
|
11189
|
+
return { traces: traces, layout: layout, hasSeries: hasSeries };
|
|
11190
|
+
};
|
|
11128
11191
|
PlotlySetup.imageExportFormat = "png";
|
|
11129
11192
|
/**
|
|
11130
11193
|
* Fires when end user clicks on the 'save as image' button.
|
|
11131
11194
|
*/
|
|
11132
|
-
PlotlySetup.onImageSaving = new
|
|
11195
|
+
PlotlySetup.onImageSaving = new survey_core__WEBPACK_IMPORTED_MODULE_1__.Event();
|
|
11133
11196
|
/**
|
|
11134
11197
|
* Fires before plot will be created. User can change traces, layout and config of the plot.
|
|
11135
11198
|
* Options is an object with the following fields: traces, layout and config of the plot.
|
|
11136
11199
|
*/
|
|
11137
|
-
PlotlySetup.onPlotCreating = new
|
|
11200
|
+
PlotlySetup.onPlotCreating = new survey_core__WEBPACK_IMPORTED_MODULE_1__.Event();
|
|
11138
11201
|
PlotlySetup.setups = {
|
|
11139
11202
|
bar: PlotlySetup.setupBar,
|
|
11140
11203
|
vbar: PlotlySetup.setupVBar,
|
|
@@ -11145,6 +11208,7 @@ var PlotlySetup = /** @class */ (function () {
|
|
|
11145
11208
|
scatter: PlotlySetup.setupScatter,
|
|
11146
11209
|
gauge: PlotlySetup.setupGauge,
|
|
11147
11210
|
bullet: PlotlySetup.setupGauge,
|
|
11211
|
+
radar: PlotlySetup.setupRadar,
|
|
11148
11212
|
};
|
|
11149
11213
|
PlotlySetup.getTruncatedLabel = function (label, labelTruncateLength) {
|
|
11150
11214
|
var truncateSymbols = "...";
|
|
@@ -11183,8 +11247,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
11183
11247
|
|
|
11184
11248
|
var RankingModel = /** @class */ (function (_super) {
|
|
11185
11249
|
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(RankingModel, _super);
|
|
11186
|
-
function RankingModel() {
|
|
11187
|
-
return _super
|
|
11250
|
+
function RankingModel(question, data, options, name) {
|
|
11251
|
+
return _super.call(this, question, data, options, name || "ranking") || this;
|
|
11188
11252
|
}
|
|
11189
11253
|
RankingModel.prototype.getQuestionResults = function () {
|
|
11190
11254
|
var name = this.question.name;
|
|
@@ -12881,7 +12945,7 @@ var VisualizationManager = /** @class */ (function () {
|
|
|
12881
12945
|
if (constructor) {
|
|
12882
12946
|
var visualizers = VisualizationManager.vizualizers[qType];
|
|
12883
12947
|
if (!!visualizers) {
|
|
12884
|
-
var vDescr = visualizers.filter(function (v) { return v.ctor === constructor; })[0];
|
|
12948
|
+
var vDescr = visualizers.filter(function (v) { return v.ctor === constructor || v.ctor.isPrototypeOf(constructor); })[0];
|
|
12885
12949
|
if (!!vDescr) {
|
|
12886
12950
|
var index = visualizers.indexOf(vDescr);
|
|
12887
12951
|
if (index !== -1) {
|
|
@@ -12998,12 +13062,12 @@ var VisualizationMatrixDropdown = /** @class */ (function (_super) {
|
|
|
12998
13062
|
_this._childOptions.transposeData = true;
|
|
12999
13063
|
_this._childOptions.seriesValues = question.rows.map(function (row) { return row.value; });
|
|
13000
13064
|
_this._childOptions.seriesLabels = question.rows.map(function (row) { return row.text; });
|
|
13001
|
-
var innerQuestions = _this.getQuestions();
|
|
13002
13065
|
if (_this.canGroupColumns) {
|
|
13003
13066
|
var creators = _visualizationManager__WEBPACK_IMPORTED_MODULE_2__.VisualizationManager.getVisualizersByType("matrixdropdown-grouped");
|
|
13004
13067
|
_this._matrixDropdownVisualizer = new creators[0](_this.question, [], _this._childOptions);
|
|
13005
13068
|
}
|
|
13006
13069
|
else {
|
|
13070
|
+
var innerQuestions = _this.getQuestions();
|
|
13007
13071
|
_this._matrixDropdownVisualizer = new _visualizationPanel__WEBPACK_IMPORTED_MODULE_3__.VisualizationPanel(innerQuestions, [], _this._childOptions);
|
|
13008
13072
|
}
|
|
13009
13073
|
_this._matrixDropdownVisualizer.onAfterRender.add(_this.onPanelAfterRenderCallback);
|
|
@@ -13014,7 +13078,9 @@ var VisualizationMatrixDropdown = /** @class */ (function (_super) {
|
|
|
13014
13078
|
get: function () {
|
|
13015
13079
|
var _this = this;
|
|
13016
13080
|
var innerQuestions = this.getQuestions();
|
|
13017
|
-
var canGroupColumns = this._childOptions.seriesValues.length == 1 && innerQuestions.every(function (innerQuestion) {
|
|
13081
|
+
var canGroupColumns = this._childOptions.seriesValues.length == 1 && innerQuestions.every(function (innerQuestion) {
|
|
13082
|
+
return innerQuestion.getType() !== "boolean" && isChoicesArraysEqual(innerQuestion.choices, _this.question.choices);
|
|
13083
|
+
});
|
|
13018
13084
|
return canGroupColumns;
|
|
13019
13085
|
},
|
|
13020
13086
|
enumerable: false,
|