@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.
Files changed (139) hide show
  1. package/build/cjs/__demo__/SingleValue.stories.js +706 -0
  2. package/build/cjs/components/PivotTable/PivotTableValueCell.js +6 -2
  3. package/build/cjs/components/PivotTable/styles/PivotTable.style.js +2 -2
  4. package/build/cjs/locales/en/translations.json +2 -0
  5. package/build/cjs/locales/lo/translations.json +16 -12
  6. package/build/cjs/modules/pivotTable/PivotTableEngine.js +59 -24
  7. package/build/cjs/modules/pivotTable/pivotTableConstants.js +6 -2
  8. package/build/cjs/modules/valueTypes.js +4 -1
  9. package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/default.js +26 -0
  10. package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/index.js +18 -0
  11. package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart/singleValue.js +19 -0
  12. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/index.js +36 -0
  13. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueBackgroundColor.js +12 -0
  14. package/build/cjs/visualizations/config/adapters/{dhis_dhis/value/index.js → dhis_highcharts/customSVGOptions/singleValue/getSingleValueFormattedValue.js} +8 -6
  15. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueLegendColor.js +11 -0
  16. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueSubtext.js +11 -0
  17. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTextColor.js +20 -0
  18. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTitleColor.js +26 -0
  19. package/build/cjs/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/index.js +31 -0
  20. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/index.js +24 -0
  21. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js +18 -0
  22. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/addIconElement.js +34 -0
  23. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/checkIfFitsWithinContainer.js +19 -0
  24. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeLayoutRect.js +39 -0
  25. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeSpacingTop.js +21 -0
  26. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/constants.js +11 -0
  27. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/getAvailableSpace.js +14 -0
  28. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/index.js +48 -0
  29. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/positionElements.js +46 -0
  30. package/build/cjs/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/styles.js +109 -0
  31. package/build/cjs/visualizations/config/adapters/dhis_highcharts/exporting.js +30 -0
  32. package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +33 -23
  33. package/build/cjs/visualizations/config/adapters/dhis_highcharts/lang.js +17 -0
  34. package/build/cjs/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
  35. package/build/cjs/visualizations/config/adapters/dhis_highcharts/series/index.js +5 -1
  36. package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/__tests__/singleValue.spec.js +62 -0
  37. package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +56 -22
  38. package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/singleValue.js +27 -0
  39. package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js +44 -0
  40. package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/index.js +50 -22
  41. package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/singleValue.js +31 -0
  42. package/build/cjs/visualizations/config/adapters/dhis_highcharts/type.js +2 -0
  43. package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -0
  44. package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +4 -5
  45. package/build/cjs/visualizations/config/adapters/index.js +2 -4
  46. package/build/cjs/visualizations/config/generators/highcharts/index.js +8 -0
  47. package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/index.js +13 -0
  48. package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/nonASCIIFont.js +17 -0
  49. package/build/cjs/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/textShadow.js +289 -0
  50. package/build/cjs/visualizations/config/generators/index.js +2 -4
  51. package/build/cjs/visualizations/store/adapters/dhis_highcharts/index.js +3 -0
  52. package/build/cjs/visualizations/store/adapters/dhis_highcharts/singleValue.js +10 -0
  53. package/build/cjs/visualizations/store/adapters/index.js +2 -4
  54. package/build/cjs/visualizations/util/shouldUseContrastColor.js +24 -0
  55. package/build/es/__demo__/SingleValue.stories.js +702 -0
  56. package/build/es/components/PivotTable/PivotTableValueCell.js +6 -2
  57. package/build/es/components/PivotTable/styles/PivotTable.style.js +2 -2
  58. package/build/es/locales/en/translations.json +2 -0
  59. package/build/es/locales/lo/translations.json +16 -12
  60. package/build/es/modules/pivotTable/PivotTableEngine.js +61 -26
  61. package/build/es/modules/pivotTable/pivotTableConstants.js +4 -1
  62. package/build/es/modules/valueTypes.js +2 -0
  63. package/build/es/visualizations/config/adapters/dhis_highcharts/chart/default.js +19 -0
  64. package/build/es/visualizations/config/adapters/dhis_highcharts/chart/index.js +11 -0
  65. package/build/es/visualizations/config/adapters/dhis_highcharts/chart/singleValue.js +12 -0
  66. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/index.js +29 -0
  67. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueBackgroundColor.js +6 -0
  68. package/build/es/visualizations/config/adapters/{dhis_dhis/value/index.js → dhis_highcharts/customSVGOptions/singleValue/getSingleValueFormattedValue.js} +4 -4
  69. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueLegendColor.js +5 -0
  70. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueSubtext.js +5 -0
  71. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTextColor.js +14 -0
  72. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/getSingleValueTitleColor.js +20 -0
  73. package/build/es/visualizations/config/adapters/dhis_highcharts/customSVGOptions/singleValue/index.js +25 -0
  74. package/build/es/visualizations/config/adapters/dhis_highcharts/events/index.js +16 -0
  75. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/index.js +11 -0
  76. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/addIconElement.js +28 -0
  77. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/checkIfFitsWithinContainer.js +13 -0
  78. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeLayoutRect.js +33 -0
  79. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/computeSpacingTop.js +15 -0
  80. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/constants.js +4 -0
  81. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/getAvailableSpace.js +8 -0
  82. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/index.js +42 -0
  83. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/positionElements.js +40 -0
  84. package/build/es/visualizations/config/adapters/dhis_highcharts/events/loadCustomSVG/singleValue/styles.js +101 -0
  85. package/build/es/visualizations/config/adapters/dhis_highcharts/exporting.js +23 -0
  86. package/build/es/visualizations/config/adapters/dhis_highcharts/index.js +23 -13
  87. package/build/es/visualizations/config/adapters/dhis_highcharts/lang.js +11 -0
  88. package/build/es/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
  89. package/build/es/visualizations/config/adapters/dhis_highcharts/series/index.js +6 -2
  90. package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/__tests__/singleValue.spec.js +59 -0
  91. package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +56 -24
  92. package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/singleValue.js +14 -0
  93. package/build/es/visualizations/config/adapters/dhis_highcharts/title/__tests__/singleValue.spec.js +42 -0
  94. package/build/es/visualizations/config/adapters/dhis_highcharts/title/index.js +52 -24
  95. package/build/es/visualizations/config/adapters/dhis_highcharts/title/singleValue.js +18 -0
  96. package/build/es/visualizations/config/adapters/dhis_highcharts/type.js +3 -1
  97. package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +2 -1
  98. package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +5 -6
  99. package/build/es/visualizations/config/adapters/index.js +1 -3
  100. package/build/es/visualizations/config/generators/highcharts/index.js +8 -0
  101. package/build/es/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/index.js +6 -0
  102. package/build/es/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/nonASCIIFont.js +11 -0
  103. package/build/es/visualizations/config/generators/highcharts/pdfExportBugFixPlugin/textShadow.js +283 -0
  104. package/build/es/visualizations/config/generators/index.js +1 -3
  105. package/build/es/visualizations/store/adapters/dhis_highcharts/index.js +4 -1
  106. package/build/es/visualizations/store/adapters/dhis_highcharts/singleValue.js +4 -0
  107. package/build/es/visualizations/store/adapters/index.js +1 -3
  108. package/build/es/visualizations/util/shouldUseContrastColor.js +17 -0
  109. package/package.json +1 -2
  110. package/build/cjs/visualizations/config/adapters/dhis_dhis/index.js +0 -39
  111. package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -49
  112. package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -15
  113. package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -34
  114. package/build/cjs/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -11
  115. package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -39
  116. package/build/cjs/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -17
  117. package/build/cjs/visualizations/config/adapters/dhis_dhis/title/index.js +0 -31
  118. package/build/cjs/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -18
  119. package/build/cjs/visualizations/config/adapters/dhis_dhis/type.js +0 -19
  120. package/build/cjs/visualizations/config/adapters/dhis_highcharts/chart.js +0 -39
  121. package/build/cjs/visualizations/config/generators/dhis/index.js +0 -28
  122. package/build/cjs/visualizations/config/generators/dhis/singleValue.js +0 -359
  123. package/build/cjs/visualizations/store/adapters/dhis_dhis/index.js +0 -83
  124. package/build/cjs/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -10
  125. package/build/es/visualizations/config/adapters/dhis_dhis/index.js +0 -30
  126. package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/index.spec.js +0 -46
  127. package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/__tests__/singleValue.spec.js +0 -12
  128. package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/index.js +0 -27
  129. package/build/es/visualizations/config/adapters/dhis_dhis/subtitle/singleValue.js +0 -4
  130. package/build/es/visualizations/config/adapters/dhis_dhis/title/__tests__/index.spec.js +0 -36
  131. package/build/es/visualizations/config/adapters/dhis_dhis/title/__tests__/singleValue.spec.js +0 -14
  132. package/build/es/visualizations/config/adapters/dhis_dhis/title/index.js +0 -24
  133. package/build/es/visualizations/config/adapters/dhis_dhis/title/singleValue.js +0 -11
  134. package/build/es/visualizations/config/adapters/dhis_dhis/type.js +0 -13
  135. package/build/es/visualizations/config/adapters/dhis_highcharts/chart.js +0 -32
  136. package/build/es/visualizations/config/generators/dhis/index.js +0 -21
  137. package/build/es/visualizations/config/generators/dhis/singleValue.js +0 -353
  138. package/build/es/visualizations/store/adapters/dhis_dhis/index.js +0 -76
  139. package/build/es/visualizations/store/adapters/dhis_dhis/singleValue.js +0 -4
