@dhis2/analytics 26.12.3 → 26.13.1

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 (127) hide show
  1. package/build/cjs/__demo__/FileMenu.stories.js +1 -9
  2. package/build/cjs/__demo__/data/avgTotalAggregationType.visualization.json +256 -1
  3. package/build/cjs/__demo__/data/deep.visualization.json +613 -310
  4. package/build/cjs/__demo__/data/deepWithFilters.visualization.json +0 -3
  5. package/build/cjs/__demo__/data/degs.visualization.json +2 -7
  6. package/build/cjs/__demo__/data/diseaseWeeks.visualization.json +317 -153
  7. package/build/cjs/__demo__/data/emptyColumns.visualization.json +2 -7
  8. package/build/cjs/__demo__/data/emptyRows.visualization.json +292 -297
  9. package/build/cjs/__demo__/data/hierarchy.visualization.json +197 -1
  10. package/build/cjs/__demo__/data/lastFiveYears.visualization.json +2 -7
  11. package/build/cjs/__demo__/data/narrative.visualization.json +2 -7
  12. package/build/cjs/__demo__/data/simple.visualization.json +115 -105
  13. package/build/cjs/__demo__/data/target-with-legend.visualization.json +370 -115
  14. package/build/cjs/__demo__/data/under-above-100.legendSet.json +87 -103
  15. package/build/cjs/__demo__/data/weeklyColumns.visualization.json +2 -7
  16. package/build/cjs/__fixtures__/json/chartAllFields.json +8 -33
  17. package/build/cjs/api/dimensions.js +11 -1
  18. package/build/cjs/api/expression.js +19 -9
  19. package/build/cjs/assets/DimensionItemIcons/CalculationIcon.js +1 -1
  20. package/build/cjs/assets/DimensionItemIcons/DataElementIcon.js +1 -1
  21. package/build/cjs/assets/DimensionItemIcons/GenericIcon.js +1 -1
  22. package/build/cjs/assets/DimensionItemIcons/PeriodIcon.js +1 -1
  23. package/build/cjs/components/DataDimension/DataDimension.js +68 -10
  24. package/build/cjs/components/DataDimension/Info/CalculationInfo.js +3 -3
  25. package/build/cjs/components/DataDimension/Info/DataElementInfo.js +4 -4
  26. package/build/cjs/components/DataDimension/Info/DataElementOperandInfo.js +5 -5
  27. package/build/cjs/components/DataDimension/Info/DataSetInfo.js +3 -3
  28. package/build/cjs/components/DataDimension/Info/EventDataItemInfo.js +6 -6
  29. package/build/cjs/components/DataDimension/Info/IndicatorInfo.js +3 -3
  30. package/build/cjs/components/DataDimension/Info/InfoPopover.js +7 -3
  31. package/build/cjs/components/DataDimension/Info/InfoTable.js +1 -1
  32. package/build/cjs/components/DataDimension/Info/OptionInfo.js +70 -0
  33. package/build/cjs/components/DataDimension/Info/ProgramIndicatorInfo.js +9 -6
  34. package/build/cjs/components/DataDimension/ItemOptionsSelector/ItemOptionsSelector.js +257 -0
  35. package/build/cjs/components/DataDimension/ItemOptionsSelector/styles/ItemOptionSelector.style.js +10 -0
  36. package/build/cjs/components/DataDimension/{DataTypeSelector.js → ItemSelector/DataTypeSelector.js} +4 -4
  37. package/build/cjs/components/DataDimension/{DetailSelector.js → ItemSelector/DetailSelector.js} +2 -2
  38. package/build/cjs/components/DataDimension/{GroupSelector.js → ItemSelector/GroupSelector.js} +3 -3
  39. package/build/cjs/components/DataDimension/{ItemSelector.js → ItemSelector/ItemSelector.js} +76 -163
  40. package/build/cjs/components/DataDimension/{MetricSelector.js → ItemSelector/MetricSelector.js} +3 -3
  41. package/build/cjs/components/DataDimension/SelectedEmptyPlaceholder.js +17 -0
  42. package/build/cjs/components/DataDimension/SourceEmptyPlaceholder.js +113 -0
  43. package/build/cjs/components/DataDimension/TransferOption.js +34 -3
  44. package/build/cjs/components/DataDimension/styles/EmptyPlaceholder.style.js +10 -0
  45. package/build/cjs/components/DataDimension/styles/TransferOption.style.js +2 -2
  46. package/build/cjs/components/DynamicDimension/DynamicDimension.js +1 -1
  47. package/build/cjs/components/DynamicDimension/ItemSelector.js +64 -111
  48. package/build/cjs/components/styles/DimensionSelector.style.js +2 -2
  49. package/build/cjs/locales/cs/translations.json +18 -11
  50. package/build/cjs/locales/en/translations.json +18 -11
  51. package/build/cjs/locales/es/translations.json +18 -11
  52. package/build/cjs/locales/es_419/translations.json +18 -11
  53. package/build/cjs/locales/lo/translations.json +18 -11
  54. package/build/cjs/locales/nl/translations.json +18 -11
  55. package/build/cjs/locales/pt/translations.json +18 -11
  56. package/build/cjs/locales/vi/translations.json +18 -11
  57. package/build/cjs/locales/zh/translations.json +18 -11
  58. package/build/cjs/modules/dataTypes.js +3 -1
  59. package/build/cjs/modules/dimensionListItem.js +4 -0
  60. package/build/es/__demo__/FileMenu.stories.js +1 -9
  61. package/build/es/__demo__/data/avgTotalAggregationType.visualization.json +256 -1
  62. package/build/es/__demo__/data/deep.visualization.json +613 -310
  63. package/build/es/__demo__/data/deepWithFilters.visualization.json +0 -3
  64. package/build/es/__demo__/data/degs.visualization.json +2 -7
  65. package/build/es/__demo__/data/diseaseWeeks.visualization.json +317 -153
  66. package/build/es/__demo__/data/emptyColumns.visualization.json +2 -7
  67. package/build/es/__demo__/data/emptyRows.visualization.json +292 -297
  68. package/build/es/__demo__/data/hierarchy.visualization.json +197 -1
  69. package/build/es/__demo__/data/lastFiveYears.visualization.json +2 -7
  70. package/build/es/__demo__/data/narrative.visualization.json +2 -7
  71. package/build/es/__demo__/data/simple.visualization.json +115 -105
  72. package/build/es/__demo__/data/target-with-legend.visualization.json +370 -115
  73. package/build/es/__demo__/data/under-above-100.legendSet.json +87 -103
  74. package/build/es/__demo__/data/weeklyColumns.visualization.json +2 -7
  75. package/build/es/__fixtures__/json/chartAllFields.json +8 -33
  76. package/build/es/api/dimensions.js +12 -2
  77. package/build/es/api/expression.js +18 -8
  78. package/build/es/assets/DimensionItemIcons/CalculationIcon.js +1 -1
  79. package/build/es/assets/DimensionItemIcons/DataElementIcon.js +1 -1
  80. package/build/es/assets/DimensionItemIcons/GenericIcon.js +1 -1
  81. package/build/es/assets/DimensionItemIcons/PeriodIcon.js +1 -1
  82. package/build/es/components/DataDimension/DataDimension.js +69 -11
  83. package/build/es/components/DataDimension/Info/CalculationInfo.js +3 -3
  84. package/build/es/components/DataDimension/Info/DataElementInfo.js +4 -4
  85. package/build/es/components/DataDimension/Info/DataElementOperandInfo.js +5 -5
  86. package/build/es/components/DataDimension/Info/DataSetInfo.js +3 -3
  87. package/build/es/components/DataDimension/Info/EventDataItemInfo.js +6 -6
  88. package/build/es/components/DataDimension/Info/IndicatorInfo.js +3 -3
  89. package/build/es/components/DataDimension/Info/InfoPopover.js +9 -5
  90. package/build/es/components/DataDimension/Info/InfoTable.js +1 -1
  91. package/build/es/components/DataDimension/Info/OptionInfo.js +62 -0
  92. package/build/es/components/DataDimension/Info/ProgramIndicatorInfo.js +10 -7
  93. package/build/es/components/DataDimension/ItemOptionsSelector/ItemOptionsSelector.js +247 -0
  94. package/build/es/components/DataDimension/ItemOptionsSelector/styles/ItemOptionSelector.style.js +4 -0
  95. package/build/es/components/DataDimension/{DataTypeSelector.js → ItemSelector/DataTypeSelector.js} +4 -4
  96. package/build/es/components/DataDimension/{DetailSelector.js → ItemSelector/DetailSelector.js} +2 -2
  97. package/build/es/components/DataDimension/{GroupSelector.js → ItemSelector/GroupSelector.js} +3 -3
  98. package/build/es/components/DataDimension/{ItemSelector.js → ItemSelector/ItemSelector.js} +76 -163
  99. package/build/es/components/DataDimension/{MetricSelector.js → ItemSelector/MetricSelector.js} +3 -3
  100. package/build/es/components/DataDimension/SelectedEmptyPlaceholder.js +9 -0
  101. package/build/es/components/DataDimension/SourceEmptyPlaceholder.js +105 -0
  102. package/build/es/components/DataDimension/TransferOption.js +35 -4
  103. package/build/es/components/DataDimension/styles/EmptyPlaceholder.style.js +4 -0
  104. package/build/es/components/DataDimension/styles/TransferOption.style.js +2 -2
  105. package/build/es/components/DynamicDimension/DynamicDimension.js +1 -1
  106. package/build/es/components/DynamicDimension/ItemSelector.js +66 -113
  107. package/build/es/components/styles/DimensionSelector.style.js +2 -2
  108. package/build/es/locales/cs/translations.json +18 -11
  109. package/build/es/locales/en/translations.json +18 -11
  110. package/build/es/locales/es/translations.json +18 -11
  111. package/build/es/locales/es_419/translations.json +18 -11
  112. package/build/es/locales/lo/translations.json +18 -11
  113. package/build/es/locales/nl/translations.json +18 -11
  114. package/build/es/locales/pt/translations.json +18 -11
  115. package/build/es/locales/vi/translations.json +18 -11
  116. package/build/es/locales/zh/translations.json +18 -11
  117. package/build/es/modules/dataTypes.js +2 -0
  118. package/build/es/modules/dimensionListItem.js +5 -1
  119. package/package.json +2 -2
  120. /package/build/cjs/components/DataDimension/{styles → ItemSelector/styles}/DataTypeSelector.style.js +0 -0
  121. /package/build/cjs/components/DataDimension/{styles → ItemSelector/styles}/DetailSelector.style.js +0 -0
  122. /package/build/cjs/components/DataDimension/{styles → ItemSelector/styles}/GroupSelector.style.js +0 -0
  123. /package/build/cjs/components/DataDimension/{styles → ItemSelector/styles}/MetricSelector.style.js +0 -0
  124. /package/build/es/components/DataDimension/{styles → ItemSelector/styles}/DataTypeSelector.style.js +0 -0
  125. /package/build/es/components/DataDimension/{styles → ItemSelector/styles}/DetailSelector.style.js +0 -0
  126. /package/build/es/components/DataDimension/{styles → ItemSelector/styles}/GroupSelector.style.js +0 -0
  127. /package/build/es/components/DataDimension/{styles → ItemSelector/styles}/MetricSelector.style.js +0 -0
