@dhis2/analytics 26.8.7 → 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/locales/lo/translations.json +16 -12
- 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/locales/lo/translations.json +16 -12
- 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 -1
- 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
|
@@ -18,11 +18,13 @@
|
|
|
18
18
|
"About this map": "ກ່ຽວກັບແຜນທີ່",
|
|
19
19
|
"About this line list": "ກ່ຽວກັບບັນຊີລາຍຊື່",
|
|
20
20
|
"About this visualization": "ກ່ຽວກັບການສ້າງພາບຂໍ້ມູນ",
|
|
21
|
+
"About this event chart": "ກ່ຽວກັບເຫດການແຜນຜັງ",
|
|
22
|
+
"About this event report": "ກ່ຽວກັບບົດລາຍງານເຫດການຕ່າງໆ",
|
|
21
23
|
"This app could not retrieve required data.": "ແອັບນີ້ບໍ່ສາມາດດຶງຂໍ້ມູນທີ່ຕ້ອງການໄດ້",
|
|
22
24
|
"Network error": "ຂໍ້ຜິດພາດທາງເຄື່ອຂ່າຍ",
|
|
23
25
|
"Data / Edit calculation": "ຂໍ້ມູນ / ແກ້ໄຂການຄິດໄລ່",
|
|
24
26
|
"Data / New calculation": "ຂໍ້ມູນ / ຄິດໄລ່ໃໝ່",
|
|
25
|
-
"Remove item": "
|
|
27
|
+
"Remove item": "ເອົາລາຍການອອກ",
|
|
26
28
|
"Check formula": "ກວດເບິ່ງສູດ",
|
|
27
29
|
"Calculation name": "ຊື່ການຄິດໄລ່",
|
|
28
30
|
"Shown in table headers and chart axes/legends": "ສະແດງຢູ່ເທິງຕາຕະລາງ ແລະ ແກນແຜນວາດ",
|
|
@@ -132,17 +134,6 @@
|
|
|
132
134
|
"Manage sharing": "ຈັດການການເຜີຍແຜ່",
|
|
133
135
|
"Could not update interpretation": "ບໍ່ສາມາດອັບເດດຂໍ້ຄວາມ",
|
|
134
136
|
"Enter interpretation text": "ປ້ອນຂໍ້ຄວາມ",
|
|
135
|
-
"Bold text": "ຕົວອັກສອນເຂັ້ມ",
|
|
136
|
-
"Italic text": "ຕົວອັກສອນສະຫຼ່ຽງ",
|
|
137
|
-
"Link to a URL": "ເຊື່ອມຕໍ່ກັບ URL",
|
|
138
|
-
"Mention a user": "ກ່າວເຖິງຜູ້ໃຊ້",
|
|
139
|
-
"Add emoji": "ເພີ່ມ emoji",
|
|
140
|
-
"Preview": "ເບິ່ງຕົວຢ່າງ",
|
|
141
|
-
"Back to write mode": "ກັບໄປທີ່ໂໝດຂຽນ",
|
|
142
|
-
"Too many results. Try refining the search.": "ຜົນໄດ້ຮັບຫຼາຍເກີນໄປ. ປັບປຸງການຄົ້ນຫາ.",
|
|
143
|
-
"Search for a user": "ຄົ້ນຫາຜູ້ໃຊ້",
|
|
144
|
-
"Searching for \"{{- searchText}}\"": "ຄົ້ນຫາ \"{{- searchText}}\"",
|
|
145
|
-
"No results found": "ບໍ່ພົບຜົນການຊອກຫາ",
|
|
146
137
|
"Not available offline": "ບໍ່ສາມາດໃຊ້ໄດ້ອອບລາຍ",
|
|
147
138
|
"Created by": "ສ້າງໂດຍ",
|
|
148
139
|
"Anyone": "ທຸກຄົນ",
|
|
@@ -271,6 +262,14 @@
|
|
|
271
262
|
"Six-months": "6 ເດືອນ",
|
|
272
263
|
"Financial Years": "ສົກປີງົບປະມານ",
|
|
273
264
|
"Years": "ປີ",
|
|
265
|
+
"Value: {{value}}": "",
|
|
266
|
+
"Bold text": "ຕົວອັກສອນເຂັ້ມ",
|
|
267
|
+
"Italic text": "ຕົວອັກສອນສະຫຼ່ຽງ",
|
|
268
|
+
"Link to a URL": "ເຊື່ອມຕໍ່ກັບ URL",
|
|
269
|
+
"Mention a user": "ກ່າວເຖິງຜູ້ໃຊ້",
|
|
270
|
+
"Add emoji": "ເພີ່ມ emoji",
|
|
271
|
+
"Preview": "ເບິ່ງຕົວຢ່າງ",
|
|
272
|
+
"Back to write mode": "ກັບໄປທີ່ໂໝດຂຽນ",
|
|
274
273
|
"Interpretations and details": "ຂໍ້ມູນ ແລະ ລາຍລະອຽດ",
|
|
275
274
|
"Translating to": "ແປເປັນ",
|
|
276
275
|
"Choose a locale": "ເລືອກສະຖານທີ່ເກີດເຫດ",
|
|
@@ -281,6 +280,10 @@
|
|
|
281
280
|
"Cannot save while offline": "ບໍ່ສາມາດບັນທຶກແບບອອບລາຍ",
|
|
282
281
|
"Could not load translations": "ບໍ່ສາມາດໂຫຼດການແປ",
|
|
283
282
|
"Retry": "ລອງໃໝ່",
|
|
283
|
+
"Too many results. Try refining the search.": "ຜົນໄດ້ຮັບຫຼາຍເກີນໄປ. ປັບປຸງການຄົ້ນຫາ.",
|
|
284
|
+
"Search for a user": "ຄົ້ນຫາຜູ້ໃຊ້",
|
|
285
|
+
"Searching for \"{{- searchText}}\"": "ຄົ້ນຫາ \"{{- searchText}}\"",
|
|
286
|
+
"No results found": "ບໍ່ພົບຜົນການຊອກຫາ",
|
|
284
287
|
"Series": "ແທ່ງ",
|
|
285
288
|
"Category": "ລວງນອນ",
|
|
286
289
|
"Filter": "ຕົວກອງ",
|
|
@@ -350,6 +353,7 @@
|
|
|
350
353
|
"{{thresholdFactor}} × Modified Z-score high": "{{thresholdFactor}} x ແກ້ໄຂຄະແນນ z ສູງ",
|
|
351
354
|
"{{thresholdFactor}} × Z-score low": "{{thresholdFactor}} x ຄະແນນ z ຕ່ຳ",
|
|
352
355
|
"{{thresholdFactor}} × Z-score high": "{{thresholdFactor}} x ຄະແນນ z ສູງ",
|
|
356
|
+
"Not applicable": "",
|
|
353
357
|
"Data": "ຂໍ້ມູນ",
|
|
354
358
|
"Organisation unit": "ຫົວໜ່ວຍການຈັດຕັ້ງ",
|
|
355
359
|
"Assigned Categories": "ຈັດໝວດໝູ່",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getDefaultChart;
|
|
7
|
+
var _index = require("../events/index.js");
|
|
8
|
+
var _type = _interopRequireDefault(require("../type.js"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
const DEFAULT_CHART = {
|
|
11
|
+
spacingTop: 20,
|
|
12
|
+
style: {
|
|
13
|
+
fontFamily: 'Roboto,Helvetica Neue,Helvetica,Arial,sans-serif'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const DASHBOARD_CHART = {
|
|
17
|
+
spacingTop: 0,
|
|
18
|
+
spacingRight: 5,
|
|
19
|
+
spacingBottom: 2,
|
|
20
|
+
spacingLeft: 5
|
|
21
|
+
};
|
|
22
|
+
function getDefaultChart(layout, el, extraOptions) {
|
|
23
|
+
return Object.assign({}, (0, _type.default)(layout.type), {
|
|
24
|
+
renderTo: el || layout.el
|
|
25
|
+
}, DEFAULT_CHART, extraOptions.dashboard ? DASHBOARD_CHART : undefined, (0, _index.getEvents)(layout.type));
|
|
26
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getChart;
|
|
7
|
+
var _visTypes = require("../../../../../modules/visTypes.js");
|
|
8
|
+
var _default = _interopRequireDefault(require("./default.js"));
|
|
9
|
+
var _singleValue = _interopRequireDefault(require("./singleValue.js"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function getChart(layout, el, extraOptions, series) {
|
|
12
|
+
switch (layout.type) {
|
|
13
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
14
|
+
return (0, _singleValue.default)(layout, el, extraOptions, series);
|
|
15
|
+
default:
|
|
16
|
+
return (0, _default.default)(layout, el, extraOptions);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getSingleValueChart;
|
|
7
|
+
var _getSingleValueBackgroundColor = require("../customSVGOptions/singleValue/getSingleValueBackgroundColor.js");
|
|
8
|
+
var _default = _interopRequireDefault(require("./default.js"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function getSingleValueChart(layout, el, extraOptions, series) {
|
|
11
|
+
const chart = {
|
|
12
|
+
...(0, _default.default)(layout, el, extraOptions),
|
|
13
|
+
backgroundColor: (0, _getSingleValueBackgroundColor.getSingleValueBackgroundColor)(layout.legend, extraOptions.legendSets, series[0])
|
|
14
|
+
};
|
|
15
|
+
if (extraOptions.dashboard) {
|
|
16
|
+
chart.spacingTop = 7;
|
|
17
|
+
}
|
|
18
|
+
return chart;
|
|
19
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getCustomSVGOptions;
|
|
7
|
+
var _visTypes = require("../../../../../modules/visTypes.js");
|
|
8
|
+
var _index = _interopRequireDefault(require("./singleValue/index.js"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function getCustomSVGOptions(_ref) {
|
|
11
|
+
let {
|
|
12
|
+
extraConfig,
|
|
13
|
+
layout,
|
|
14
|
+
extraOptions,
|
|
15
|
+
metaData,
|
|
16
|
+
series
|
|
17
|
+
} = _ref;
|
|
18
|
+
const baseOptions = {
|
|
19
|
+
visualizationType: layout.type
|
|
20
|
+
};
|
|
21
|
+
switch (layout.type) {
|
|
22
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
23
|
+
return {
|
|
24
|
+
...baseOptions,
|
|
25
|
+
...(0, _index.default)({
|
|
26
|
+
extraConfig,
|
|
27
|
+
layout,
|
|
28
|
+
extraOptions,
|
|
29
|
+
metaData,
|
|
30
|
+
series
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
default:
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSingleValueBackgroundColor = getSingleValueBackgroundColor;
|
|
7
|
+
var _legends = require("../../../../../../modules/legends.js");
|
|
8
|
+
var _getSingleValueLegendColor = require("./getSingleValueLegendColor.js");
|
|
9
|
+
function getSingleValueBackgroundColor(legendOptions, legendSets, value) {
|
|
10
|
+
const legendColor = (0, _getSingleValueLegendColor.getSingleValueLegendColor)(legendOptions, legendSets, value);
|
|
11
|
+
return legendColor && legendOptions.style === _legends.LEGEND_DISPLAY_STYLE_FILL ? legendColor : 'transparent';
|
|
12
|
+
}
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
6
|
+
exports.INDICATOR_FACTOR_100 = void 0;
|
|
7
|
+
exports.getSingleValueFormattedValue = getSingleValueFormattedValue;
|
|
8
|
+
var _renderValue = require("../../../../../../modules/renderValue.js");
|
|
9
|
+
var _valueTypes = require("../../../../../../modules/valueTypes.js");
|
|
10
|
+
const INDICATOR_FACTOR_100 = 100;
|
|
11
|
+
exports.INDICATOR_FACTOR_100 = INDICATOR_FACTOR_100;
|
|
12
|
+
function getSingleValueFormattedValue(value, layout, metaData) {
|
|
11
13
|
const valueType = metaData.items[metaData.dimensions.dx[0]].valueType;
|
|
12
14
|
const indicatorType = metaData.items[metaData.dimensions.dx[0]].indicatorType;
|
|
13
15
|
let formattedValue = (0, _renderValue.renderValue)(value, valueType || _valueTypes.VALUE_TYPE_TEXT, {
|
|
@@ -17,7 +19,7 @@ function _default(value, layout, metaData) {
|
|
|
17
19
|
|
|
18
20
|
// only show the percentage symbol for per cent
|
|
19
21
|
// for other factors, show the full text under the value
|
|
20
|
-
if ((indicatorType === null || indicatorType === void 0 ? void 0 : indicatorType.factor) ===
|
|
22
|
+
if ((indicatorType === null || indicatorType === void 0 ? void 0 : indicatorType.factor) === INDICATOR_FACTOR_100) {
|
|
21
23
|
formattedValue += '%';
|
|
22
24
|
}
|
|
23
25
|
return formattedValue;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSingleValueLegendColor = getSingleValueLegendColor;
|
|
7
|
+
var _legends = require("../../../../../../modules/legends.js");
|
|
8
|
+
function getSingleValueLegendColor(legendOptions, legendSets, value) {
|
|
9
|
+
const legendSet = legendOptions && legendSets[0];
|
|
10
|
+
return legendSet ? (0, _legends.getColorByValueFromLegendSet)(legendSet, value) : undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSingleValueSubtext = getSingleValueSubtext;
|
|
7
|
+
var _getSingleValueFormattedValue = require("./getSingleValueFormattedValue.js");
|
|
8
|
+
function getSingleValueSubtext(metaData) {
|
|
9
|
+
const indicatorType = metaData.items[metaData.dimensions.dx[0]].indicatorType;
|
|
10
|
+
return indicatorType !== null && indicatorType !== void 0 && indicatorType.displayName && (indicatorType === null || indicatorType === void 0 ? void 0 : indicatorType.factor) !== _getSingleValueFormattedValue.INDICATOR_FACTOR_100 ? indicatorType === null || indicatorType === void 0 ? void 0 : indicatorType.displayName : undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSingleValueTextColor = getSingleValueTextColor;
|
|
7
|
+
var _ui = require("@dhis2/ui");
|
|
8
|
+
var _legends = require("../../../../../../modules/legends.js");
|
|
9
|
+
var _shouldUseContrastColor = require("../../../../../util/shouldUseContrastColor.js");
|
|
10
|
+
var _getSingleValueLegendColor = require("./getSingleValueLegendColor.js");
|
|
11
|
+
function getSingleValueTextColor(baseColor, value, legendOptions, legendSets) {
|
|
12
|
+
const legendColor = (0, _getSingleValueLegendColor.getSingleValueLegendColor)(legendOptions, legendSets, value);
|
|
13
|
+
if (!legendColor) {
|
|
14
|
+
return baseColor;
|
|
15
|
+
}
|
|
16
|
+
if (legendOptions.style === _legends.LEGEND_DISPLAY_STYLE_TEXT) {
|
|
17
|
+
return legendColor;
|
|
18
|
+
}
|
|
19
|
+
return (0, _shouldUseContrastColor.shouldUseContrastColor)(legendColor) ? _ui.colors.white : baseColor;
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSingleValueTitleColor = getSingleValueTitleColor;
|
|
7
|
+
var _ui = require("@dhis2/ui");
|
|
8
|
+
var _legends = require("../../../../../../modules/legends.js");
|
|
9
|
+
var _shouldUseContrastColor = require("../../../../../util/shouldUseContrastColor.js");
|
|
10
|
+
var _getSingleValueLegendColor = require("./getSingleValueLegendColor.js");
|
|
11
|
+
function getSingleValueTitleColor(customColor, defaultColor, value, legendOptions, legendSets) {
|
|
12
|
+
// Never override custom color
|
|
13
|
+
if (customColor) {
|
|
14
|
+
return customColor;
|
|
15
|
+
}
|
|
16
|
+
const isUsingLegendBackground = (legendOptions === null || legendOptions === void 0 ? void 0 : legendOptions.style) === _legends.LEGEND_DISPLAY_STYLE_FILL;
|
|
17
|
+
|
|
18
|
+
// If not using legend background, always return default color
|
|
19
|
+
if (!isUsingLegendBackground) {
|
|
20
|
+
return defaultColor;
|
|
21
|
+
}
|
|
22
|
+
const legendColor = (0, _getSingleValueLegendColor.getSingleValueLegendColor)(legendOptions, legendSets, value);
|
|
23
|
+
|
|
24
|
+
// Return default color or contrasting color when using legend background and default color
|
|
25
|
+
return (0, _shouldUseContrastColor.shouldUseContrastColor)(legendColor) ? _ui.colors.white : defaultColor;
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getSingleValueCustomSVGOptions;
|
|
7
|
+
var _ui = require("@dhis2/ui");
|
|
8
|
+
var _getSingleValueFormattedValue = require("./getSingleValueFormattedValue.js");
|
|
9
|
+
var _getSingleValueSubtext = require("./getSingleValueSubtext.js");
|
|
10
|
+
var _getSingleValueTextColor = require("./getSingleValueTextColor.js");
|
|
11
|
+
function getSingleValueCustomSVGOptions(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
layout,
|
|
14
|
+
extraOptions,
|
|
15
|
+
metaData,
|
|
16
|
+
series
|
|
17
|
+
} = _ref;
|
|
18
|
+
const {
|
|
19
|
+
dashboard,
|
|
20
|
+
icon
|
|
21
|
+
} = extraOptions;
|
|
22
|
+
const value = series[0];
|
|
23
|
+
return {
|
|
24
|
+
value,
|
|
25
|
+
fontColor: (0, _getSingleValueTextColor.getSingleValueTextColor)(_ui.colors.grey900, value, layout.legend, extraOptions.legendSets),
|
|
26
|
+
formattedValue: (0, _getSingleValueFormattedValue.getSingleValueFormattedValue)(value, layout, metaData),
|
|
27
|
+
icon,
|
|
28
|
+
dashboard,
|
|
29
|
+
subText: (0, _getSingleValueSubtext.getSingleValueSubtext)(metaData)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getEvents = void 0;
|
|
7
|
+
var _index = _interopRequireDefault(require("./loadCustomSVG/index.js"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const getEvents = visType => ({
|
|
10
|
+
events: {
|
|
11
|
+
load: function () {
|
|
12
|
+
// Align legend icon with legend text
|
|
13
|
+
this.legend.allItems.forEach(item => {
|
|
14
|
+
if (item.legendSymbol) {
|
|
15
|
+
item.legendSymbol.attr({
|
|
16
|
+
translateY: -(item.legendItem.label.getBBox().height * 0.75 / 4) + item.legendSymbol.r / 2
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
_index.default.call(this, visType);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
exports.getEvents = getEvents;
|
package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = loadCustomSVG;
|
|
7
|
+
var _visTypes = require("../../../../../../modules/visTypes.js");
|
|
8
|
+
var _index = _interopRequireDefault(require("./singleValue/index.js"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function loadCustomSVG(visType) {
|
|
11
|
+
switch (visType) {
|
|
12
|
+
case _visTypes.VIS_TYPE_SINGLE_VALUE:
|
|
13
|
+
_index.default.call(this);
|
|
14
|
+
break;
|
|
15
|
+
default:
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addIconElement = addIconElement;
|
|
7
|
+
const parser = new DOMParser();
|
|
8
|
+
function addIconElement(svgString, color) {
|
|
9
|
+
const svgIconDocument = parser.parseFromString(svgString, 'image/svg+xml');
|
|
10
|
+
const iconElHeight = svgIconDocument.documentElement.getAttribute('height');
|
|
11
|
+
const iconElWidth = svgIconDocument.documentElement.getAttribute('width');
|
|
12
|
+
const iconGroup = this.renderer.g('icon').attr({
|
|
13
|
+
color,
|
|
14
|
+
'data-test': 'visualization-icon'
|
|
15
|
+
}).css({
|
|
16
|
+
visibility: 'hidden'
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
/* Force the group element to have the same dimensions as the original
|
|
20
|
+
* SVG image by adding this rect. This ensures the icon has the intended
|
|
21
|
+
* whitespace around it and makes scaling and translating easier. */
|
|
22
|
+
this.renderer.rect(0, 0, iconElWidth, iconElHeight).add(iconGroup);
|
|
23
|
+
Array.from(svgIconDocument.documentElement.children).forEach(pathNode => {
|
|
24
|
+
/* It is also possible to use the SVGRenderer to draw the icon but that
|
|
25
|
+
* approach is more error prone, so during review it was decided to just
|
|
26
|
+
* append the SVG children to the iconGroup using native the native DOM
|
|
27
|
+
* API. For reference see this commit, for an implementation using the
|
|
28
|
+
* SVVGRenderer:
|
|
29
|
+
* https://github.com/dhis2/analytics/pull/1698/commits/f95bee838e07f4cdfc3cab6e92f28f49a386a0ad */
|
|
30
|
+
iconGroup.element.appendChild(pathNode);
|
|
31
|
+
});
|
|
32
|
+
iconGroup.add();
|
|
33
|
+
return iconGroup;
|
|
34
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkIfFitsWithinContainer = checkIfFitsWithinContainer;
|
|
7
|
+
var _constants = require("./constants.js");
|
|
8
|
+
function checkIfFitsWithinContainer(availableSpace, valueElement, subTextElement, icon, subText, spacing) {
|
|
9
|
+
const valueRect = valueElement.getBBox(true);
|
|
10
|
+
const subTextRect = subText ? subTextElement.getBBox(true) : {
|
|
11
|
+
width: 0,
|
|
12
|
+
height: 0
|
|
13
|
+
};
|
|
14
|
+
const requiredValueWidth = icon ? valueRect.width + spacing.iconGap + spacing.iconSize : valueRect.width;
|
|
15
|
+
const requiredHeight = subText ? valueRect.height * _constants.ACTUAL_NUMBER_HEIGHT_FACTOR + spacing.subTextTop + subTextRect.height : valueRect.height * _constants.ACTUAL_NUMBER_HEIGHT_FACTOR;
|
|
16
|
+
const fitsHorizontally = availableSpace.width > requiredValueWidth && availableSpace.width > subTextRect.width;
|
|
17
|
+
const fitsVertically = availableSpace.height > requiredHeight;
|
|
18
|
+
return fitsHorizontally && fitsVertically;
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.computeLayoutRect = computeLayoutRect;
|
|
7
|
+
var _computeSpacingTop = require("./computeSpacingTop.js");
|
|
8
|
+
var _constants = require("./constants.js");
|
|
9
|
+
function computeLayoutRect(valueElement, subTextElement, iconElement, spacing) {
|
|
10
|
+
const valueRect = valueElement.getBBox();
|
|
11
|
+
const containerCenterY = this.chartHeight / 2;
|
|
12
|
+
const containerCenterX = this.chartWidth / 2;
|
|
13
|
+
const minY = _computeSpacingTop.computeSpacingTop.call(this, spacing.valueTop);
|
|
14
|
+
let width = valueRect.width;
|
|
15
|
+
let height = valueRect.height * _constants.ACTUAL_NUMBER_HEIGHT_FACTOR;
|
|
16
|
+
let sideMarginTop = 0;
|
|
17
|
+
let sideMarginBottom = 0;
|
|
18
|
+
if (iconElement) {
|
|
19
|
+
width += spacing.iconGap + spacing.iconSize;
|
|
20
|
+
}
|
|
21
|
+
if (subTextElement) {
|
|
22
|
+
const subTextRect = subTextElement.getBBox();
|
|
23
|
+
if (subTextRect.width > width) {
|
|
24
|
+
sideMarginTop = (subTextRect.width - width) / 2;
|
|
25
|
+
width = subTextRect.width;
|
|
26
|
+
} else {
|
|
27
|
+
sideMarginBottom = (width - subTextRect.width) / 2;
|
|
28
|
+
}
|
|
29
|
+
height += spacing.subTextTop + subTextRect.height;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
x: containerCenterX - width / 2,
|
|
33
|
+
y: Math.max(containerCenterY - height / 2, minY),
|
|
34
|
+
width,
|
|
35
|
+
height,
|
|
36
|
+
sideMarginTop,
|
|
37
|
+
sideMarginBottom
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.computeSpacingTop = computeSpacingTop;
|
|
7
|
+
function computeSpacingTop(valueSpacingTop) {
|
|
8
|
+
if (this.subtitle.textStr) {
|
|
9
|
+
/* If a subtitle is present this will be below the title so base
|
|
10
|
+
* the value X position on this */
|
|
11
|
+
const subTitleRect = this.subtitle.element.getBBox();
|
|
12
|
+
return subTitleRect.y + subTitleRect.height + valueSpacingTop;
|
|
13
|
+
} else if (this.title.textStr) {
|
|
14
|
+
// Otherwise base on title
|
|
15
|
+
const titleRect = this.title.element.getBBox();
|
|
16
|
+
return titleRect.y + titleRect.height + valueSpacingTop;
|
|
17
|
+
} else {
|
|
18
|
+
// If neither are present only adjust for valueSpacingTop
|
|
19
|
+
return valueSpacingTop;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ACTUAL_NUMBER_HEIGHT_FACTOR = void 0;
|
|
7
|
+
// multiply value text size with this factor
|
|
8
|
+
// to get very close to the actual number height
|
|
9
|
+
// as numbers don't go below the baseline like e.g. "j" and "g"
|
|
10
|
+
const ACTUAL_NUMBER_HEIGHT_FACTOR = 2 / 3;
|
|
11
|
+
exports.ACTUAL_NUMBER_HEIGHT_FACTOR = ACTUAL_NUMBER_HEIGHT_FACTOR;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getAvailableSpace = getAvailableSpace;
|
|
7
|
+
var _computeSpacingTop = require("./computeSpacingTop.js");
|
|
8
|
+
var _styles = require("./styles.js");
|
|
9
|
+
function getAvailableSpace(valueSpacingTop) {
|
|
10
|
+
return {
|
|
11
|
+
height: this.chartHeight - _computeSpacingTop.computeSpacingTop.call(this, valueSpacingTop),
|
|
12
|
+
width: this.chartWidth - _styles.MIN_SIDE_WHITESPACE * 2
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = loadSingleValueSVG;
|
|
7
|
+
var _addIconElement = require("./addIconElement.js");
|
|
8
|
+
var _checkIfFitsWithinContainer = require("./checkIfFitsWithinContainer.js");
|
|
9
|
+
var _getAvailableSpace = require("./getAvailableSpace.js");
|
|
10
|
+
var _positionElements = require("./positionElements.js");
|
|
11
|
+
var _styles = require("./styles.js");
|
|
12
|
+
function loadSingleValueSVG() {
|
|
13
|
+
var _this$userOptions;
|
|
14
|
+
const {
|
|
15
|
+
formattedValue,
|
|
16
|
+
icon,
|
|
17
|
+
subText,
|
|
18
|
+
fontColor
|
|
19
|
+
} = this.userOptions.customSVGOptions;
|
|
20
|
+
const dynamicStyles = new _styles.DynamicStyles((_this$userOptions = this.userOptions) === null || _this$userOptions === void 0 ? void 0 : _this$userOptions.isPdfExport);
|
|
21
|
+
const valueElement = this.renderer.text(formattedValue).attr('data-test', 'visualization-primary-value').css({
|
|
22
|
+
color: fontColor,
|
|
23
|
+
visibility: 'hidden'
|
|
24
|
+
}).add();
|
|
25
|
+
const subTextElement = subText ? this.renderer.text(subText).attr('data-test', 'visualization-subtext').css({
|
|
26
|
+
color: fontColor,
|
|
27
|
+
visibility: 'hidden'
|
|
28
|
+
}).add() : null;
|
|
29
|
+
const iconElement = icon ? _addIconElement.addIconElement.call(this, icon, fontColor) : null;
|
|
30
|
+
let fitsWithinContainer = false;
|
|
31
|
+
let styles = {};
|
|
32
|
+
while (!fitsWithinContainer && dynamicStyles.hasNext()) {
|
|
33
|
+
styles = dynamicStyles.next();
|
|
34
|
+
valueElement.css(styles.value);
|
|
35
|
+
subTextElement === null || subTextElement === void 0 ? void 0 : subTextElement.css(styles.subText);
|
|
36
|
+
fitsWithinContainer = (0, _checkIfFitsWithinContainer.checkIfFitsWithinContainer)(_getAvailableSpace.getAvailableSpace.call(this, styles.spacing.valueTop), valueElement, subTextElement, icon, subText, styles.spacing);
|
|
37
|
+
}
|
|
38
|
+
_positionElements.positionElements.call(this, valueElement, subTextElement, iconElement, styles.spacing);
|
|
39
|
+
valueElement.css({
|
|
40
|
+
visibility: 'visible'
|
|
41
|
+
});
|
|
42
|
+
iconElement === null || iconElement === void 0 ? void 0 : iconElement.css({
|
|
43
|
+
visibility: 'visible'
|
|
44
|
+
});
|
|
45
|
+
subTextElement === null || subTextElement === void 0 ? void 0 : subTextElement.css({
|
|
46
|
+
visibility: 'visible'
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.positionElements = positionElements;
|
|
7
|
+
var _computeLayoutRect = require("./computeLayoutRect.js");
|
|
8
|
+
var _constants = require("./constants.js");
|
|
9
|
+
function positionElements(valueElement, subTextElement, iconElement, spacing) {
|
|
10
|
+
const valueElementBox = valueElement.getBBox();
|
|
11
|
+
/* Layout here refers to a virtual rect that wraps
|
|
12
|
+
* all indiviual parts of the single value visualization
|
|
13
|
+
* (value, subtext and icon) */
|
|
14
|
+
const layoutRect = _computeLayoutRect.computeLayoutRect.call(this, valueElement, subTextElement, iconElement, spacing);
|
|
15
|
+
valueElement.align({
|
|
16
|
+
align: 'right',
|
|
17
|
+
verticalAlign: 'top',
|
|
18
|
+
alignByTranslate: false,
|
|
19
|
+
x: (valueElementBox.width + layoutRect.sideMarginTop) * -1,
|
|
20
|
+
y: valueElementBox.height * _constants.ACTUAL_NUMBER_HEIGHT_FACTOR
|
|
21
|
+
}, false, layoutRect);
|
|
22
|
+
if (iconElement) {
|
|
23
|
+
const {
|
|
24
|
+
height
|
|
25
|
+
} = iconElement.getBBox();
|
|
26
|
+
const scale = spacing.iconSize / height;
|
|
27
|
+
const translateX = layoutRect.x + layoutRect.sideMarginTop;
|
|
28
|
+
const iconHeight = height * scale;
|
|
29
|
+
const valueElementHeight = valueElementBox.height * _constants.ACTUAL_NUMBER_HEIGHT_FACTOR;
|
|
30
|
+
const translateY = layoutRect.y + (valueElementHeight - iconHeight) / 2;
|
|
31
|
+
|
|
32
|
+
/* The icon is a <g> with <path> elements that contain coordinates.
|
|
33
|
+
* These path-coordinates only scale correctly when using CSS translate */
|
|
34
|
+
iconElement.css({
|
|
35
|
+
transform: `translate(${translateX}px, ${translateY}px) scale(${scale})`
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (subTextElement) {
|
|
39
|
+
subTextElement.align({
|
|
40
|
+
align: 'left',
|
|
41
|
+
verticalAlign: 'bottom',
|
|
42
|
+
alignByTranslate: false,
|
|
43
|
+
x: layoutRect.sideMarginBottom
|
|
44
|
+
}, false, layoutRect);
|
|
45
|
+
}
|
|
46
|
+
}
|