@dhis2/analytics 26.8.6 → 26.9.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/build/cjs/__demo__/SingleValue.stories.js +706 -0
- package/build/cjs/components/PivotTable/PivotTableValueCell.js +6 -2
- package/build/cjs/components/PivotTable/styles/PivotTable.style.js +2 -2
- package/build/cjs/locales/en/translations.json +2 -0
- package/build/cjs/locales/lo/translations.json +16 -12
- package/build/cjs/modules/pivotTable/PivotTableEngine.js +59 -24
- package/build/cjs/modules/pivotTable/pivotTableConstants.js +6 -2
- package/build/cjs/modules/valueTypes.js +4 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/default.js +26 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/index.js +18 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/singleValue.js +19 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/index.js +36 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueBackgroundColor.js +12 -0
- package/build/cjs/visualizations/config/adapters/{dhis_dhis/value/index.js → dhis_highcharts/customSVGOptions/singleValue/getSingleValueFormattedValue.js} +8 -6
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueLegendColor.js +11 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueSubtext.js +11 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTextColor.js +20 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTitleColor.js +26 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/index.js +31 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/index.js +24 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js +18 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/addIconElement.js +34 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/checkIfFitsWithinContainer.js +19 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeLayoutRect.js +39 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeSpacingTop.js +21 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/constants.js +11 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/getAvailableSpace.js +14 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/index.js +48 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/positionElements.js +46 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/styles.js +109 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/exporting.js +30 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +33 -23
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/lang.js +17 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/index.js +5 -1
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/__tests__/singleValue.spec.js +62 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +56 -22
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/singleValue.js +27 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js +44 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/index.js +50 -22
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/singleValue.js +31 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/type.js +2 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +4 -5
- package/build/cjs/visualizations/config/adapters/index.js +2 -4
- package/build/cjs/visualizations/config/generators/highcharts/index.js +8 -0
- package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/index.js +13 -0
- package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/nonASCIIFont.js +17 -0
- package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/textShadow.js +289 -0
- package/build/cjs/visualizations/config/generators/index.js +2 -4
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/index.js +3 -0
- package/build/cjs/visualizations/store/adapters/dhis_highcharts/singleValue.js +10 -0
- package/build/cjs/visualizations/store/adapters/index.js +2 -4
- package/build/cjs/visualizations/util/shouldUseContrastColor.js +24 -0
- package/build/es/__demo__/SingleValue.stories.js +702 -0
- package/build/es/components/PivotTable/PivotTableValueCell.js +6 -2
- package/build/es/components/PivotTable/styles/PivotTable.style.js +2 -2
- package/build/es/locales/en/translations.json +2 -0
- package/build/es/locales/lo/translations.json +16 -12
- package/build/es/modules/pivotTable/PivotTableEngine.js +61 -26
- package/build/es/modules/pivotTable/pivotTableConstants.js +4 -1
- package/build/es/modules/valueTypes.js +2 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart/default.js +19 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart/index.js +11 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart/singleValue.js +12 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/index.js +29 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueBackgroundColor.js +6 -0
- package/build/es/visualizations/config/adapters/{dhis_dhis/value/index.js → dhis_highcharts/customSVGOptions/singleValue/getSingleValueFormattedValue.js} +4 -4
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueLegendColor.js +5 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueSubtext.js +5 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTextColor.js +14 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTitleColor.js +20 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/index.js +25 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/index.js +16 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js +11 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/addIconElement.js +28 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/checkIfFitsWithinContainer.js +13 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeLayoutRect.js +33 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeSpacingTop.js +15 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/constants.js +4 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/getAvailableSpace.js +8 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/index.js +42 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/positionElements.js +40 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/styles.js +101 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/exporting.js +23 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/index.js +23 -13
- package/build/es/visualizations/config/adapters/dhis_highcharts/lang.js +11 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/series/index.js +6 -2
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/__tests__/singleValue.spec.js +59 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +56 -24
- package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/singleValue.js +14 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js +42 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/index.js +52 -24
- package/build/es/visualizations/config/adapters/dhis_highcharts/title/singleValue.js +18 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/type.js +3 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +2 -1
- package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +5 -6
- package/build/es/visualizations/config/adapters/index.js +1 -3
- package/build/es/visualizations/config/generators/highcharts/index.js +8 -0
- package/build/es/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/index.js +6 -0
- package/build/es/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/nonASCIIFont.js +11 -0
- package/build/es/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/textShadow.js +283 -0
- package/build/es/visualizations/config/generators/index.js +1 -3
- package/build/es/visualizations/store/adapters/dhis_highcharts/index.js +4 -1
- package/build/es/visualizations/store/adapters/dhis_highcharts/singleValue.js +4 -0
- package/build/es/visualizations/store/adapters/index.js +1 -3
- package/build/es/visualizations/util/shouldUseContrastColor.js +17 -0
- package/package.json +1 -2
- package/build/cjs/visualizations/config/adapters/dhis_dhis/index.js +0 -39
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -49
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -15
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -34
- package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -11
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -39
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -17
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/index.js +0 -31
- package/build/cjs/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -18
- package/build/cjs/visualizations/config/adapters/dhis_dhis/type.js +0 -19
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart.js +0 -39
- package/build/cjs/visualizations/config/generators/dhis/index.js +0 -28
- package/build/cjs/visualizations/config/generators/dhis/singleValue.js +0 -359
- package/build/cjs/visualizations/store/adapters/dhis_dhis/index.js +0 -83
- package/build/cjs/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -10
- package/build/es/visualizations/config/adapters/dhis_dhis/index.js +0 -30
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -46
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -12
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -27
- package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -4
- package/build/es/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -36
- package/build/es/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -14
- package/build/es/visualizations/config/adapters/dhis_dhis/title/index.js +0 -24
- package/build/es/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -11
- package/build/es/visualizations/config/adapters/dhis_dhis/type.js +0 -13
- package/build/es/visualizations/config/adapters/dhis_highcharts/chart.js +0 -32
- package/build/es/visualizations/config/generators/dhis/index.js +0 -21
- package/build/es/visualizations/config/generators/dhis/singleValue.js +0 -353
- package/build/es/visualizations/store/adapters/dhis_dhis/index.js +0 -76
- package/build/es/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -4
|
@@ -10,6 +10,9 @@ var _visTypes = require("../../../../../modules/visTypes.js");
|
|
|
10
10
|
var _getFilterText = _interopRequireDefault(require("../../../../util/getFilterText.js"));
|
|
11
11
|
var _getTextAlignOption = require("../getTextAlignOption.js");
|
|
12
12
|
var _yearOverYear = _interopRequireDefault(require("../title/yearOverYear.js"));
|
|
13
|
+
var _singleValue = _interopRequireWildcard(require("./singleValue.js"));
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
17
|
const DASHBOARD_SUBTITLE = {
|
|
15
18
|
style: {
|
|
@@ -23,18 +26,33 @@ const DASHBOARD_SUBTITLE = {
|
|
|
23
26
|
}
|
|
24
27
|
};
|
|
25
28
|
function getDefault(layout, dashboard, filterTitle) {
|
|
26
|
-
return
|
|
27
|
-
text: dashboard || (0, _isString.default)(layout.title) ? filterTitle : undefined
|
|
28
|
-
};
|
|
29
|
+
return dashboard || (0, _isString.default)(layout.title) ? filterTitle : undefined;
|
|
29
30
|
}
|
|
30
|
-
function _default(series, layout, metaData,
|
|
31
|
-
const fontStyle = (0, _fontStyle.mergeFontStyleWithDefault)(layout.fontStyle && layout.fontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE], _fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE);
|
|
32
|
-
let subtitle = {
|
|
33
|
-
text: undefined
|
|
34
|
-
};
|
|
31
|
+
function _default(series, layout, metaData, extraOptions) {
|
|
35
32
|
if (layout.hideSubtitle) {
|
|
36
33
|
return null;
|
|
37
34
|
}
|
|
35
|
+
const {
|
|
36
|
+
dashboard,
|
|
37
|
+
legendSets
|
|
38
|
+
} = extraOptions;
|
|
39
|
+
const legendOptions = layout.legend;
|
|
40
|
+
const fontStyle = (0, _fontStyle.mergeFontStyleWithDefault)(layout.fontStyle && layout.fontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE], _fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE);
|
|
41
|
+
const subtitle = Object.assign({
|
|
42
|
+
text: undefined
|
|
43
|
+
}, dashboard ? DASHBOARD_SUBTITLE : {
|
|
44
|
+
align: (0, _getTextAlignOption.getTextAlignOption)(fontStyle[_fontStyle.FONT_STYLE_OPTION_TEXT_ALIGN], _fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE, (0, _visTypes.isVerticalType)(layout.type)),
|
|
45
|
+
style: {
|
|
46
|
+
// DHIS2-578: dynamically truncate subtitle when it's taking more than 1 line
|
|
47
|
+
color: undefined,
|
|
48
|
+
fontSize: `${fontStyle[_fontStyle.FONT_STYLE_OPTION_FONT_SIZE]}px`,
|
|
49
|
+
fontWeight: fontStyle[_fontStyle.FONT_STYLE_OPTION_BOLD] ? _fontStyle.FONT_STYLE_OPTION_BOLD : 'normal',
|
|
50
|
+
fontStyle: fontStyle[_fontStyle.FONT_STYLE_OPTION_ITALIC] ? _fontStyle.FONT_STYLE_OPTION_ITALIC : 'normal',
|
|
51
|
+
whiteSpace: 'nowrap',
|
|
52
|
+
overflow: 'hidden',
|
|
53
|
+
textOverflow: 'ellipsis'
|
|
54
|
+
}
|
|
55
|
+
});
|
|
38
56
|
|
|
39
57
|
// DHIS2-578: allow for optional custom subtitle
|
|
40
58
|
const customSubtitle = layout.subtitle && layout.displaySubtitle || layout.subtitle;
|
|
@@ -43,6 +61,9 @@ function _default(series, layout, metaData, dashboard) {
|
|
|
43
61
|
} else {
|
|
44
62
|
const filterTitle = (0, _getFilterText.default)(layout.filters, metaData);
|
|
45
63
|
switch (layout.type) {
|
|
64
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
65
|
+
subtitle.text = (0, _singleValue.default)(layout, metaData);
|
|
66
|
+
break;
|
|
46
67
|
case _visTypes.VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
47
68
|
case _visTypes.VIS_TYPE_YEAR_OVER_YEAR_COLUMN:
|
|
48
69
|
subtitle.text = (0, _yearOverYear.default)(layout, metaData, Boolean(!dashboard));
|
|
@@ -51,20 +72,33 @@ function _default(series, layout, metaData, dashboard) {
|
|
|
51
72
|
subtitle.text = filterTitle;
|
|
52
73
|
break;
|
|
53
74
|
default:
|
|
54
|
-
subtitle = getDefault(layout, dashboard, filterTitle);
|
|
75
|
+
subtitle.text = getDefault(layout, dashboard, filterTitle);
|
|
55
76
|
}
|
|
56
77
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
switch (layout.type) {
|
|
79
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
80
|
+
{
|
|
81
|
+
var _defaultFontStyle$FON, _layout$fontStyle, _layout$fontStyle$FON;
|
|
82
|
+
const defaultColor = _fontStyle.defaultFontStyle === null || _fontStyle.defaultFontStyle === void 0 ? void 0 : (_defaultFontStyle$FON = _fontStyle.defaultFontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE]) === null || _defaultFontStyle$FON === void 0 ? void 0 : _defaultFontStyle$FON[_fontStyle.FONT_STYLE_OPTION_TEXT_COLOR];
|
|
83
|
+
const customColor = layout === null || layout === void 0 ? void 0 : (_layout$fontStyle = layout.fontStyle) === null || _layout$fontStyle === void 0 ? void 0 : (_layout$fontStyle$FON = _layout$fontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_SUBTITLE]) === null || _layout$fontStyle$FON === void 0 ? void 0 : _layout$fontStyle$FON[_fontStyle.FONT_STYLE_OPTION_TEXT_COLOR];
|
|
84
|
+
subtitle.style.color = (0, _singleValue.getSingleValueSubtitleColor)(customColor, defaultColor, series[0], legendOptions, legendSets);
|
|
85
|
+
if (dashboard) {
|
|
86
|
+
// Single value subtitle text should be multiline
|
|
87
|
+
/* TODO: The default color of the subtitle now is #4a5768 but the
|
|
88
|
+
* original implementation used #666, which is a lighter grey.
|
|
89
|
+
* If we want to keep this color, changes are needed here. */
|
|
90
|
+
Object.assign(subtitle.style, {
|
|
91
|
+
wordWrap: 'normal',
|
|
92
|
+
whiteSpace: 'normal',
|
|
93
|
+
overflow: 'visible',
|
|
94
|
+
textOverflow: 'initial'
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
default:
|
|
100
|
+
subtitle.style.color = fontStyle[_fontStyle.FONT_STYLE_OPTION_TEXT_COLOR];
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
return subtitle;
|
|
70
104
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getSingleValueSubtitle;
|
|
7
|
+
Object.defineProperty(exports, "getSingleValueSubtitleColor", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _getSingleValueTitleColor.getSingleValueTitleColor;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _getFilterText = _interopRequireDefault(require("../../../../util/getFilterText.js"));
|
|
14
|
+
var _getSingleValueTitleColor = require("../customSVGOptions/singleValue/getSingleValueTitleColor.js");
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
function getSingleValueSubtitle(layout, metaData) {
|
|
17
|
+
if (layout.hideSubtitle || 1 === 0) {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
if (typeof layout.subtitle === 'string' && layout.subtitle.length) {
|
|
21
|
+
return layout.subtitle;
|
|
22
|
+
}
|
|
23
|
+
if (layout.filters) {
|
|
24
|
+
return (0, _getFilterText.default)(layout.filters, metaData);
|
|
25
|
+
}
|
|
26
|
+
return '';
|
|
27
|
+
}
|
package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _singleValue = require("../singleValue.js");
|
|
4
|
+
jest.mock('../../../../../util/getFilterText', () => () => 'The filter text');
|
|
5
|
+
describe('getSingleValueTitle', () => {
|
|
6
|
+
it('returns empty title when flag hideTitle exists', () => {
|
|
7
|
+
expect((0, _singleValue.getSingleValueTitleText)({
|
|
8
|
+
hideTitle: true
|
|
9
|
+
})).toEqual('');
|
|
10
|
+
});
|
|
11
|
+
it('returns the title provided in the layout', () => {
|
|
12
|
+
const title = 'The title was already set';
|
|
13
|
+
expect((0, _singleValue.getSingleValueTitleText)({
|
|
14
|
+
title
|
|
15
|
+
})).toEqual(title);
|
|
16
|
+
});
|
|
17
|
+
it('returns null when layout does not have columns', () => {
|
|
18
|
+
expect((0, _singleValue.getSingleValueTitleText)({})).toEqual('');
|
|
19
|
+
});
|
|
20
|
+
it('returns the filter text based on column items', () => {
|
|
21
|
+
expect((0, _singleValue.getSingleValueTitleText)({
|
|
22
|
+
columns: [{
|
|
23
|
+
items: [{}]
|
|
24
|
+
}]
|
|
25
|
+
})).toEqual('The filter text');
|
|
26
|
+
});
|
|
27
|
+
describe('not dashboard', () => {
|
|
28
|
+
it('returns filter text as title', () => {
|
|
29
|
+
expect((0, _singleValue.getSingleValueTitleText)({
|
|
30
|
+
columns: [{
|
|
31
|
+
items: [{}]
|
|
32
|
+
}],
|
|
33
|
+
filters: []
|
|
34
|
+
}, {}, false)).toEqual('The filter text');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('dashboard', () => {
|
|
38
|
+
it('returns empty string', () => {
|
|
39
|
+
expect((0, _singleValue.getSingleValueTitleText)({
|
|
40
|
+
filters: {}
|
|
41
|
+
}, {}, true)).toEqual('');
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
});
|
|
@@ -10,6 +10,7 @@ var _visTypes = require("../../../../../modules/visTypes.js");
|
|
|
10
10
|
var _getFilterText = _interopRequireDefault(require("../../../../util/getFilterText.js"));
|
|
11
11
|
var _getTextAlignOption = require("../getTextAlignOption.js");
|
|
12
12
|
var _scatter = _interopRequireDefault(require("./scatter.js"));
|
|
13
|
+
var _singleValue = require("./singleValue.js");
|
|
13
14
|
var _yearOverYear = _interopRequireDefault(require("./yearOverYear.js"));
|
|
14
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
16
|
const DASHBOARD_TITLE_STYLE = {
|
|
@@ -30,19 +31,41 @@ function getDefault(layout, metaData, dashboard) {
|
|
|
30
31
|
}
|
|
31
32
|
return null;
|
|
32
33
|
}
|
|
33
|
-
function _default(layout, metaData,
|
|
34
|
-
const fontStyle = (0, _fontStyle.mergeFontStyleWithDefault)(layout.fontStyle && layout.fontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_TITLE], _fontStyle.FONT_STYLE_VISUALIZATION_TITLE);
|
|
35
|
-
const title = {
|
|
36
|
-
text: undefined
|
|
37
|
-
};
|
|
34
|
+
function _default(layout, metaData, extraOptions, series) {
|
|
38
35
|
if (layout.hideTitle) {
|
|
39
|
-
return
|
|
36
|
+
return {
|
|
37
|
+
text: undefined
|
|
38
|
+
};
|
|
40
39
|
}
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
const {
|
|
41
|
+
dashboard,
|
|
42
|
+
legendSets
|
|
43
|
+
} = extraOptions;
|
|
44
|
+
const legendOptions = layout.legend;
|
|
45
|
+
const fontStyle = (0, _fontStyle.mergeFontStyleWithDefault)(layout.fontStyle && layout.fontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_TITLE], _fontStyle.FONT_STYLE_VISUALIZATION_TITLE);
|
|
46
|
+
const title = Object.assign({
|
|
47
|
+
text: undefined
|
|
48
|
+
}, dashboard ? DASHBOARD_TITLE_STYLE : {
|
|
49
|
+
margin: 30,
|
|
50
|
+
align: (0, _getTextAlignOption.getTextAlignOption)(fontStyle[_fontStyle.FONT_STYLE_OPTION_TEXT_ALIGN], _fontStyle.FONT_STYLE_VISUALIZATION_TITLE, (0, _visTypes.isVerticalType)(layout.type)),
|
|
51
|
+
style: {
|
|
52
|
+
color: undefined,
|
|
53
|
+
fontSize: `${fontStyle[_fontStyle.FONT_STYLE_OPTION_FONT_SIZE]}px`,
|
|
54
|
+
fontWeight: fontStyle[_fontStyle.FONT_STYLE_OPTION_BOLD] ? _fontStyle.FONT_STYLE_OPTION_BOLD : 'normal',
|
|
55
|
+
fontStyle: fontStyle[_fontStyle.FONT_STYLE_OPTION_ITALIC] ? _fontStyle.FONT_STYLE_OPTION_ITALIC : 'normal',
|
|
56
|
+
whiteSpace: 'nowrap',
|
|
57
|
+
overflow: 'hidden',
|
|
58
|
+
textOverflow: 'ellipsis'
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
const customTitleText = layout.title && layout.displayTitle || layout.title;
|
|
62
|
+
if ((0, _isString.default)(customTitleText) && customTitleText.length) {
|
|
63
|
+
title.text = customTitleText;
|
|
44
64
|
} else {
|
|
45
65
|
switch (layout.type) {
|
|
66
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
67
|
+
title.text = (0, _singleValue.getSingleValueTitleText)(layout, metaData, dashboard);
|
|
68
|
+
break;
|
|
46
69
|
case _visTypes.VIS_TYPE_GAUGE:
|
|
47
70
|
case _visTypes.VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
48
71
|
case _visTypes.VIS_TYPE_YEAR_OVER_YEAR_COLUMN:
|
|
@@ -56,17 +79,22 @@ function _default(layout, metaData, dashboard) {
|
|
|
56
79
|
break;
|
|
57
80
|
}
|
|
58
81
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
82
|
+
switch (layout.type) {
|
|
83
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
84
|
+
{
|
|
85
|
+
var _defaultFontStyle$FON, _layout$fontStyle, _layout$fontStyle$FON;
|
|
86
|
+
const defaultColor = _fontStyle.defaultFontStyle === null || _fontStyle.defaultFontStyle === void 0 ? void 0 : (_defaultFontStyle$FON = _fontStyle.defaultFontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_TITLE]) === null || _defaultFontStyle$FON === void 0 ? void 0 : _defaultFontStyle$FON[_fontStyle.FONT_STYLE_OPTION_TEXT_COLOR];
|
|
87
|
+
const customColor = layout === null || layout === void 0 ? void 0 : (_layout$fontStyle = layout.fontStyle) === null || _layout$fontStyle === void 0 ? void 0 : (_layout$fontStyle$FON = _layout$fontStyle[_fontStyle.FONT_STYLE_VISUALIZATION_TITLE]) === null || _layout$fontStyle$FON === void 0 ? void 0 : _layout$fontStyle$FON[_fontStyle.FONT_STYLE_OPTION_TEXT_COLOR];
|
|
88
|
+
title.style.color = (0, _singleValue.getSingleValueTitleColor)(customColor, defaultColor, series[0], legendOptions, legendSets);
|
|
89
|
+
if (dashboard) {
|
|
90
|
+
// TODO: is this always what we want?
|
|
91
|
+
title.style.fontWeight = 'normal';
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
default:
|
|
96
|
+
title.style.color = fontStyle[_fontStyle.FONT_STYLE_OPTION_TEXT_COLOR];
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
return title;
|
|
72
100
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "getSingleValueTitleColor", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _getSingleValueTitleColor.getSingleValueTitleColor;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
exports.getSingleValueTitleText = getSingleValueTitleText;
|
|
13
|
+
var _getFilterText = _interopRequireDefault(require("../../../../util/getFilterText.js"));
|
|
14
|
+
var _getSingleValueTitleColor = require("../customSVGOptions/singleValue/getSingleValueTitleColor.js");
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
function getSingleValueTitleText(layout, metaData) {
|
|
17
|
+
if (layout.hideTitle) {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
if (typeof layout.title === 'string' && layout.title.length) {
|
|
21
|
+
return layout.title;
|
|
22
|
+
}
|
|
23
|
+
if (layout.columns) {
|
|
24
|
+
const firstItem = layout.columns[0].items[0];
|
|
25
|
+
const column = Object.assign({}, layout.columns[0], {
|
|
26
|
+
items: [firstItem]
|
|
27
|
+
});
|
|
28
|
+
return (0, _getFilterText.default)([column], metaData);
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
@@ -54,6 +54,7 @@ function _default(store, layout, extraOptions, series) {
|
|
|
54
54
|
switch (layout.type) {
|
|
55
55
|
case _visTypes.VIS_TYPE_PIE:
|
|
56
56
|
case _visTypes.VIS_TYPE_GAUGE:
|
|
57
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
57
58
|
xAxis = noAxis();
|
|
58
59
|
break;
|
|
59
60
|
case _visTypes.VIS_TYPE_YEAR_OVER_YEAR_LINE:
|
|
@@ -107,13 +107,12 @@ function getDefault(layout, series, extraOptions) {
|
|
|
107
107
|
return axes;
|
|
108
108
|
}
|
|
109
109
|
function _default(layout, series, extraOptions) {
|
|
110
|
-
let yAxis;
|
|
111
110
|
switch (layout.type) {
|
|
111
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
112
|
+
return null;
|
|
112
113
|
case _visTypes.VIS_TYPE_GAUGE:
|
|
113
|
-
|
|
114
|
-
break;
|
|
114
|
+
return (0, _gauge.default)(layout, series, extraOptions.legendSets[0]);
|
|
115
115
|
default:
|
|
116
|
-
|
|
116
|
+
return getDefault(layout, series, extraOptions);
|
|
117
117
|
}
|
|
118
|
-
return yAxis;
|
|
119
118
|
}
|
|
@@ -4,11 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _index = _interopRequireDefault(require("./
|
|
8
|
-
var _index2 = _interopRequireDefault(require("./dhis_highcharts/index.js"));
|
|
7
|
+
var _index = _interopRequireDefault(require("./dhis_highcharts/index.js"));
|
|
9
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
9
|
var _default = {
|
|
11
|
-
dhis_highcharts:
|
|
12
|
-
dhis_dhis: _index.default
|
|
10
|
+
dhis_highcharts: _index.default
|
|
13
11
|
};
|
|
14
12
|
exports.default = _default;
|
|
@@ -9,16 +9,24 @@ var _highchartsMore = _interopRequireDefault(require("highcharts/highcharts-more
|
|
|
9
9
|
var _boost = _interopRequireDefault(require("highcharts/modules/boost"));
|
|
10
10
|
var _exporting = _interopRequireDefault(require("highcharts/modules/exporting"));
|
|
11
11
|
var _noDataToDisplay = _interopRequireDefault(require("highcharts/modules/no-data-to-display"));
|
|
12
|
+
var _offlineExporting = _interopRequireDefault(require("highcharts/modules/offline-exporting"));
|
|
12
13
|
var _patternFill = _interopRequireDefault(require("highcharts/modules/pattern-fill"));
|
|
13
14
|
var _solidGauge = _interopRequireDefault(require("highcharts/modules/solid-gauge"));
|
|
15
|
+
var _index = _interopRequireDefault(require("./pdfExportBugFixPlugin/index.js"));
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
// apply
|
|
16
18
|
(0, _highchartsMore.default)(_highcharts.default);
|
|
17
19
|
(0, _solidGauge.default)(_highcharts.default);
|
|
18
20
|
(0, _noDataToDisplay.default)(_highcharts.default);
|
|
19
21
|
(0, _exporting.default)(_highcharts.default);
|
|
22
|
+
(0, _offlineExporting.default)(_highcharts.default);
|
|
20
23
|
(0, _patternFill.default)(_highcharts.default);
|
|
21
24
|
(0, _boost.default)(_highcharts.default);
|
|
25
|
+
(0, _index.default)(_highcharts.default);
|
|
26
|
+
|
|
27
|
+
/* Whitelist some additional SVG attributes here. Without this,
|
|
28
|
+
* the PDF export for the SingleValue visualization breaks. */
|
|
29
|
+
_highcharts.default.AST.allowedAttributes.push('fill-rule', 'clip-rule');
|
|
22
30
|
function drawLegendSymbolWrap() {
|
|
23
31
|
const pick = _highcharts.default.pick;
|
|
24
32
|
_highcharts.default.wrap(_highcharts.default.seriesTypes.column.prototype, 'drawLegendSymbol', function (proceed, legend, item) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = _default;
|
|
7
|
+
var _nonASCIIFont = _interopRequireDefault(require("./nonASCIIFont.js"));
|
|
8
|
+
var _textShadow = _interopRequireDefault(require("./textShadow.js"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function _default(H) {
|
|
11
|
+
(0, _textShadow.default)(H);
|
|
12
|
+
(0, _nonASCIIFont.default)(H);
|
|
13
|
+
}
|
package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/nonASCIIFont.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = _default;
|
|
7
|
+
/* This is a workaround for https://github.com/highcharts/highcharts/issues/22008
|
|
8
|
+
* We add some transparent text in a non-ASCII script to the chart to prevent
|
|
9
|
+
* the chart from being exported in a serif font */
|
|
10
|
+
|
|
11
|
+
function _default(H) {
|
|
12
|
+
H.addEvent(H.Chart, 'load', function () {
|
|
13
|
+
this.renderer.text('모', 20, 20).attr({
|
|
14
|
+
opacity: 0
|
|
15
|
+
}).add();
|
|
16
|
+
});
|
|
17
|
+
}
|