@@ -1,113 +1,97 @@
1
1
  {
2
2
  "code": "UA100",
3
+ "name": "Under or above 100%",
3
4
  "created": "2017-05-19T15:43:40.983",
4
5
  "lastUpdated": "2017-05-19T15:43:40.983",
5
- "name": "Under or above 100%",
6
- "href": "http://localhost:8080/api/32/legendSets/gFJUXah1uRH",
7
- "id": "gFJUXah1uRH",
8
- "displayName": "Under or above 100%",
9
- "publicAccess": "rw------",
10
- "externalAccess": false,
11
- "favorite": false,
12
- "lastUpdatedBy": {
13
- "id": "GOLswS44mh8"
6
+ "translations": [],
7
+ "createdBy": {
8
+ "id": "GOLswS44mh8",
9
+ "code": null,
10
+ "name": "Tom Wakiki",
11
+ "displayName": "Tom Wakiki",
12
+ "username": "system"
14
13
  },
15
- "access": {
16
- "read": true,
17
- "update": true,
18
- "externalize": false,
19
- "delete": true,
20
- "write": true,
21
- "manage": true
14
+ "favorites": [],
15
+ "lastUpdatedBy": {
16
+ "id": "GOLswS44mh8",
17
+ "code": null,
18
+ "name": "Tom Wakiki",
19
+ "displayName": "Tom Wakiki",
20
+ "username": "system"
22
21
  },
23
- "user": {
24
- "id": "GOLswS44mh8"
22
+ "sharing": {
23
+ "owner": "GOLswS44mh8",
24
+ "external": false,
25
+ "users": {},
26
+ "userGroups": {},
27
+ "public": "rw------"
25
28
  },
26
- "favorites": [
27
-
28
- ],
29
- "userGroupAccesses": [
30
-
31
- ],
32
- "attributeValues": [
33
-
34
- ],
35
29
  "legends": [
36
- {
37
- "lastUpdated": "2017-05-19T15:43:40.983",
38
- "id": "I0lBkYHTjPw",
39
- "created": "2017-05-19T15:43:40.983",
40
- "name": "Above 100%",
41
- "endValue": 900.0,
42
- "color": "#B4F3BD",
43
- "displayName": "Above 100%",
44
- "externalAccess": false,
45
- "startValue": 100.0,
46
- "favorite": false,
47
- "access": {
48
- "read": true,
49
- "update": true,
50
- "externalize": false,
51
- "delete": true,
52
- "write": true,
53
- "manage": true
54
- },
55
- "favorites": [
56
-
57
- ],
58
- "translations": [
59
-
60
- ],
61
- "userGroupAccesses": [
62
-
63
- ],
64
- "attributeValues": [
65
-
66
- ],
67
- "userAccesses": [
68
-
69
- ]
70
- },
71
- {
72
- "lastUpdated": "2017-05-19T15:43:40.984",
73
- "id": "qCU0BSbmwjX",
74
- "created": "2017-05-19T15:43:40.984",
75
- "name": "Under 100%",
76
- "endValue": 100.0,
77
- "color": "#FF9C89",
78
- "displayName": "Under 100%",
79
- "externalAccess": false,
80
- "startValue": 0.0,
81
- "favorite": false,
82
- "access": {
83
- "read": true,
84
- "update": true,
85
- "externalize": false,
86
- "delete": true,
87
- "write": true,
88
- "manage": true
30
+ {
31
+ "name": "Above 100%",
32
+ "created": "2017-05-19T15:43:40.983",
33
+ "lastUpdated": "2017-05-19T15:43:40.983",
34
+ "translations": [],
35
+ "favorites": [],
36
+ "sharing": { "external": false, "users": {}, "userGroups": {} },
37
+ "startValue": 100.0,
38
+ "endValue": 900.0,
39
+ "color": "#B4F3BD",
40
+ "access": {
41
+ "manage": true,
42
+ "externalize": false,
43
+ "write": true,
44
+ "read": true,
45
+ "update": true,
46
+ "delete": true
47
+ },
48
+ "displayName": "Above 100%",
49
+ "favorite": false,
50
+ "id": "I0lBkYHTjPw",
51
+ "attributeValues": []
89
52
  },
90
- "favorites": [
91
-
92
- ],
93
- "translations": [
94
-
95
- ],
96
- "userGroupAccesses": [
97
-
98
- ],
99
- "attributeValues": [
100
-
101
- ],
102
- "userAccesses": [
103
-
104
- ]
105
- }
106
- ],
107
- "translations": [
108
-
53
+ {
54
+ "name": "Under 100%",
55
+ "created": "2017-05-19T15:43:40.984",
56
+ "lastUpdated": "2017-05-19T15:43:40.984",
57
+ "translations": [],
58
+ "favorites": [],
59
+ "sharing": { "external": false, "users": {}, "userGroups": {} },
60
+ "startValue": 0.0,
61
+ "endValue": 100.0,
62
+ "color": "#FF9C89",
63
+ "access": {
64
+ "manage": true,
65
+ "externalize": false,
66
+ "write": true,
67
+ "read": true,
68
+ "update": true,
69
+ "delete": true
70
+ },
71
+ "displayName": "Under 100%",
72
+ "favorite": false,
73
+ "id": "qCU0BSbmwjX",
74
+ "attributeValues": []
75
+ }
109
76
  ],
110
- "userAccesses": [
111
-
112
- ]
113
- }
77
+ "access": {
78
+ "manage": true,
79
+ "externalize": false,
80
+ "write": true,
81
+ "read": true,
82
+ "update": true,
83
+ "delete": true
84
+ },
85
+ "displayName": "Under or above 100%",
86
+ "favorite": false,
87
+ "user": {
88
+ "id": "GOLswS44mh8",
89
+ "code": null,
90
+ "name": "Tom Wakiki",
91
+ "displayName": "Tom Wakiki",
92
+ "username": "system"
93
+ },
94
+ "href": "https://debug.dhis2.org/dev/api/legendSets/gFJUXah1uRH",
95
+ "id": "gFJUXah1uRH",
96
+ "attributeValues": []
97
+ }
@@ -3,7 +3,6 @@
3
3
  "id": "YXZjH1F9ntO",
4
4
  "created": "2020-09-07T13:01:07.853",
5
5
  "name": "TEST - Empty Columns Error 2",
6
- "publicAccess": "--------",
7
6
  "legendDisplayStyle": "FILL",
8
7
  "type": "PIVOT_TABLE",
9
8
  "hideEmptyColumns": false,
@@ -64,14 +63,11 @@
64
63
  "user": {
65
64
  "name": "Astride Traore",
66
65
  "displayName": "Astride Traore",
67
- "userCredentials": {
68
- "username": "admin"
69
- }
66
+ "username": "admin"
70
67
  },
71
68
  "translations": [],
72
69
  "yearlySeries": [],
73
70
  "interpretations": [],
74
- "userGroupAccesses": [],
75
71
  "subscribers": [],
76
72
  "optionalAxes": [],
77
73
  "columns": [
@@ -459,7 +455,6 @@
459
455
  ]
460
456
  }
461
457
  ],
462
- "userAccesses": [],
463
458
  "favorites": [],
464
459
  "filters": [
465
460
  {
@@ -489,4 +484,4 @@
489
484
  ]
490
485
  }
491
486
  ]