@@ -0,0 +1,706 @@
1
+ "use strict";
2
+
3
+ var _react = require("@storybook/react");
4
+ var _react2 = _interopRequireWildcard(require("react"));
5
+ var _index = require("../index.js");
6
+ 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); }
7
+ 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; }
8
+ const constainerStyleBase = {
9
+ width: 800,
10
+ height: 800,
11
+ border: '1px solid magenta',
12
+ marginBottom: 14
13
+ };
14
+ const innerContainerStyle = {
15
+ overflow: 'hidden',
16
+ display: 'flex',
17
+ justifyContent: 'center',
18
+ height: '100%'
19
+ };
20
+ const baseDataObj = {
21
+ response: {
22
+ headers: [{
23
+ name: 'dx',
24
+ column: 'Data',
25
+ valueType: 'TEXT',
26
+ type: 'java.lang.String',
27
+ hidden: false,
28
+ meta: true
29
+ }, {
30
+ name: 'value',
31
+ column: 'Value',
32
+ valueType: 'NUMBER',
33
+ type: 'java.lang.Double',
34
+ hidden: false,
35
+ meta: false
36
+ }],
37
+ metaData: {
38
+ items: {
39
+ 202308: {
40
+ uid: '202308',
41
+ code: '202308',
42
+ name: 'August 2023',
43
+ dimensionItemType: 'PERIOD',
44
+ valueType: 'TEXT',
45
+ totalAggregationType: 'SUM',
46
+ startDate: '2023-08-01T00:00:00.000',
47
+ endDate: '2023-08-31T00:00:00.000'
48
+ },
49
+ 202309: {
50
+ uid: '202309',
51
+ code: '202309',
52
+ name: 'September 2023',
53
+ dimensionItemType: 'PERIOD',
54
+ valueType: 'TEXT',
55
+ totalAggregationType: 'SUM',
56
+ startDate: '2023-09-01T00:00:00.000',
57
+ endDate: '2023-09-30T00:00:00.000'
58
+ },
59
+ 202310: {
60
+ uid: '202310',
61
+ code: '202310',
62
+ name: 'October 2023',
63
+ dimensionItemType: 'PERIOD',
64
+ valueType: 'TEXT',
65
+ totalAggregationType: 'SUM',
66
+ startDate: '2023-10-01T00:00:00.000',
67
+ endDate: '2023-10-31T00:00:00.000'
68
+ },
69
+ 202311: {
70
+ uid: '202311',
71
+ code: '202311',
72
+ name: 'November 2023',
73
+ dimensionItemType: 'PERIOD',
74
+ valueType: 'TEXT',
75
+ totalAggregationType: 'SUM',
76
+ startDate: '2023-11-01T00:00:00.000',
77
+ endDate: '2023-11-30T00:00:00.000'
78
+ },
79
+ 202312: {
80
+ uid: '202312',
81
+ code: '202312',
82
+ name: 'December 2023',
83
+ dimensionItemType: 'PERIOD',
84
+ valueType: 'TEXT',
85
+ totalAggregationType: 'SUM',
86
+ startDate: '2023-12-01T00:00:00.000',
87
+ endDate: '2023-12-31T00:00:00.000'
88
+ },
89
+ 202401: {
90
+ uid: '202401',
91
+ code: '202401',
92
+ name: 'January 2024',
93
+ dimensionItemType: 'PERIOD',
94
+ valueType: 'TEXT',
95
+ totalAggregationType: 'SUM',
96
+ startDate: '2024-01-01T00:00:00.000',
97
+ endDate: '2024-01-31T00:00:00.000'
98
+ },
99
+ 202402: {
100
+ uid: '202402',
101
+ code: '202402',
102
+ name: 'February 2024',
103
+ dimensionItemType: 'PERIOD',
104
+ valueType: 'TEXT',
105
+ totalAggregationType: 'SUM',
106
+ startDate: '2024-02-01T00:00:00.000',
107
+ endDate: '2024-02-29T00:00:00.000'
108
+ },
109
+ 202403: {
110
+ uid: '202403',
111
+ code: '202403',
112
+ name: 'March 2024',
113
+ dimensionItemType: 'PERIOD',
114
+ valueType: 'TEXT',
115
+ totalAggregationType: 'SUM',
116
+ startDate: '2024-03-01T00:00:00.000',
117
+ endDate: '2024-03-31T00:00:00.000'
118
+ },
119
+ 202404: {
120
+ uid: '202404',
121
+ code: '202404',
122
+ name: 'April 2024',
123
+ dimensionItemType: 'PERIOD',
124
+ valueType: 'TEXT',
125
+ totalAggregationType: 'SUM',
126
+ startDate: '2024-04-01T00:00:00.000',
127
+ endDate: '2024-04-30T00:00:00.000'
128
+ },
129
+ 202405: {
130
+ uid: '202405',
131
+ code: '202405',
132
+ name: 'May 2024',
133
+ dimensionItemType: 'PERIOD',
134
+ valueType: 'TEXT',
135
+ totalAggregationType: 'SUM',
136
+ startDate: '2024-05-01T00:00:00.000',
137
+ endDate: '2024-05-31T00:00:00.000'
138
+ },
139
+ 202406: {
140
+ uid: '202406',
141
+ code: '202406',
142
+ name: 'June 2024',
143
+ dimensionItemType: 'PERIOD',
144
+ valueType: 'TEXT',
145
+ totalAggregationType: 'SUM',
146
+ startDate: '2024-06-01T00:00:00.000',
147
+ endDate: '2024-06-30T00:00:00.000'
148
+ },
149
+ 202407: {
150
+ uid: '202407',
151
+ code: '202407',
152
+ name: 'July 2024',
153
+ dimensionItemType: 'PERIOD',
154
+ valueType: 'TEXT',
155
+ totalAggregationType: 'SUM',
156
+ startDate: '2024-07-01T00:00:00.000',
157
+ endDate: '2024-07-31T00:00:00.000'
158
+ },
159
+ ou: {
160
+ uid: 'ou',
161
+ name: 'Organisation unit',
162
+ dimensionType: 'ORGANISATION_UNIT'
163
+ },
164
+ O6uvpzGd5pu: {
165
+ uid: 'O6uvpzGd5pu',
166
+ code: 'OU_264',
167
+ name: 'Bo',
168
+ dimensionItemType: 'ORGANISATION_UNIT',
169
+ valueType: 'TEXT',
170
+ totalAggregationType: 'SUM'
171
+ },
172
+ LAST_12_MONTHS: {
173
+ name: 'Last 12 months'
174
+ },
175
+ dx: {
176
+ uid: 'dx',
177
+ name: 'Data',
178
+ dimensionType: 'DATA_X'
179
+ },
180
+ pe: {
181
+ uid: 'pe',
182
+ name: 'Period',
183
+ dimensionType: 'PERIOD'
184
+ },
185
+ FnYCr2EAzWS: {
186
+ uid: 'FnYCr2EAzWS',
187
+ code: 'IN_52493',
188
+ name: 'BCG Coverage <1y',
189
+ legendSet: 'BtxOoQuLyg1',
190
+ dimensionItemType: 'INDICATOR',
191
+ valueType: 'NUMBER',
192
+ totalAggregationType: 'AVERAGE',
193
+ indicatorType: {
194
+ name: 'Per cent',
195
+ displayName: 'Per cent',
196
+ factor: 100,
197
+ number: false
198
+ }
199
+ }
200
+ },
201
+ dimensions: {
202
+ dx: ['FnYCr2EAzWS'],
203
+ pe: ['202308', '202309', '202310', '202311', '202312', '202401', '202402', '202403', '202404', '202405', '202406', '202407'],
204
+ ou: ['O6uvpzGd5pu'],
205
+ co: []
206
+ }
207
+ },
208
+ rowContext: {},
209
+ rows: [['FnYCr2EAzWS', '34.19']],
210
+ width: 2,
211
+ height: 1,
212
+ headerWidth: 2
213
+ },
214
+ headers: [{
215
+ name: 'dx',
216
+ column: 'Data',
217
+ valueType: 'TEXT',
218
+ type: 'java.lang.String',
219
+ hidden: false,
220
+ meta: true,
221
+ isPrefix: false,
222
+ isCollect: false,
223
+ index: 0
224
+ }, {
225
+ name: 'value',
226
+ column: 'Value',
227
+ valueType: 'NUMBER',
228
+ type: 'java.lang.Double',
229
+ hidden: false,
230
+ meta: false,
231
+ isPrefix: false,
232
+ isCollect: false,
233
+ index: 1
234
+ }],
235
+ rows: [['FnYCr2EAzWS', '34.19']],
236
+ metaData: {
237
+ items: {
238
+ 202308: {
239
+ uid: '202308',
240
+ code: '202308',
241
+ name: 'August 2023',
242
+ dimensionItemType: 'PERIOD',
243
+ valueType: 'TEXT',
244
+ totalAggregationType: 'SUM',
245
+ startDate: '2023-08-01T00:00:00.000',
246
+ endDate: '2023-08-31T00:00:00.000'
247
+ },
248
+ 202309: {
249
+ uid: '202309',
250
+ code: '202309',
251
+ name: 'September 2023',
252
+ dimensionItemType: 'PERIOD',
253
+ valueType: 'TEXT',
254
+ totalAggregationType: 'SUM',
255
+ startDate: '2023-09-01T00:00:00.000',
256
+ endDate: '2023-09-30T00:00:00.000'
257
+ },
258
+ 202310: {
259
+ uid: '202310',
260
+ code: '202310',
261
+ name: 'October 2023',
262
+ dimensionItemType: 'PERIOD',
263
+ valueType: 'TEXT',
264
+ totalAggregationType: 'SUM',
265
+ startDate: '2023-10-01T00:00:00.000',
266
+ endDate: '2023-10-31T00:00:00.000'
267
+ },
268
+ 202311: {
269
+ uid: '202311',
270
+ code: '202311',
271
+ name: 'November 2023',
272
+ dimensionItemType: 'PERIOD',
273
+ valueType: 'TEXT',
274
+ totalAggregationType: 'SUM',
275
+ startDate: '2023-11-01T00:00:00.000',
276
+ endDate: '2023-11-30T00:00:00.000'
277
+ },
278
+ 202312: {
279
+ uid: '202312',
280
+ code: '202312',
281
+ name: 'December 2023',
282
+ dimensionItemType: 'PERIOD',
283
+ valueType: 'TEXT',
284
+ totalAggregationType: 'SUM',
285
+ startDate: '2023-12-01T00:00:00.000',
286
+ endDate: '2023-12-31T00:00:00.000'
287
+ },
288
+ 202401: {
289
+ uid: '202401',
290
+ code: '202401',
291
+ name: 'January 2024',
292
+ dimensionItemType: 'PERIOD',
293
+ valueType: 'TEXT',
294
+ totalAggregationType: 'SUM',
295
+ startDate: '2024-01-01T00:00:00.000',
296
+ endDate: '2024-01-31T00:00:00.000'
297
+ },
298
+ 202402: {
299
+ uid: '202402',
300
+ code: '202402',
301
+ name: 'February 2024',
302
+ dimensionItemType: 'PERIOD',
303
+ valueType: 'TEXT',
304
+ totalAggregationType: 'SUM',
305
+ startDate: '2024-02-01T00:00:00.000',
306
+ endDate: '2024-02-29T00:00:00.000'
307
+ },
308
+ 202403: {
309
+ uid: '202403',
310
+ code: '202403',
311
+ name: 'March 2024',
312
+ dimensionItemType: 'PERIOD',
313
+ valueType: 'TEXT',
314
+ totalAggregationType: 'SUM',
315
+ startDate: '2024-03-01T00:00:00.000',
316
+ endDate: '2024-03-31T00:00:00.000'
317
+ },
318
+ 202404: {
319
+ uid: '202404',
320
+ code: '202404',
321
+ name: 'April 2024',
322
+ dimensionItemType: 'PERIOD',
323
+ valueType: 'TEXT',
324
+ totalAggregationType: 'SUM',
325
+ startDate: '2024-04-01T00:00:00.000',
326
+ endDate: '2024-04-30T00:00:00.000'
327
+ },
328
+ 202405: {
329
+ uid: '202405',
330
+ code: '202405',
331
+ name: 'May 2024',
332
+ dimensionItemType: 'PERIOD',
333
+ valueType: 'TEXT',
334
+ totalAggregationType: 'SUM',
335
+ startDate: '2024-05-01T00:00:00.000',
336
+ endDate: '2024-05-31T00:00:00.000'
337
+ },
338
+ 202406: {
339
+ uid: '202406',
340
+ code: '202406',
341
+ name: 'June 2024',
342
+ dimensionItemType: 'PERIOD',
343
+ valueType: 'TEXT',
344
+ totalAggregationType: 'SUM',
345
+ startDate: '2024-06-01T00:00:00.000',
346
+ endDate: '2024-06-30T00:00:00.000'
347
+ },
348
+ 202407: {
349
+ uid: '202407',
350
+ code: '202407',
351
+ name: 'July 2024',
352
+ dimensionItemType: 'PERIOD',
353
+ valueType: 'TEXT',
354
+ totalAggregationType: 'SUM',
355
+ startDate: '2024-07-01T00:00:00.000',
356
+ endDate: '2024-07-31T00:00:00.000'
357
+ },
358
+ ou: {
359
+ uid: 'ou',
360
+ name: 'Organisation unit',
361
+ dimensionType: 'ORGANISATION_UNIT'
362
+ },
363
+ O6uvpzGd5pu: {
364
+ uid: 'O6uvpzGd5pu',
365
+ code: 'OU_264',
366
+ name: 'Bo',
367
+ dimensionItemType: 'ORGANISATION_UNIT',
368
+ valueType: 'TEXT',
369
+ totalAggregationType: 'SUM'
370
+ },
371
+ LAST_12_MONTHS: {
372
+ name: 'Last 12 months'
373
+ },
374
+ dx: {
375
+ uid: 'dx',
376
+ name: 'Data',
377
+ dimensionType: 'DATA_X'
378
+ },
379
+ pe: {
380
+ uid: 'pe',
381
+ name: 'Period',
382
+ dimensionType: 'PERIOD'
383
+ },
384
+ FnYCr2EAzWS: {
385
+ uid: 'FnYCr2EAzWS',
386
+ code: 'IN_52493',
387
+ name: 'BCG Coverage <1y',
388
+ legendSet: 'BtxOoQuLyg1',
389
+ dimensionItemType: 'INDICATOR',
390
+ valueType: 'NUMBER',
391
+ totalAggregationType: 'AVERAGE'
392
+ }
393
+ },
394
+ dimensions: {
395
+ dx: ['FnYCr2EAzWS'],
396
+ pe: ['202308', '202309', '202310', '202311', '202312', '202401', '202402', '202403', '202404', '202405', '202406', '202407'],
397
+ ou: ['O6uvpzGd5pu'],
398
+ co: []
399
+ }
400
+ }
401
+ };
402
+ const numberIndicatorType = {
403
+ name: 'Plain',
404
+ number: true
405
+ };
406
+ const subtextIndicatorType = {
407
+ name: 'Custom',
408
+ displayName: 'Custom subtext',
409
+ number: true
410
+ };
411
+ const percentIndicatorType = {
412
+ name: 'Per cent',
413
+ displayName: 'Per cent',
414
+ factor: 100,
415
+ number: false
416
+ };
417
+ const layout = {
418
+ name: 'BCG coverage last 12 months - Bo',
419
+ created: '2013-10-16T19:50:52.464',
420
+ lastUpdated: '2021-07-06T12:53:57.296',
421
+ translations: [],
422
+ favorites: [],
423
+ lastUpdatedBy: {
424
+ id: 'xE7jOejl9FI',
425
+ code: null,
426
+ name: 'John Traore',
427
+ displayName: 'John Traore',
428
+ username: 'admin'
429
+ },
430
+ regressionType: 'NONE',
431
+ displayDensity: 'NORMAL',
432
+ fontSize: 'NORMAL',
433
+ sortOrder: 0,
434
+ topLimit: 0,
435
+ hideEmptyRows: false,
436
+ showHierarchy: false,
437
+ completedOnly: false,
438
+ skipRounding: false,
439
+ dataDimensionItems: [{
440
+ indicator: {
441
+ name: 'BCG Coverage <1y',
442
+ dimensionItemType: 'INDICATOR',
443
+ displayName: 'BCG Coverage <1y',
444
+ access: {
445
+ manage: true,
446
+ externalize: true,
447
+ write: true,
448
+ read: true,
449
+ update: true,
450
+ delete: true
451
+ },
452
+ displayShortName: 'BCG Coverage <1y',
453
+ id: 'FnYCr2EAzWS'
454
+ },
455
+ dataDimensionItemType: 'INDICATOR'
456
+ }],
457
+ subscribers: [],
458
+ aggregationType: 'DEFAULT',
459
+ digitGroupSeparator: 'SPACE',
460
+ hideEmptyRowItems: 'NONE',
461
+ noSpaceBetweenColumns: false,
462
+ cumulativeValues: false,
463
+ percentStackedValues: false,
464
+ showData: true,
465
+ colTotals: false,
466
+ rowTotals: false,
467
+ rowSubTotals: false,
468
+ colSubTotals: false,
469
+ hideTitle: false,
470
+ hideSubtitle: false,
471
+ showDimensionLabels: false,
472
+ interpretations: [],
473
+ type: 'SINGLE_VALUE',
474
+ reportingParams: {
475
+ grandParentOrganisationUnit: false,
476
+ parentOrganisationUnit: false,
477
+ organisationUnit: false,
478
+ reportingPeriod: false
479
+ },
480
+ numberType: 'VALUE',
481
+ fontStyle: {},
482
+ colorSet: 'DEFAULT',
483
+ yearlySeries: [],
484
+ regression: false,
485
+ hideEmptyColumns: false,
486
+ fixColumnHeaders: false,
487
+ fixRowHeaders: false,
488
+ filters: [{
489
+ items: [{
490
+ name: 'Bo',
491
+ dimensionItemType: 'ORGANISATION_UNIT',
492
+ displayShortName: 'Bo',
493
+ displayName: 'Bo',
494
+ access: {
495
+ manage: true,
496
+ externalize: true,
497
+ write: true,
498
+ read: true,
499
+ update: true,
500
+ delete: true
501
+ },
502
+ id: 'O6uvpzGd5pu'
503
+ }],
504
+ dimension: 'ou'
505
+ }, {
506
+ items: [{
507
+ name: 'LAST_12_MONTHS',
508
+ dimensionItemType: 'PERIOD',
509
+ displayShortName: 'LAST_12_MONTHS',
510
+ displayName: 'LAST_12_MONTHS',
511
+ access: {
512
+ manage: true,
513
+ externalize: true,
514
+ write: true,
515
+ read: true,
516
+ update: true,
517
+ delete: true
518
+ },
519
+ id: 'LAST_12_MONTHS'
520
+ }],
521
+ dimension: 'pe'
522
+ }],
523
+ parentGraphMap: {
524
+ O6uvpzGd5pu: 'ImspTQPwCqd'
525
+ },
526
+ columns: [{
527
+ items: [{
528
+ name: 'BCG Coverage <1y',
529
+ dimensionItemType: 'INDICATOR',
530
+ displayName: 'BCG Coverage <1y',
531
+ access: {
532
+ manage: true,
533
+ externalize: true,
534
+ write: true,
535
+ read: true,
536
+ update: true,
537
+ delete: true
538
+ },
539
+ displayShortName: 'BCG Coverage <1y',
540
+ id: 'FnYCr2EAzWS'
541
+ }],
542
+ dimension: 'dx'
543
+ }],
544
+ rows: [],
545
+ subscribed: false,
546
+ displayName: 'BCG coverage last 12 months - Bo',
547
+ access: {
548
+ manage: true,
549
+ externalize: true,
550
+ write: true,
551
+ read: true,
552
+ update: true,
553
+ delete: true
554
+ },
555
+ favorite: false,
556
+ user: {
557
+ id: 'xE7jOejl9FI',
558
+ code: null,
559
+ name: 'John Traore',
560
+ displayName: 'John Traore',
561
+ username: 'admin'
562
+ },
563
+ href: 'http://localhost:8080/api/41/visualizations/mYMnDl5Z9oD',
564
+ id: 'mYMnDl5Z9oD',
565
+ legend: {
566
+ showKey: false
567
+ },
568
+ sorting: [],
569
+ series: [],
570
+ icons: [],
571
+ seriesKey: {
572
+ hidden: false
573
+ },
574
+ axes: []
575
+ };
576
+ const icon = '<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M32 12.5C32 13.0523 32.4477 13.5 33 13.5C33.5523 13.5 34 13.0523 34 12.5V11C34 10.4477 33.5523 10 33 10C32.4477 10 32 10.4477 32 11V12.5Z" fill="currentColor"/><path d="M16 24V27H18V24H21V22H18V19H16V22H13V24H16Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M4 17C4 15.3431 5.34315 14 7 14H27C28.6569 14 30 15.3431 30 17V19H31V18H32V17C32 16.4477 32.4477 16 33 16C33.5523 16 34 16.4477 34 17V18H35V19H35.718C36.4722 19 37.1987 19.284 37.7529 19.7956L43.0348 24.6713C43.6501 25.2392 44 26.0384 44 26.8757V35H38.874C38.4299 36.7252 36.8638 38 35 38C33.1362 38 31.5701 36.7252 31.126 35H15.874C15.4299 36.7252 13.8638 38 12 38C10.1362 38 8.57006 36.7252 8.12602 35H4V17ZM31.126 33C31.5701 31.2748 33.1362 30 35 30C36.8638 30 38.4299 31.2748 38.874 33H42V28L30 28V33H31.126ZM30 26L41.5257 26L36.3963 21.2652C36.2116 21.0947 35.9694 21 35.718 21H30V26ZM27 16C27.5523 16 28 16.4477 28 17V33H15.874C15.4299 31.2748 13.8638 30 12 30C10.1362 30 8.57006 31.2748 8.12602 33H6V17C6 16.4477 6.44772 16 7 16H27ZM12 36C13.1046 36 14 35.1046 14 34C14 32.8954 13.1046 32 12 32C10.8954 32 10 32.8954 10 34C10 35.1046 10.8954 36 12 36ZM37 34C37 35.1046 36.1046 36 35 36C33.8954 36 33 35.1046 33 34C33 32.8954 33.8954 32 35 32C36.1046 32 37 32.8954 37 34Z" fill="currentColor"/><path d="M36.5 17C36.5 16.4477 36.9477 16 37.5 16H39C39.5523 16 40 16.4477 40 17C40 17.5523 39.5523 18 39 18H37.5C36.9477 18 36.5 17.5523 36.5 17Z" fill="currentColor"/><path d="M35.8285 12.759C35.4193 13.1298 35.3881 13.7622 35.759 14.1715C36.1298 14.5807 36.7622 14.6119 37.1715 14.241L38.0857 13.4126C38.4949 13.0417 38.5261 12.4093 38.1552 12.0001C37.7844 11.5908 37.152 11.5597 36.7427 11.9306L35.8285 12.759Z" fill="currentColor"/></svg>';
577
+ const baseExtraOptions = {
578
+ dashboard: true,
579
+ animation: 200,
580
+ legendSets: [],
581
+ icon
582
+ };
583
+ const indicatorTypes = ['plain', 'percent', 'subtext'];
584
+ (0, _react.storiesOf)('SingleValue', module).add('default', () => {
585
+ const newChartRef = (0, _react2.useRef)(null);
586
+ const newContainerRef = (0, _react2.useRef)(null);
587
+ const [dashboard, setDashboard] = (0, _react2.useState)(false);
588
+ const [showIcon, setShowIcon] = (0, _react2.useState)(true);
589
+ const [indicatorType, setIndicatorType] = (0, _react2.useState)('plain');
590
+ const [exportAsPdf, setExportAsPdf] = (0, _react2.useState)(true);
591
+ const [width, setWidth] = (0, _react2.useState)(constainerStyleBase.width);
592
+ const [height, setHeight] = (0, _react2.useState)(constainerStyleBase.height);
593
+ const containerStyle = (0, _react2.useMemo)(() => ({
594
+ ...constainerStyleBase,
595
+ width,
596
+ height
597
+ }), [width, height]);
598
+ (0, _react2.useEffect)(() => {
599
+ if (newContainerRef.current) {
600
+ requestAnimationFrame(() => {
601
+ const extraOptions = {
602
+ ...baseExtraOptions,
603
+ dashboard,
604
+ icon: showIcon ? icon : undefined
605
+ };
606
+ const dataObj = {
607
+ ...baseDataObj
608
+ };
609
+ if (indicatorType === 'plain') {
610
+ dataObj.metaData.items.FnYCr2EAzWS.indicatorType = numberIndicatorType;
611
+ }
612
+ if (indicatorType === 'percent') {
613
+ dataObj.metaData.items.FnYCr2EAzWS.indicatorType = percentIndicatorType;
614
+ }
615
+ if (indicatorType === 'subtext') {
616
+ dataObj.metaData.items.FnYCr2EAzWS.indicatorType = subtextIndicatorType;
617
+ }
618
+ const newVisualization = (0, _index.createVisualization)([dataObj], layout, newContainerRef.current, extraOptions, undefined, undefined, 'highcharts');
619
+ newChartRef.current = newVisualization.visualization;
620
+ });
621
+ }
622
+ }, [containerStyle, dashboard, showIcon, indicatorType]);
623
+ const downloadOffline = (0, _react2.useCallback)(() => {
624
+ if (newChartRef.current) {
625
+ const currentBackgroundColor = newChartRef.current.userOptions.chart.backgroundColor;
626
+ newChartRef.current.update({
627
+ exporting: {
628
+ chartOptions: {
629
+ isPdfExport: exportAsPdf
630
+ }
631
+ }
632
+ });
633
+ newChartRef.current.exportChartLocal({
634
+ sourceHeight: 768,
635
+ sourceWidth: 1024,
636
+ scale: 1,
637
+ fallbackToExportServer: false,
638
+ filename: 'testOfflineDownload',
639
+ showExportInProgress: true,
640
+ type: exportAsPdf ? 'application/pdf' : 'image/png'
641
+ }, {
642
+ chart: {
643
+ backgroundColor: currentBackgroundColor === 'transparent' ? '#ffffff' : currentBackgroundColor
644
+ }
645
+ });
646
+ }
647
+ }, [exportAsPdf]);
648
+ return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("div", {
649
+ style: {
650
+ display: 'flex',
651
+ gap: 12,
652
+ marginBottom: 20,
653
+ alignItems: 'center'
654
+ }
655
+ }, /*#__PURE__*/_react2.default.createElement("div", null, /*#__PURE__*/_react2.default.createElement("label", {
656
+ htmlFor: "width"
657
+ }, "Width"), /*#__PURE__*/_react2.default.createElement("input", {
658
+ type: "number",
659
+ name: "width",
660
+ id: "width",
661
+ min: "1",
662
+ step: "5",
663
+ onChange: event => setWidth(parseInt(event.target.value)),
664
+ value: width.toString()
665
+ })), /*#__PURE__*/_react2.default.createElement("div", null, /*#__PURE__*/_react2.default.createElement("label", {
666
+ htmlFor: "height"
667
+ }, "Height"), /*#__PURE__*/_react2.default.createElement("input", {
668
+ type: "number",
669
+ name: "height",
670
+ id: "height",
671
+ min: "1",
672
+ step: "5",
673
+ onChange: event => setHeight(parseInt(event.target.value)),
674
+ value: height.toString()
675
+ })), /*#__PURE__*/_react2.default.createElement("label", null, /*#__PURE__*/_react2.default.createElement("input", {
676
+ checked: dashboard,
677
+ onChange: () => setDashboard(!dashboard),
678
+ type: "checkbox"
679
+ }), "\xA0Dashboard view"), /*#__PURE__*/_react2.default.createElement("label", null, /*#__PURE__*/_react2.default.createElement("input", {
680
+ checked: showIcon,
681
+ onChange: () => setShowIcon(!showIcon),
682
+ type: "checkbox"
683
+ }), "\xA0Show icon"), /*#__PURE__*/_react2.default.createElement("label", null, "Indicator type\xA0", /*#__PURE__*/_react2.default.createElement("select", {
684
+ onChange: event => setIndicatorType(event.target.value)
685
+ }, indicatorTypes.map((type, index) => {
686
+ return /*#__PURE__*/_react2.default.createElement("option", {
687
+ key: index
688
+ }, type);
689
+ }))), /*#__PURE__*/_react2.default.createElement("label", null, /*#__PURE__*/_react2.default.createElement("input", {
690
+ checked: exportAsPdf,
691
+ onChange: () => setExportAsPdf(!exportAsPdf),
692
+ type: "checkbox"
693
+ }), "\xA0Export as PDF"), /*#__PURE__*/_react2.default.createElement("button", {
694
+ onClick: downloadOffline
695
+ }, "Download offline")), /*#__PURE__*/_react2.default.createElement("div", {
696
+ style: {
697
+ display: 'flex',
698
+ gap: 12
699
+ }
700
+ }, /*#__PURE__*/_react2.default.createElement("div", {
701
+ style: containerStyle
702
+ }, /*#__PURE__*/_react2.default.createElement("div", {
703
+ ref: newContainerRef,
704
+ style: innerContainerStyle
705
+ }))));
706
+ });