492
- }
487
+ }
@@ -3,7 +3,6 @@
3
3
  "id": "UlfTKWZWV4u",
4
4
  "created": "2018-04-13T14:48:36.803",
5
5
  "name": "ANC: 1 and 3 coverage Yearly",
6
- "publicAccess": "rw------",
7
6
  "type": "BAR",
8
7
  "subscribed": false,
9
8
  "displayDescription": "This chart allows us to compare the performance of districts and allows peers to measure their performance against each other. This implies we can spot poor performers as we all as top performers.",
@@ -39,9 +38,7 @@
39
38
  },
40
39
  "user": {
41
40
  "displayName": "John Traore",
42
- "userCredentials": {
43
- "username": "admin"
44
- }
41
+ "username": "admin"
45
42
  },
46
43
  "dataElementGroupSetDimensions": [],
47
44
  "attributeDimensions": [],
@@ -60,7 +57,6 @@
60
57
  "created": "2018-06-01T14:25:01.086",
61
58
  "name": "DU4EnxBgP3A",
62
59
  "displayName": "DU4EnxBgP3A",
63
- "publicAccess": "rw------",
64
60
  "type": "CHART",
65
61
  "externalAccess": false,
66
62
  "text": "<p>bla bla&nbsp;<a href=\"http://example.org\">test</a>&nbsp;and some smiles&nbsp;<img title=\"smiley\" alt=\"smiley\" width=\"23\" height=\"23\" src=\"http://localhost:8080/dhis-web-core-resource/ckeditor/4.6.1/plugins/smiley/images/regular_smile.png\" /></p>",
@@ -80,9 +76,7 @@
80
76
  "user": {
81
77
  "id": "xE7jOejl9FI",
82
78
  "displayName": "John Traore",
83
- "userCredentials": {
84
- "username": "admin"
85
- }
79
+ "username": "admin"
86
80
  },
87
81
  "chart": {
88
82
  "id": "UlfTKWZWV4u"
@@ -91,9 +85,7 @@
91
85
  "likedBy": [],
92
86
  "translations": [],
93
87
  "comments": [],
94
- "userGroupAccesses": [],
95
88
  "attributeValues": [],
96
- "userAccesses": [],
97
89
  "mentions": []
98
90
  },
99
91
  {
@@ -103,7 +95,6 @@
103
95
  "created": "2018-03-16T11:01:15.076",
104
96
  "name": "HBeV5W36cOx",
105
97
  "displayName": "HBeV5W36cOx",
106
- "publicAccess": "rw------",
107
98
  "type": "CHART",
108
99
  "externalAccess": false,
109
100
  "text": "test interpretation",
@@ -123,9 +114,7 @@
123
114
  "user": {
124
115
  "id": "xE7jOejl9FI",
125
116
  "displayName": "John Traore",
126
- "userCredentials": {
127
- "username": "admin"
128
- }
117
+ "username": "admin"
129
118
  },
130
119
  "chart": {
131
120
  "id": "UlfTKWZWV4u"
@@ -134,9 +123,7 @@
134
123
  "likedBy": [],
135
124
  "translations": [],
136
125
  "comments": [],
137
- "userGroupAccesses": [],
138
- "attributeValues": [],
139
- "userAccesses": []
126
+ "attributeValues": []
140
127
  },
141
128
  {
142
129
  "lastUpdated": "2018-10-10T18:20:04.272",
@@ -145,7 +132,6 @@
145
132
  "created": "2018-10-10T18:20:04.272",
146
133
  "name": "Db1s6CsNsca",
147
134
  "displayName": "Db1s6CsNsca",
148
- "publicAccess": "rw------",
149
135
  "type": "CHART",
150
136
  "externalAccess": false,
151
137
  "text": "Bo, Tonkolili and Western Area are the best performers.",
@@ -165,9 +151,7 @@
165
151
  "user": {
166
152
  "id": "GOLswS44mh8",
167
153
  "displayName": "Tom Wakiki",
168
- "userCredentials": {
169
- "username": "system"
170
- }
154
+ "username": "system"
171
155
  },
172
156
  "chart": {
173
157
  "id": "UlfTKWZWV4u"
@@ -176,9 +160,7 @@
176
160
  "likedBy": [],
177
161
  "translations": [],
178
162
  "comments": [],
179
- "userGroupAccesses": [],
180
- "attributeValues": [],
181
- "userAccesses": []
163
+ "attributeValues": []
182
164
  },
183
165
  {
184
166
  "lastUpdated": "2018-11-03T11:02:30.780",
@@ -187,7 +169,6 @@
187
169
  "created": "2018-11-03T11:02:30.780",
188
170
  "name": "c5sjWWhIPDE",
189
171
  "displayName": "c5sjWWhIPDE",
190
- "publicAccess": "--------",
191
172
  "type": "CHART",
192
173
  "externalAccess": false,
193
174
  "text": "ANC 1 looks low in Kono! What could be the reason?",
@@ -207,9 +188,7 @@
207
188
  "user": {
208
189
  "id": "GOLswS44mh8",
209
190
  "displayName": "Tom Wakiki",
210
- "userCredentials": {
211
- "username": "system"
212
- }
191
+ "username": "system"
213
192
  },
214
193
  "chart": {
215
194
  "id": "UlfTKWZWV4u"
@@ -218,12 +197,9 @@
218
197
  "likedBy": [],
219
198
  "translations": [],
220
199
  "comments": [],
221
- "userGroupAccesses": [],
222
- "attributeValues": [],
223
- "userAccesses": []
200
+ "attributeValues": []
224
201
  }
225
202
  ],
226
- "userGroupAccesses": [],
227
203
  "columns": [
228
204
  {
229
205
  "dimension": "dx",
@@ -245,7 +221,6 @@
245
221
  "categoryDimensions": [],
246
222
  "programIndicatorDimensions": [],
247
223
  "attributeValues": [],
248
- "userAccesses": [],
249
224
  "favorites": [],
250
225
  "dataDimensionItems": [
251
226
  {
@@ -51,6 +51,7 @@ const dataItemsQuery = exports.dataItemsQuery = {
51
51
  searchTerm,
52
52
  page
53
53
  } = _ref3;
54
+ let fields = `id,${nameProp}~rename(name),dimensionItemType,expression,optionSetId`;
54
55
  const filters = [];
55
56
 
56
57
  // TODO: Extract all of this logic out of the query?
@@ -62,11 +63,20 @@ const dataItemsQuery = exports.dataItemsQuery = {
62
63
  if (filter !== null && filter !== void 0 && filter.group && filter.group !== _dataTypes.DIMENSION_TYPE_ALL && [_dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM, _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR].includes(filter.dataType)) {
63
64
  filters.push(`programId:eq:${filter.group}`);
64
65
  }
66
+ if (filter !== null && filter !== void 0 && filter.dataItemId) {
67
+ // remove unnecessary fields
68
+ fields = `id,${nameProp}~rename(name),dimensionItemType`;
69
+ if (filter.dataType === _dataTypes.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT_OPTION) {
70
+ filters.push(`programDataElementId:eq:${filter.dataItemId}`);
71
+ } else if (filter.dataType === _dataTypes.DIMENSION_TYPE_PROGRAM_ATTRIBUTE_OPTION) {
72
+ filters.push(`programAttributeId:eq:${filter.dataItemId}`);
73
+ }
74
+ }
65
75
  if (searchTerm) {
66
76
  filters.push(`${nameProp}:ilike:${searchTerm}`);
67
77
  }
68
78
  return (0, _objectClean.default)({
69
- fields: `id,${nameProp}~rename(name),dimensionItemType,expression`,
79
+ fields,
70
80
  order: `${nameProp}:asc`,
71
81
  filter: filters,
72
82
  paging: true,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.validateProgramIndicatorExpressionMutation = exports.validateIndicatorExpressionMutation = exports.updateCalculationMutation = exports.deleteCalculationMutation = exports.createCalculationMutation = void 0;
6
+ exports.validateProgramIndicatorFilterMutation = exports.validateProgramIndicatorExpressionMutation = exports.validateIndicatorExpressionMutation = exports.updateCalculationMutation = exports.deleteCalculationMutation = exports.createCalculationMutation = void 0;
7
7
  const validateIndicatorExpressionMutation = exports.validateIndicatorExpressionMutation = {
8
8
  type: 'create',
9
9
  resource: 'indicators/expression/description',
@@ -24,14 +24,24 @@ const validateProgramIndicatorExpressionMutation = exports.validateProgramIndica
24
24
  return expression;
25
25
  }
26
26
  };
27
+ const validateProgramIndicatorFilterMutation = exports.validateProgramIndicatorFilterMutation = {
28
+ type: 'create',
29
+ resource: 'programIndicators/filter/description',
30
+ data: _ref3 => {
31
+ let {
32
+ filter
33
+ } = _ref3;
34
+ return filter;
35
+ }
36
+ };
27
37
  const createCalculationMutation = exports.createCalculationMutation = {
28
38
  type: 'create',
29
39
  resource: 'expressionDimensionItems',
30
- data: _ref3 => {
40
+ data: _ref4 => {
31
41
  let {
32
42
  name,
33
43
  expression
34
- } = _ref3;
44
+ } = _ref4;
35
45
  return {
36
46
  name,
37
47
  shortName: name,
@@ -42,17 +52,17 @@ const createCalculationMutation = exports.createCalculationMutation = {
42
52
  const updateCalculationMutation = exports.updateCalculationMutation = {
43
53
  type: 'json-patch',
44
54
  resource: 'expressionDimensionItems',
45
- id: _ref4 => {
55
+ id: _ref5 => {
46
56
  let {
47
57
  id
48
- } = _ref4;
58
+ } = _ref5;
49
59
  return id;
50
60
  },
51
- data: _ref5 => {
61
+ data: _ref6 => {
52
62
  let {
53
63
  name,
54
64
  expression
55
- } = _ref5;
65
+ } = _ref6;
56
66
  return [{
57
67
  op: 'add',
58
68
  path: '/name',
@@ -71,10 +81,10 @@ const updateCalculationMutation = exports.updateCalculationMutation = {
71
81
  const deleteCalculationMutation = exports.deleteCalculationMutation = {
72
82
  type: 'delete',
73
83
  resource: 'expressionDimensionItems',
74
- id: _ref6 => {
84
+ id: _ref7 => {
75
85
  let {
76
86
  id
77
- } = _ref6;
87
+ } = _ref7;
78
88
  return id;
79
89
  }
80
90
  };
@@ -16,5 +16,5 @@ var _default = exports.default = /*#__PURE__*/_react.default.createElement("svg"
16
16
  fillRule: "evenodd",
17
17
  clipRule: "evenodd",
18
18
  d: "M7 4H5V2H4V4H2V5H4V7H5V5H7V4ZM7 9.5H2V10.5H7V9.5ZM2 12H7V13H2V12ZM14 4H9V5H14V4ZM14 9.205L12.205 11L14 12.795L13.295 13.5L11.5 11.705L9.705 13.5L9 12.795L10.795 11L9 9.205L9.705 8.5L11.5 10.295L13.295 8.5L14 9.205Z",
19
- fill: "#404B5A"
19
+ fill: "currentColor"
20
20
  }));
@@ -13,5 +13,5 @@ var _default = exports.default = /*#__PURE__*/_react.default.createElement("svg"
13
13
  xmlns: "http://www.w3.org/2000/svg"
14
14
  }, /*#__PURE__*/_react.default.createElement("path", {
15
15
  d: "m8 5c1.65685425 0 3 1.34314575 3 3s-1.34314575 3-3 3-3-1.34314575-3-3 1.34314575-3 3-3zm0 1c-1.1045695 0-2 .8954305-2 2s.8954305 2 2 2 2-.8954305 2-2-.8954305-2-2-2z",
16
- fill: "#010101"
16
+ fill: "currentColor"
17
17
  }));
@@ -12,6 +12,6 @@ var _default = exports.default = /*#__PURE__*/_react.default.createElement("svg"
12
12
  height: "16",
13
13
  viewBox: "0 0 16 16"
14
14
  }, /*#__PURE__*/_react.default.createElement("path", {
15
- fill: "#6E7A8A",
15
+ fill: "currentColor",
16
16
  d: "M11,5 L11,11 L5,11 L5,5 L11,5 Z M10,6 L6,6 L6,10 L10,10 L10,6 Z"
17
17
  }));
@@ -12,6 +12,6 @@ var _default = exports.default = /*#__PURE__*/_react.default.createElement("svg"
12
12
  height: "16",
13
13
  viewBox: "0 0 16 16"
14
14
  }, /*#__PURE__*/_react.default.createElement("path", {
15
- fill: "#6E7A8A",
15
+ fill: "currentColor",
16
16
  d: "M8,4 C10.209139,4 12,5.790861 12,8 C12,10.209139 10.209139,12 8,12 C5.790861,12 4,10.209139 4,8 C4,5.790861 5.790861,4 8,4 Z M8,5 C6.34314575,5 5,6.34314575 5,8 C5,9.65685425 6.34314575,11 8,11 C9.65685425,11 11,9.65685425 11,8 C11,6.34314575 9.65685425,5 8,5 Z M8.5,6 L8.5,7.5 L9.5,7.5 L9.5,8.5 L7.5,8.5 L7.5,6 L8.5,6 Z"
17
17
  }));
@@ -9,10 +9,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _dataTypes = require("../../modules/dataTypes.js");
11
11
  var _predefinedDimensions = require("../../modules/predefinedDimensions.js");
12
- var _ItemSelector = _interopRequireDefault(require("./ItemSelector.js"));
12
+ var _InfoPopover = require("./Info/InfoPopover.js");
13
+ var _ItemOptionsSelector = require("./ItemOptionsSelector/ItemOptionsSelector.js");
14
+ var _ItemSelector = _interopRequireDefault(require("./ItemSelector/ItemSelector.js"));
13
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
19
  const DataDimensionCtx = /*#__PURE__*/(0, _react.createContext)({});
17
20
  const DataDimension = _ref => {
18
21
  let {
@@ -28,6 +31,7 @@ const DataDimension = _ref => {
28
31
  const {
29
32
  serverVersion
30
33
  } = (0, _appRuntime.useConfig)();
34
+ const itemsRef = (0, _react.useRef)(new Map());
31
35
  const filterDataTypesByVersion = (0, _react.useCallback)(dataTypes => dataTypes.filter(_ref2 => {
32
36
  let {
33
37
  id
@@ -38,36 +42,90 @@ const DataDimension = _ref => {
38
42
  );
39
43
  }), [serverVersion.minor]);
40
44
  const [dataTypes, setDataTypes] = (0, _react.useState)(filterDataTypesByVersion(enabledDataTypes || Object.values(_dataTypes.dataTypeMap)));
45
+ const supportsEDI = dataTypes.map(_ref3 => {
46
+ let {
47
+ id
48
+ } = _ref3;
49
+ return id;
50
+ }).includes(_dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM);
51
+ const [currentCalculation, setCurrentCalculation] = (0, _react.useState)();
52
+ const [currentDataItem, setCurrentDataItem] = (0, _react.useState)();
53
+ const [infoDataItem, setInfoDataItem] = (0, _react.useState)();
54
+ const selectedItems = (0, _react.useMemo)(() => selectedDimensions.map(item => ({
55
+ value: item.id,
56
+ label: item.name,
57
+ isActive: item.isActive,
58
+ type: item.type,
59
+ optionSetId: item.optionSetId,
60
+ expression: item.expression,
61
+ access: item.access
62
+ })), [selectedDimensions]);
41
63
  const onSelectItems = selectedItem => onSelect({
42
64
  dimensionId: _predefinedDimensions.DIMENSION_ID_DATA,
43
65
  items: selectedItem.map(item => ({
44
66
  id: item.value,
45
67
  name: item.label,
46
68
  type: item.type,
69
+ optionSetId: item.optionSetId,
47
70
  expression: item.expression
48
71
  }))
49
72
  });
50
73
  (0, _react.useEffect)(() => enabledDataTypes && setDataTypes(filterDataTypesByVersion(enabledDataTypes)), [enabledDataTypes, filterDataTypesByVersion]);
74
+ const onEditClick = dataItem => {
75
+ var _dataItem$access;
76
+ if (dataItem.type === _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM && !(((_dataItem$access = dataItem.access) === null || _dataItem$access === void 0 ? void 0 : _dataItem$access.write) === false) && supportsEDI) {
77
+ // calculation
78
+ setCurrentCalculation({
79
+ id: dataItem.value,
80
+ name: dataItem.label,
81
+ expression: dataItem.expression
82
+ });
83
+ } else if (dataItem.optionSetId) {
84
+ setCurrentDataItem({
85
+ id: dataItem.value,
86
+ name: dataItem.label,
87
+ type: dataItem.type,
88
+ optionSetId: dataItem.optionSetId
89
+ });
90
+ }
91
+ };
51
92
  return /*#__PURE__*/_react.default.createElement(DataDimensionCtx.Provider, {
52
93
  value: {
53
94
  visType,
54
95
  currentUser
55
96
  }
56
97
  }, /*#__PURE__*/_react.default.createElement(_ItemSelector.default, {
57
- selectedItems: selectedDimensions.map(item => ({
58
- value: item.id,
59
- label: item.name,
60
- isActive: item.isActive,
61
- type: item.type,
62
- expression: item.expression,
63
- access: item.access
64
- })),
98
+ selectedItems: selectedItems,
65
99
  onSelect: onSelectItems,
66
100
  displayNameProp: displayNameProp,
67
101
  infoBoxMessage: infoBoxMessage,
68
102
  dataTest: 'data-dimension',
69
103
  dataTypes: dataTypes,
70
- onEDISave: onCalculationSave
104
+ itemsRef: itemsRef,
105
+ supportsEDI: supportsEDI,
106
+ onEDISave: onCalculationSave,
107
+ isOptionViewMode: Boolean(currentDataItem),
108
+ currentCalculation: currentCalculation,
109
+ setCurrentCalculation: setCurrentCalculation,
110
+ infoDataItem: infoDataItem,
111
+ setInfoDataItem: setInfoDataItem,
112
+ onEditClick: onEditClick
113
+ }), currentDataItem && /*#__PURE__*/_react.default.createElement(_ItemOptionsSelector.ItemOptionsSelector, _extends({}, currentDataItem, {
114
+ selectedItems: selectedItems,
115
+ onSelect: onSelectItems,
116
+ displayNameProp: displayNameProp,
117
+ dataTest: 'data-dimension',
118
+ itemsRef: itemsRef,
119
+ infoDataItem: infoDataItem,
120
+ setInfoDataItem: setInfoDataItem,
121
+ onClose: () => setCurrentDataItem(),
122
+ onEditClick: onEditClick
123
+ })), infoDataItem && /*#__PURE__*/_react.default.createElement(_InfoPopover.InfoPopover, {
124
+ dataTest: 'data-dimension-info',
125
+ item: infoDataItem,
126
+ reference: itemsRef.current.get(infoDataItem.id),
127
+ onClose: () => setInfoDataItem(),
128
+ displayNameProp: displayNameProp
71
129
  }));
72
130
  };
73
131
  DataDimension.propTypes = {
@@ -100,7 +100,7 @@ const CalculationInfo = _ref3 => {
100
100
  };
101
101
  exports.CalculationInfo = CalculationInfo;
102
102
  CalculationInfo.propTypes = {
103
- displayNameProp: _propTypes.default.string,
104
- id: _propTypes.default.string,
105
- type: _propTypes.default.string
103
+ displayNameProp: _propTypes.default.string.isRequired,
104
+ id: _propTypes.default.string.isRequired,
105
+ type: _propTypes.default.string.isRequired
106
106
  };