@dhis2/analytics 20.6.5 → 21.0.0-alpha.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 (207) hide show
  1. package/build/cjs/__demo__/Filter.stories.js +2 -2
  2. package/build/cjs/__demo__/FixedPeriodSelect.stories.js +2 -2
  3. package/build/cjs/__demo__/OpenFileDialog.stories.js +1 -1
  4. package/build/cjs/__demo__/OrgUnitDimension.stories.js +95 -0
  5. package/build/cjs/__demo__/PivotTable.stories.js +2 -2
  6. package/build/cjs/api/analytics/AnalyticsBase.js +1 -1
  7. package/build/cjs/api/analytics/AnalyticsRequest.js +1 -1
  8. package/build/cjs/api/analytics/AnalyticsRequestBase.js +3 -3
  9. package/build/cjs/api/analytics/AnalyticsRequestPropertiesMixin.js +7 -7
  10. package/build/cjs/api/analytics/AnalyticsResponse.js +2 -2
  11. package/build/cjs/api/analytics/__tests__/AnalyticsAggregate.spec.js +11 -1
  12. package/build/cjs/api/analytics/__tests__/AnalyticsRequest.spec.js +9 -9
  13. package/build/cjs/api/analytics/__tests__/AnalyticsRequestBase.spec.js +4 -4
  14. package/build/cjs/api/analytics/utils.js +1 -1
  15. package/build/cjs/api/dimensions.js +37 -37
  16. package/build/cjs/api/organisationUnits.js +100 -46
  17. package/build/cjs/components/DataDimension/DataTypesSelector.js +3 -3
  18. package/build/cjs/components/DataDimension/DetailSelector.js +2 -2
  19. package/build/cjs/components/DataDimension/GroupSelector.js +9 -9
  20. package/build/cjs/components/DataDimension/ItemSelector.js +19 -19
  21. package/build/cjs/components/DataDimension/MetricSelector.js +3 -3
  22. package/build/cjs/components/DataDimension/styles/DataTypesSelector.style.js +1 -1
  23. package/build/cjs/components/DataDimension/styles/DetailSelector.style.js +1 -1
  24. package/build/cjs/components/DataDimension/styles/GroupSelector.style.js +1 -1
  25. package/build/cjs/components/DataDimension/styles/MetricSelector.style.js +1 -1
  26. package/build/cjs/components/DimensionMenu.js +10 -10
  27. package/build/cjs/components/DimensionsPanel/DimensionsPanel.js +2 -2
  28. package/build/cjs/components/DimensionsPanel/List/DimensionItem.js +5 -5
  29. package/build/cjs/components/DimensionsPanel/List/DimensionLabel.js +2 -2
  30. package/build/cjs/components/DimensionsPanel/List/DimensionList.js +10 -10
  31. package/build/cjs/components/DimensionsPanel/List/styles/DimensionList.style.js +1 -1
  32. package/build/cjs/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
  33. package/build/cjs/components/DynamicDimension/DynamicDimension.js +4 -4
  34. package/build/cjs/components/DynamicDimension/ItemSelector.js +8 -8
  35. package/build/cjs/components/DynamicDimension/styles/DynamicDimension.style.js +1 -1
  36. package/build/cjs/components/FileMenu/DeleteDialog.js +2 -2
  37. package/build/cjs/components/FileMenu/FileMenu.js +5 -5
  38. package/build/cjs/components/FileMenu/FileMenu.styles.js +1 -1
  39. package/build/cjs/components/FileMenu/GetLinkDialog.js +1 -1
  40. package/build/cjs/components/FileMenu/RenameDialog.js +2 -2
  41. package/build/cjs/components/FileMenu/SaveAsDialog.js +2 -2
  42. package/build/cjs/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -1
  43. package/build/cjs/components/FileMenu/__tests__/RenameDialog.spec.js +1 -1
  44. package/build/cjs/components/FileMenu/__tests__/SaveAsDialog.spec.js +1 -1
  45. package/build/cjs/components/FileMenu/utils.js +3 -3
  46. package/build/cjs/components/Filter/Filter.js +1 -1
  47. package/build/cjs/components/Filter/styles/Filter.style.js +1 -1
  48. package/build/cjs/components/LegendKey/LegendKey.js +9 -9
  49. package/build/cjs/components/LegendKey/styles/LegendKey.style.js +1 -1
  50. package/build/cjs/components/OpenFileDialog/CustomSelectOption.js +2 -2
  51. package/build/cjs/components/OpenFileDialog/OpenFileDialog.js +21 -21
  52. package/build/cjs/components/OpenFileDialog/OpenFileDialog.styles.js +1 -1
  53. package/build/cjs/components/OpenFileDialog/styles/CustomSelectOption.style.js +1 -1
  54. package/build/cjs/components/Options/VisualizationOptions.js +2 -2
  55. package/build/cjs/components/Options/styles/VisualizationOptions.style.js +10 -10
  56. package/build/cjs/components/OrgUnitDimension/OrgUnitDimension.js +163 -203
  57. package/build/cjs/components/OrgUnitDimension/OrgUnitDimensionOld.js +244 -0
  58. package/build/cjs/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +5 -2
  59. package/build/cjs/components/PeriodDimension/FixedPeriodFilter.js +5 -5
  60. package/build/cjs/components/PeriodDimension/FixedPeriodSelect.js +4 -4
  61. package/build/cjs/components/PeriodDimension/PeriodTransfer.js +11 -11
  62. package/build/cjs/components/PeriodDimension/RelativePeriodFilter.js +2 -2
  63. package/build/cjs/components/PeriodDimension/styles/FixedPeriodSelect.style.js +1 -1
  64. package/build/cjs/components/PeriodDimension/styles/PeriodFilter.style.js +1 -1
  65. package/build/cjs/components/PeriodDimension/utils/fixedPeriods.js +49 -49
  66. package/build/cjs/components/PivotTable/PivotTable.js +2 -2
  67. package/build/cjs/components/PivotTable/PivotTableCell.js +3 -3
  68. package/build/cjs/components/PivotTable/PivotTableColumnHeaderCell.js +2 -2
  69. package/build/cjs/components/PivotTable/PivotTableContainer.js +2 -2
  70. package/build/cjs/components/PivotTable/PivotTableEngineContext.js +2 -2
  71. package/build/cjs/components/PivotTable/PivotTableSortIcon.js +2 -2
  72. package/build/cjs/components/PivotTable/PivotTableTitleRow.js +4 -4
  73. package/build/cjs/components/PivotTable/PivotTableValueCell.js +2 -2
  74. package/build/cjs/components/PivotTable/styles/PivotTable.style.js +3 -3
  75. package/build/cjs/components/TransferOption.js +5 -5
  76. package/build/cjs/components/styles/DimensionSelector.style.js +1 -1
  77. package/build/cjs/components/styles/TransferOption.style.js +1 -1
  78. package/build/cjs/index.js +6 -6
  79. package/build/cjs/locales/en/translations.json +5 -0
  80. package/build/cjs/modules/axis.js +1 -1
  81. package/build/cjs/modules/layoutUiRules/rules.js +1 -1
  82. package/build/cjs/modules/ouIdHelper/index.js +9 -3
  83. package/build/cjs/modules/pivotTable/PivotTableEngine.js +3 -3
  84. package/build/cjs/modules/pivotTable/measureText.js +1 -1
  85. package/build/cjs/modules/relativeItems/index.js +1 -1
  86. package/build/cjs/modules/visTypes.js +1 -1
  87. package/build/cjs/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +1 -1
  88. package/build/cjs/visualizations/config/adapters/dhis_highcharts/axis.js +2 -2
  89. package/build/cjs/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -1
  90. package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +2 -2
  91. package/build/cjs/visualizations/config/adapters/dhis_highcharts/legend.js +19 -8
  92. package/build/cjs/visualizations/config/adapters/dhis_highcharts/legendSet.js +1 -1
  93. package/build/cjs/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
  94. package/build/cjs/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +1 -1
  95. package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/index.js +1 -1
  96. package/build/cjs/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -1
  97. package/build/cjs/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -1
  98. package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +3 -3
  99. package/build/cjs/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +2 -2
  100. package/build/cjs/visualizations/config/generators/dhis/singleValue.js +5 -5
  101. package/build/cjs/visualizations/config/index.js +3 -3
  102. package/build/cjs/visualizations/store/adapters/dhis_dhis/index.js +1 -1
  103. package/build/cjs/visualizations/store/adapters/dhis_highcharts/index.js +1 -1
  104. package/build/cjs/visualizations/store/adapters/dhis_highcharts/twoCategory.js +1 -1
  105. package/build/cjs/visualizations/store/index.js +2 -2
  106. package/build/cjs/visualizations/util/axisId.js +1 -1
  107. package/build/cjs/visualizations/util/getFilterText.js +3 -3
  108. package/build/es/__demo__/OpenFileDialog.stories.js +1 -1
  109. package/build/es/__demo__/OrgUnitDimension.stories.js +84 -0
  110. package/build/es/api/analytics/AnalyticsBase.js +1 -1
  111. package/build/es/api/analytics/AnalyticsRequest.js +1 -1
  112. package/build/es/api/analytics/AnalyticsRequestBase.js +3 -3
  113. package/build/es/api/analytics/AnalyticsRequestPropertiesMixin.js +7 -7
  114. package/build/es/api/analytics/AnalyticsResponse.js +2 -2
  115. package/build/es/api/analytics/__tests__/AnalyticsAggregate.spec.js +11 -1
  116. package/build/es/api/analytics/__tests__/AnalyticsRequest.spec.js +9 -9
  117. package/build/es/api/analytics/__tests__/AnalyticsRequestBase.spec.js +4 -4
  118. package/build/es/api/analytics/utils.js +1 -1
  119. package/build/es/api/dimensions.js +39 -39
  120. package/build/es/api/organisationUnits.js +93 -43
  121. package/build/es/components/DataDimension/DataTypesSelector.js +3 -3
  122. package/build/es/components/DataDimension/DetailSelector.js +2 -2
  123. package/build/es/components/DataDimension/GroupSelector.js +7 -7
  124. package/build/es/components/DataDimension/ItemSelector.js +17 -17
  125. package/build/es/components/DataDimension/MetricSelector.js +3 -3
  126. package/build/es/components/DataDimension/styles/DataTypesSelector.style.js +1 -1
  127. package/build/es/components/DataDimension/styles/DetailSelector.style.js +1 -1
  128. package/build/es/components/DataDimension/styles/GroupSelector.style.js +1 -1
  129. package/build/es/components/DataDimension/styles/MetricSelector.style.js +1 -1
  130. package/build/es/components/DimensionMenu.js +10 -10
  131. package/build/es/components/DimensionsPanel/List/DimensionItem.js +3 -3
  132. package/build/es/components/DimensionsPanel/List/DimensionList.js +8 -8
  133. package/build/es/components/DimensionsPanel/List/styles/DimensionList.style.js +1 -1
  134. package/build/es/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
  135. package/build/es/components/DynamicDimension/DynamicDimension.js +4 -4
  136. package/build/es/components/DynamicDimension/ItemSelector.js +6 -6
  137. package/build/es/components/DynamicDimension/styles/DynamicDimension.style.js +1 -1
  138. package/build/es/components/FileMenu/FileMenu.js +3 -3
  139. package/build/es/components/FileMenu/FileMenu.styles.js +1 -1
  140. package/build/es/components/FileMenu/GetLinkDialog.js +1 -1
  141. package/build/es/components/FileMenu/__tests__/DeleteDialog.spec.js +1 -1
  142. package/build/es/components/FileMenu/__tests__/RenameDialog.spec.js +1 -1
  143. package/build/es/components/FileMenu/__tests__/SaveAsDialog.spec.js +1 -1
  144. package/build/es/components/FileMenu/utils.js +3 -3
  145. package/build/es/components/Filter/Filter.js +1 -1
  146. package/build/es/components/Filter/styles/Filter.style.js +1 -1
  147. package/build/es/components/LegendKey/LegendKey.js +9 -9
  148. package/build/es/components/LegendKey/styles/LegendKey.style.js +1 -1
  149. package/build/es/components/OpenFileDialog/CustomSelectOption.js +2 -2
  150. package/build/es/components/OpenFileDialog/OpenFileDialog.js +19 -19
  151. package/build/es/components/OpenFileDialog/OpenFileDialog.styles.js +1 -1
  152. package/build/es/components/OpenFileDialog/styles/CustomSelectOption.style.js +1 -1
  153. package/build/es/components/Options/styles/VisualizationOptions.style.js +10 -10
  154. package/build/es/components/OrgUnitDimension/OrgUnitDimension.js +163 -204
  155. package/build/es/components/OrgUnitDimension/OrgUnitDimensionOld.js +220 -0
  156. package/build/es/components/OrgUnitDimension/styles/OrgUnitDimension.style.js +3 -2
  157. package/build/es/components/PeriodDimension/FixedPeriodFilter.js +5 -5
  158. package/build/es/components/PeriodDimension/FixedPeriodSelect.js +2 -2
  159. package/build/es/components/PeriodDimension/PeriodTransfer.js +9 -9
  160. package/build/es/components/PeriodDimension/RelativePeriodFilter.js +2 -2
  161. package/build/es/components/PeriodDimension/styles/FixedPeriodSelect.style.js +1 -1
  162. package/build/es/components/PeriodDimension/styles/PeriodFilter.style.js +1 -1
  163. package/build/es/components/PeriodDimension/utils/fixedPeriods.js +49 -49
  164. package/build/es/components/PivotTable/PivotTableCell.js +3 -3
  165. package/build/es/components/PivotTable/PivotTableColumnHeaderCell.js +2 -2
  166. package/build/es/components/PivotTable/PivotTableContainer.js +2 -2
  167. package/build/es/components/PivotTable/PivotTableSortIcon.js +2 -2
  168. package/build/es/components/PivotTable/PivotTableTitleRow.js +2 -2
  169. package/build/es/components/PivotTable/styles/PivotTable.style.js +3 -3
  170. package/build/es/components/TransferOption.js +5 -5
  171. package/build/es/components/styles/DimensionSelector.style.js +1 -1
  172. package/build/es/components/styles/TransferOption.style.js +1 -1
  173. package/build/es/index.js +1 -1
  174. package/build/es/locales/en/translations.json +5 -0
  175. package/build/es/modules/axis.js +1 -1
  176. package/build/es/modules/layoutUiRules/rules.js +1 -1
  177. package/build/es/modules/ouIdHelper/index.js +5 -2
  178. package/build/es/modules/pivotTable/PivotTableEngine.js +3 -3
  179. package/build/es/modules/pivotTable/measureText.js +1 -1
  180. package/build/es/modules/relativeItems/index.js +2 -2
  181. package/build/es/modules/visTypes.js +1 -1
  182. package/build/es/visualizations/config/adapters/dhis_highcharts/addTrendLines.js +1 -1
  183. package/build/es/visualizations/config/adapters/dhis_highcharts/axis.js +2 -2
  184. package/build/es/visualizations/config/adapters/dhis_highcharts/getAxisTitle.js +1 -1
  185. package/build/es/visualizations/config/adapters/dhis_highcharts/legend.js +19 -8
  186. package/build/es/visualizations/config/adapters/dhis_highcharts/legendSet.js +1 -1
  187. package/build/es/visualizations/config/adapters/dhis_highcharts/plotOptions.js +1 -1
  188. package/build/es/visualizations/config/adapters/dhis_highcharts/subtitle/index.js +1 -1
  189. package/build/es/visualizations/config/adapters/dhis_highcharts/title/index.js +1 -1
  190. package/build/es/visualizations/config/adapters/dhis_highcharts/title/scatter.js +1 -1
  191. package/build/es/visualizations/config/adapters/dhis_highcharts/xAxis/index.js +1 -1
  192. package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/gauge.js +3 -3
  193. package/build/es/visualizations/config/adapters/dhis_highcharts/yAxis/index.js +2 -2
  194. package/build/es/visualizations/config/generators/dhis/singleValue.js +5 -5
  195. package/build/es/visualizations/config/index.js +3 -3
  196. package/build/es/visualizations/store/adapters/dhis_dhis/index.js +1 -1
  197. package/build/es/visualizations/store/adapters/dhis_highcharts/index.js +1 -1
  198. package/build/es/visualizations/store/adapters/dhis_highcharts/twoCategory.js +1 -1
  199. package/build/es/visualizations/store/index.js +2 -2
  200. package/build/es/visualizations/util/axisId.js +1 -1
  201. package/build/es/visualizations/util/getFilterText.js +3 -3
  202. package/package.json +1 -1
  203. package/CHANGELOG.md +0 -2756
  204. package/build/cjs/api/organisationUnits-dataEngine.js +0 -119
  205. package/build/cjs/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +0 -96
  206. package/build/es/api/organisationUnits-dataEngine.js +0 -96
  207. package/build/es/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +0 -86
@@ -24,14 +24,14 @@ const getQuery = type => ({
24
24
  }) => {
25
25
  const queryParams = {
26
26
  filter: filters,
27
- fields: "id,type,displayName,title,displayDescription,created,lastUpdated,user,access,href",
27
+ fields: `id,type,displayName,title,displayDescription,created,lastUpdated,user,access,href`,
28
28
  paging: true,
29
29
  pageSize: 8,
30
30
  page
31
31
  };
32
32
 
33
33
  if (sortDirection !== 'default') {
34
- queryParams.order = "".concat(sortField, ":").concat(sortDirection);
34
+ queryParams.order = `${sortField}:${sortDirection}`;
35
35
  }
36
36
 
37
37
  return queryParams;
@@ -70,11 +70,11 @@ export const OpenFileDialog = ({
70
70
 
71
71
  switch (filters.createdBy) {
72
72
  case CREATED_BY_ALL_BUT_CURRENT_USER:
73
- queryFilters.push("user.id:!eq:".concat(currentUser.id));
73
+ queryFilters.push(`user.id:!eq:${currentUser.id}`);
74
74
  break;
75
75
 
76
76
  case CREATED_BY_CURRENT_USER:
77
- queryFilters.push("user.id:eq:".concat(currentUser.id));
77
+ queryFilters.push(`user.id:eq:${currentUser.id}`);
78
78
  break;
79
79
 
80
80
  case CREATED_BY_ALL:
@@ -91,12 +91,12 @@ export const OpenFileDialog = ({
91
91
  break;
92
92
 
93
93
  default:
94
- queryFilters.push("type:eq:".concat(filters.visType));
94
+ queryFilters.push(`type:eq:${filters.visType}`);
95
95
  break;
96
96
  }
97
97
 
98
98
  if (filters.searchTerm) {
99
- queryFilters.push("name:ilike:".concat(filters.searchTerm));
99
+ queryFilters.push(`name:ilike:${filters.searchTerm}`);
100
100
  } // for ER 2.38 only show line list ER types
101
101
 
102
102
 
@@ -174,11 +174,11 @@ export const OpenFileDialog = ({
174
174
  }, /*#__PURE__*/React.createElement(ModalTitle, null, getTranslatedString(type, 'modalTitle')), /*#__PURE__*/React.createElement(ModalContent, null, /*#__PURE__*/React.createElement(Box, {
175
175
  minHeight: "496px"
176
176
  }, /*#__PURE__*/React.createElement("div", {
177
- className: "jsx-".concat(styles.__hash) + " " + "search-and-filter-bar"
177
+ className: `jsx-${styles.__hash}` + " " + "search-and-filter-bar"
178
178
  }, /*#__PURE__*/React.createElement("div", {
179
- className: "jsx-".concat(styles.__hash) + " " + "search-field-container"
179
+ className: `jsx-${styles.__hash}` + " " + "search-field-container"
180
180
  }, /*#__PURE__*/React.createElement(NameFilter, {
181
- dataTest: "".concat(cypressSelector, "-name-filter"),
181
+ dataTest: `${cypressSelector}-name-filter`,
182
182
  value: nameFilterValue,
183
183
  onChange: value => {
184
184
  setNameFilterValue(value);
@@ -188,14 +188,14 @@ export const OpenFileDialog = ({
188
188
  }), 200));
189
189
  }
190
190
  })), type === AO_TYPE_VISUALIZATION && /*#__PURE__*/React.createElement("div", {
191
- className: "jsx-".concat(styles.__hash) + " " + "type-field-container"
191
+ className: `jsx-${styles.__hash}` + " " + "type-field-container"
192
192
  }, /*#__PURE__*/React.createElement(VisTypeFilter, {
193
193
  selected: filters.visType,
194
194
  onChange: value => setFilters({ ...filters,
195
195
  visType: value
196
196
  })
197
197
  })), /*#__PURE__*/React.createElement("div", {
198
- className: "jsx-".concat(styles.__hash) + " " + "created-by-field-container"
198
+ className: `jsx-${styles.__hash}` + " " + "created-by-field-container"
199
199
  }, /*#__PURE__*/React.createElement(CreatedByFilter, {
200
200
  selected: filters.createdBy,
201
201
  onChange: value => setFilters({ ...filters,
@@ -233,25 +233,25 @@ export const OpenFileDialog = ({
233
233
  }, /*#__PURE__*/React.createElement(Box, {
234
234
  height: "384px"
235
235
  }, /*#__PURE__*/React.createElement("div", {
236
- className: "jsx-".concat(styles.__hash) + " " + "info-cell"
236
+ className: `jsx-${styles.__hash}` + " " + "info-cell"
237
237
  }, /*#__PURE__*/React.createElement(CircularLoader, {
238
238
  small: true
239
239
  }), /*#__PURE__*/React.createElement("span", {
240
- className: "jsx-".concat(styles.__hash) + " " + "info-text"
240
+ className: `jsx-${styles.__hash}` + " " + "info-text"
241
241
  }, getTranslatedString(type, 'loadingText')))))), !loading && !(data !== null && data !== void 0 && data.files[AOTypeMap[type].apiEndpoint].length) > 0 && /*#__PURE__*/React.createElement(DataTableRow, null, /*#__PURE__*/React.createElement(DataTableCell, {
242
242
  large: true
243
243
  }, /*#__PURE__*/React.createElement(Box, {
244
244
  minHeight: "384px"
245
245
  }, /*#__PURE__*/React.createElement("div", {
246
- className: "jsx-".concat(styles.__hash) + " " + "info-cell"
246
+ className: `jsx-${styles.__hash}` + " " + "info-cell"
247
247
  }, /*#__PURE__*/React.createElement("div", {
248
- className: "jsx-".concat(styles.__hash) + " " + "info-container"
248
+ className: `jsx-${styles.__hash}` + " " + "info-container"
249
249
  }, !isEqual(filters, defaultFilters) ? /*#__PURE__*/React.createElement("span", {
250
- className: "jsx-".concat(styles.__hash) + " " + "info-text"
250
+ className: `jsx-${styles.__hash}` + " " + "info-text"
251
251
  }, getTranslatedString(type, 'noFilteredDataText')) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
252
- className: "jsx-".concat(styles.__hash) + " " + "info-text"
252
+ className: `jsx-${styles.__hash}` + " " + "info-text"
253
253
  }, getTranslatedString(type, 'noDataText')), /*#__PURE__*/React.createElement("div", {
254
- className: "jsx-".concat(styles.__hash) + " " + "info-button"
254
+ className: `jsx-${styles.__hash}` + " " + "info-button"
255
255
  }, /*#__PURE__*/React.createElement(Button, {
256
256
  onClick: () => {
257
257
  onNew();
@@ -264,7 +264,7 @@ export const OpenFileDialog = ({
264
264
  }))), (data === null || data === void 0 ? void 0 : data.files[AOTypeMap[type].apiEndpoint].length) > 0 && /*#__PURE__*/React.createElement(DataTableToolbar, {
265
265
  position: "bottom"
266
266
  }, /*#__PURE__*/React.createElement("div", {
267
- className: "jsx-".concat(styles.__hash) + " " + "pagination-controls"
267
+ className: `jsx-${styles.__hash}` + " " + "pagination-controls"
268
268
  }, /*#__PURE__*/React.createElement(PaginationControls, {
269
269
  page: page,
270
270
  pager: data.files.pager,
@@ -1,3 +1,3 @@
1
1
  import { colors, spacers } from '@dhis2/ui';
2
- export const styles = [".data-table-body.jsx-2890213967{min-height:465px;}", ".pagination-controls.jsx-2890213967{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}", ".search-and-filter-bar.jsx-2890213967{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:".concat(spacers.dp8, ";}"), ".search-field-container.jsx-2890213967{min-width:220px;}", ".type-field-container.jsx-2890213967,.created-by-field-container.jsx-2890213967{min-width:180px;}", ".info-cell.jsx-2890213967{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin:".concat(spacers.dp32, " 0;}"), ".info-container.jsx-2890213967{max-width:400px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}", ".info-text.jsx-2890213967{text-align:center;font-size:14px;line-height:19px;color:".concat(colors.grey700, ";}"), ".info-button.jsx-2890213967{margin-top:".concat(spacers.dp12, ";}")];
2
+ export const styles = [".data-table-body.jsx-2890213967{min-height:465px;}", ".pagination-controls.jsx-2890213967{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}", `.search-and-filter-bar.jsx-2890213967{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:${spacers.dp8};}`, ".search-field-container.jsx-2890213967{min-width:220px;}", ".type-field-container.jsx-2890213967,.created-by-field-container.jsx-2890213967{min-width:180px;}", `.info-cell.jsx-2890213967{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin:${spacers.dp32} 0;}`, ".info-container.jsx-2890213967{max-width:400px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}", `.info-text.jsx-2890213967{text-align:center;font-size:14px;line-height:19px;color:${colors.grey700};}`, `.info-button.jsx-2890213967{margin-top:${spacers.dp12};}`];
3
3
  styles.__hash = "2890213967";
@@ -1,4 +1,4 @@
1
1
  import { colors, spacers } from '@dhis2/ui';
2
- const _defaultExport = ["div.jsx-1267200705{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;font-size:14px;-webkit-text-decoration:none;text-decoration:none;color:".concat(colors.grey900, ";padding:").concat(spacers.dp8, " ").concat(spacers.dp12, ";}"), "div.jsx-1267200705:hover{background-color:".concat(colors.grey200, ";}"), "div.jsx-1267200705:active,div.active.jsx-1267200705{background-color:".concat(colors.teal700, ";color:").concat(colors.white, ";cursor:auto;}"), "div.disabled.jsx-1267200705{color:".concat(colors.grey500, ";cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}"), "div.disabled.jsx-1267200705:hover{background-color:initial;}", "span.label.jsx-1267200705{margin-left:".concat(spacers.dp8, ";}")];
2
+ const _defaultExport = [`div.jsx-1267200705{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;font-size:14px;-webkit-text-decoration:none;text-decoration:none;color:${colors.grey900};padding:${spacers.dp8} ${spacers.dp12};}`, `div.jsx-1267200705:hover{background-color:${colors.grey200};}`, `div.jsx-1267200705:active,div.active.jsx-1267200705{background-color:${colors.teal700};color:${colors.white};cursor:auto;}`, `div.disabled.jsx-1267200705{color:${colors.grey500};cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, "div.disabled.jsx-1267200705:hover{background-color:initial;}", `span.label.jsx-1267200705{margin-left:${spacers.dp8};}`];
3
3
  _defaultExport.__hash = "1267200705";
4
4
  export default _defaultExport;
@@ -12,19 +12,19 @@ export const modalContent = {
12
12
  export const tabBar = {
13
13
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
14
14
  id: "3103009923"
15
- }, ["div.jsx-3103009923{padding-right:".concat(spacers.dp24, ";}")]),
15
+ }, [`div.jsx-3103009923{padding-right:${spacers.dp24};}`]),
16
16
  className: "jsx-3103009923"
17
17
  };
18
18
  export const tabContent = {
19
19
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
20
20
  id: "2208787536"
21
- }, ["div.jsx-2208787536{overflow:auto;padding-right:".concat(spacers.dp24, ";}")]),
21
+ }, [`div.jsx-2208787536{overflow:auto;padding-right:${spacers.dp24};}`]),
22
22
  className: "jsx-2208787536"
23
23
  };
24
24
  export const tabSection = {
25
25
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
26
26
  id: "1427514941"
27
- }, ["div.jsx-1427514941{padding:".concat(spacers.dp16, " 0;}"), "div.jsx-1427514941:not(:last-child){border-bottom:1px solid ".concat(colors.grey300, ";margin-bottom:").concat(spacers.dp8, ";}")]),
27
+ }, [`div.jsx-1427514941{padding:${spacers.dp16} 0;}`, `div.jsx-1427514941:not(:last-child){border-bottom:1px solid ${colors.grey300};margin-bottom:${spacers.dp8};}`]),
28
28
  className: "jsx-1427514941"
29
29
  };
30
30
  export const tabSectionContent = {
@@ -36,37 +36,37 @@ export const tabSectionContent = {
36
36
  export const tabSectionTitle = {
37
37
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
38
38
  id: "3115295887"
39
- }, ["span.jsx-3115295887{display:inline-block;padding-bottom:".concat(spacers.dp12, ";font-size:15px;color:").concat(colors.grey900, ";font-weight:500;-webkit-letter-spacing:0.2px;-moz-letter-spacing:0.2px;-ms-letter-spacing:0.2px;letter-spacing:0.2px;}")]),
39
+ }, [`span.jsx-3115295887{display:inline-block;padding-bottom:${spacers.dp12};font-size:15px;color:${colors.grey900};font-weight:500;-webkit-letter-spacing:0.2px;-moz-letter-spacing:0.2px;-ms-letter-spacing:0.2px;letter-spacing:0.2px;}`]),
40
40
  className: "jsx-3115295887"
41
41
  };
42
42
  export const tabSectionTitleMargin = {
43
43
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
44
44
  id: "642558349"
45
- }, ["span.jsx-642558349{margin-top:".concat(spacers.dp8, ";}")]),
45
+ }, [`span.jsx-642558349{margin-top:${spacers.dp8};}`]),
46
46
  className: "jsx-642558349"
47
47
  };
48
48
  export const tabSectionOption = {
49
49
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
50
50
  id: "1665807213"
51
- }, ["div.jsx-1665807213:not(:last-child):not(.inline){padding-bottom:".concat(spacers.dp16, ";}")]),
51
+ }, [`div.jsx-1665807213:not(:last-child):not(.inline){padding-bottom:${spacers.dp16};}`]),
52
52
  className: "jsx-1665807213"
53
53
  };
54
54
  export const tabSectionOptionItem = {
55
55
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
56
56
  id: "2983019948"
57
- }, ["div.jsx-2983019948:not(:last-child){padding-bottom:".concat(spacers.dp8, ";}")]),
57
+ }, [`div.jsx-2983019948:not(:last-child){padding-bottom:${spacers.dp8};}`]),
58
58
  className: "jsx-2983019948"
59
59
  };
60
60
  export const tabSectionOptionText = {
61
61
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
62
62
  id: "3330936769"
63
- }, ["p.jsx-3330936769{margin:0;padding-bottom:".concat(spacers.dp8, ";font-size:14px;line-height:19px;color:").concat(colors.grey700, ";}")]),
63
+ }, [`p.jsx-3330936769{margin:0;padding-bottom:${spacers.dp8};font-size:14px;line-height:19px;color:${colors.grey700};}`]),
64
64
  className: "jsx-3330936769"
65
65
  };
66
66
  export const tabSectionOptionToggleable = {
67
67
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
68
68
  id: "684239008"
69
- }, ["div.jsx-684239008{margin:".concat(spacers.dp4, " 0 0 23px;}")]),
69
+ }, [`div.jsx-684239008{margin:${spacers.dp4} 0 0 23px;}`]),
70
70
  className: "jsx-684239008"
71
71
  };
72
72
  export const tabSectionToggleableSubsection = {
@@ -84,6 +84,6 @@ export const tabSectionOptionComplexInline = {
84
84
  export const tabSectionOptionIcon = {
85
85
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
86
86
  id: "112181591"
87
- }, ["span.jsx-112181591{vertical-align:top;margin-right:".concat(spacers.dp4, ";color:").concat(colors.grey600, ";}")]),
87
+ }, [`span.jsx-112181591{vertical-align:top;margin-right:${spacers.dp4};color:${colors.grey600};}`]),
88
88
  className: "jsx-112181591"
89
89
  };
@@ -1,220 +1,179 @@
1
1
  import _JSXStyle from "styled-jsx/style";
2
-
3
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
-
5
- import { OrgUnitSelector, userOrgUnits } from '@dhis2/d2-ui-org-unit-dialog';
6
- import { CircularLoader, colors } from '@dhis2/ui';
7
- import sortBy from 'lodash/sortBy';
2
+ import { useDataEngine } from '@dhis2/app-runtime';
3
+ import { OrganisationUnitTree, Checkbox, MultiSelect, MultiSelectOption } from '@dhis2/ui';
4
+ import cx from 'classnames';
8
5
  import PropTypes from 'prop-types';
9
- import React, { Component, Fragment } from 'react';
10
- import { apiFetchOrganisationUnitGroups, apiFetchOrganisationUnitLevels, apiFetchOrganisationUnits } from '../../api/organisationUnits';
11
- import { ouIdHelper } from '../../modules/ouIdHelper';
6
+ import React, { useEffect, useState } from 'react';
7
+ import { apiFetchOrganisationUnitGroups, apiFetchOrganisationUnitLevels } from '../../api/organisationUnits';
8
+ import i18n from '../../locales/index.js';
9
+ import { ouIdHelper, USER_ORG_UNIT, USER_ORG_UNIT_CHILDREN, USER_ORG_UNIT_GRANDCHILDREN } from '../../modules/ouIdHelper';
12
10
  import { DIMENSION_ID_ORGUNIT } from '../../modules/predefinedDimensions';
13
11
  import styles from './styles/OrgUnitDimension.style';
14
- export const defaultState = {
15
- root: undefined,
16
- roots: undefined,
17
- // use "selected" property for cloning org units while user org unit(s) is (are) selected
18
- selected: [],
19
- ouLevels: [],
20
- ouGroups: [],
21
- showOrgUnitsTree: true
22
- };
23
-
24
- class OrgUnitDimension extends Component {
25
- constructor(props) {
26
- super(props);
27
-
28
- _defineProperty(this, "showOrgUnitsTree", () => {
29
- this.setState({
30
- showOrgUnitsTree: true
31
- });
32
- });
33
-
34
- _defineProperty(this, "hideOrgUnitsTree", () => {
35
- this.setState({
36
- showOrgUnitsTree: false
37
- });
38
- });
39
-
40
- _defineProperty(this, "getUserOrgUnitsFromIds", ids => {
41
- return userOrgUnits.filter(ou => ids.includes(ou.id));
42
- });
43
-
44
- _defineProperty(this, "onLevelChange", event => {
45
- const levelIds = event.target.value.filter(id => !!id);
46
- this.props.onSelect({
47
- dimensionId: DIMENSION_ID_ORGUNIT,
48
- items: [...this.props.ouItems.filter(ou => !ouIdHelper.hasLevelPrefix(ou.id)), ...levelIds.map(id => {
49
- const levelOu = this.state.ouLevels.find(ou => ou.id === id);
50
- return { ...levelOu,
51
- id: ouIdHelper.addLevelPrefix(levelOu.id)
52
- };
53
- })]
54
- });
55
- });
56
-
57
- _defineProperty(this, "onGroupChange", event => {
58
- const groupIds = event.target.value.filter(id => !!id);
59
- this.props.onSelect({
60
- dimensionId: DIMENSION_ID_ORGUNIT,
61
- items: [...this.props.ouItems.filter(ou => !ouIdHelper.hasGroupPrefix(ou.id)), ...groupIds.map(id => {
62
- const groupOu = this.state.ouGroups.find(ou => ou.id === id);
63
- return { ...groupOu,
64
- id: ouIdHelper.addGroupPrefix(id)
65
- };
66
- })]
12
+ const DYNAMIC_ORG_UNITS = [USER_ORG_UNIT, USER_ORG_UNIT_CHILDREN, USER_ORG_UNIT_GRANDCHILDREN];
13
+
14
+ const OrgUnitDimension = ({
15
+ root,
16
+ selected,
17
+ onSelect
18
+ }) => {
19
+ const [ouLevels, setOuLevels] = useState([]);
20
+ const [ouGroups, setOuGroups] = useState([]);
21
+ const dataEngine = useDataEngine();
22
+
23
+ const onSelectItems = selectedItem => {
24
+ const {
25
+ id,
26
+ checked,
27
+ displayName,
28
+ path
29
+ } = selectedItem;
30
+ let result = [...selected];
31
+
32
+ if (checked && DYNAMIC_ORG_UNITS.includes(id)) {
33
+ result = [...result.filter(item => DYNAMIC_ORG_UNITS.includes(item.id)), {
34
+ id,
35
+ displayName
36
+ }];
37
+ } else if (checked) {
38
+ result.push({
39
+ id,
40
+ path,
41
+ name: displayName
67
42
  });
68
- });
43
+ } else {
44
+ result = [...result.filter(item => item.id !== id)];
45
+ }
69
46
 
70
- _defineProperty(this, "onDeselectAllClick", () => this.props.onDeselect({
47
+ return onSelect({
71
48
  dimensionId: DIMENSION_ID_ORGUNIT,
72
- itemIdsToRemove: this.props.ouItems.map(ou => ou.id)
73
- }));
74
-
75
- _defineProperty(this, "loadOrgUnitTree", (d2, displayNameProperty) => {
76
- apiFetchOrganisationUnits(d2, displayNameProperty).then(rootLevel => rootLevel.toArray()).then(roots => {
77
- this.setState({
78
- roots,
79
- root: roots[0]
80
- });
81
- });
82
- });
83
-
84
- _defineProperty(this, "loadOrgUnitGroups", (d2, displayNameProperty) => {
85
- apiFetchOrganisationUnitGroups(d2, displayNameProperty).then(organisationUnitGroups => this.setState({
86
- ouGroups: organisationUnitGroups
87
- }));
88
- });
89
-
90
- _defineProperty(this, "loadOrgUnitLevels", d2 => {
91
- apiFetchOrganisationUnitLevels(d2).then(organisationUnitLevels => this.setState({
92
- ouLevels: sortBy(organisationUnitLevels, ['level'])
93
- }));
94
- });
95
-
96
- _defineProperty(this, "handleOrgUnitClick", (event, orgUnit) => {
97
- const selected = this.props.ouItems;
98
-
99
- if (selected.some(ou => ou.path === orgUnit.path)) {
100
- this.props.onDeselect({
101
- dimensionId: DIMENSION_ID_ORGUNIT,
102
- itemIdsToRemove: [orgUnit.id]
103
- });
104
- } else {
105
- this.props.onSelect({
106
- dimensionId: DIMENSION_ID_ORGUNIT,
107
- items: [...selected, { ...orgUnit,
108
- name: orgUnit.name || orgUnit.displayName
109
- }]
110
- });
111
- }
49
+ items: result
112
50
  });
113
-
114
- _defineProperty(this, "handleUserOrgUnitClick", (event, checked) => {
115
- if (checked) {
116
- if (!this.state.selected.length) {
117
- this.setState({
118
- selected: this.props.ouItems.slice()
119
- });
120
- }
121
-
122
- this.props.onSelect({
123
- dimensionId: DIMENSION_ID_ORGUNIT,
124
- items: [...this.props.ouItems.filter(ou => this.userOrgUnitIds.includes(ou.id)), userOrgUnits.find(ou => ou.id === event.target.name)]
125
- });
126
- } else {
127
- if (this.props.ouItems.length === 1 && this.state.selected.length > 0) {
128
- this.props.onSelect({
129
- dimensionId: DIMENSION_ID_ORGUNIT,
130
- items: this.state.selected
131
- });
132
- } else {
133
- this.props.onDeselect({
134
- dimensionId: DIMENSION_ID_ORGUNIT,
135
- itemIdsToRemove: [event.target.name]
136
- });
137
- }
138
- }
139
- });
140
-
141
- _defineProperty(this, "handleMultipleOrgUnitsSelect", orgUnits => {
142
- const selected = this.props.ouItems;
143
- this.props.onSelect({
144
- dimensionId: DIMENSION_ID_ORGUNIT,
145
- items: [...selected, ...orgUnits.reduce((obj, ou) => {
146
- // avoid duplicates when clicking "Select children" multiple times
147
- if (!selected.find(i => i.id === ou.id)) {
148
- obj.push({ ...ou,
149
- name: ou.name || ou.displayName
150
- });
151
- }
152
-
153
- return obj;
154
- }, [])]
155
- });
51
+ };
52
+
53
+ useEffect(() => {
54
+ const doFetchOuLevels = async () => {
55
+ const result = await apiFetchOrganisationUnitLevels(dataEngine);
56
+ result.sort((a, b) => a.level > b.level ? 1 : -1);
57
+ setOuLevels(result);
58
+ };
59
+
60
+ const doFetchOuGroups = async () => {
61
+ const result = await apiFetchOrganisationUnitGroups(dataEngine);
62
+ setOuGroups(result);
63
+ };
64
+
65
+ doFetchOuLevels();
66
+ doFetchOuGroups();
67
+ }, [dataEngine]);
68
+
69
+ const onLevelChange = ids => {
70
+ const items = ids.map(id => ({
71
+ id: ouIdHelper.addLevelPrefix(id),
72
+ name: ouLevels.find(level => level.id === id).displayName
73
+ }));
74
+ onSelect({
75
+ dimensionId: DIMENSION_ID_ORGUNIT,
76
+ items: [...selected.filter(ou => !ouIdHelper.hasLevelPrefix(ou.id)), ...items]
156
77
  });
78
+ };
157
79
 
158
- _defineProperty(this, "render", () => {
159
- const ids = this.props.ouItems.map(ou => ou.id);
160
- const selected = this.props.ouItems.filter(ou => !this.userOrgUnitIds.includes(ou.id) && !ouIdHelper.hasLevelPrefix(ou.id) && !ouIdHelper.hasGroupPrefix(ou.id));
161
- const userOrgUnits = this.getUserOrgUnitsFromIds(ids);
162
- const level = ids.filter(ouIdHelper.hasLevelPrefix).map(ouIdHelper.removePrefix);
163
- const group = ids.filter(ouIdHelper.hasGroupPrefix).map(ouIdHelper.removePrefix);
164
- return /*#__PURE__*/React.createElement(Fragment, null, this.state.root && this.state.showOrgUnitsTree && /*#__PURE__*/React.createElement(OrgUnitSelector, {
165
- d2: this.props.d2,
166
- root: this.state.root,
167
- roots: this.state.roots,
168
- selected: selected,
169
- userOrgUnits: userOrgUnits,
170
- level: level,
171
- group: group,
172
- levelOptions: this.state.ouLevels,
173
- groupOptions: this.state.ouGroups,
174
- onLevelChange: this.onLevelChange,
175
- onGroupChange: this.onGroupChange,
176
- onDeselectAllClick: this.onDeselectAllClick,
177
- handleUserOrgUnitClick: this.handleUserOrgUnitClick,
178
- handleOrgUnitClick: this.handleOrgUnitClick,
179
- handleMultipleOrgUnitsSelect: this.handleMultipleOrgUnitsSelect,
180
- checkboxColor: "secondary",
181
- deselectAllTooltipFontColor: colors.grey900,
182
- deselectAllTooltipBackgroundColor: colors.grey300,
183
- displayNameProperty: this.props.displayNameProperty,
184
- isUserDataViewFallback: true
185
- }), !this.state.root && /*#__PURE__*/React.createElement("div", {
186
- className: "jsx-".concat(styles.__hash) + " " + "loader"
187
- }, /*#__PURE__*/React.createElement(CircularLoader, null)), /*#__PURE__*/React.createElement(_JSXStyle, {
188
- id: styles.__hash
189
- }, styles));
80
+ const onGroupChange = ids => {
81
+ const items = ids.map(id => ({
82
+ id: ouIdHelper.addGroupPrefix(id),
83
+ name: ouGroups.find(group => group.id === id).displayName
84
+ }));
85
+ onSelect({
86
+ dimensionId: DIMENSION_ID_ORGUNIT,
87
+ items: [...selected.filter(ou => !ouIdHelper.hasGroupPrefix(ou.id)), ...items]
190
88
  });
191
-
192
- this.state = defaultState;
193
- this.userOrgUnitIds = userOrgUnits.map(ou => ou.id);
194
- this.loadOrgUnitTree(props.d2, props.displayNameProperty);
195
- this.loadOrgUnitGroups(props.d2, props.displayNameProperty);
196
- this.loadOrgUnitLevels(props.d2);
197
- }
198
-
199
- componentDidUpdate(prevProps) {
200
- const previousId = prevProps.current ? prevProps.current.id : null;
201
- const currentId = this.props.current ? this.props.current.id : null; // remount org units selector component to ensure
202
- // only selected org units are expanded
203
-
204
- if (previousId !== currentId) {
205
- this.hideOrgUnitsTree();
206
- setTimeout(this.showOrgUnitsTree, 0);
207
- }
208
- }
209
-
210
- }
89
+ };
90
+
91
+ return /*#__PURE__*/React.createElement("div", {
92
+ className: `jsx-${styles.__hash}` + " " + "container"
93
+ }, /*#__PURE__*/React.createElement("div", {
94
+ className: `jsx-${styles.__hash}` + " " + "userOrgUnitsWrapper"
95
+ }, /*#__PURE__*/React.createElement(Checkbox, {
96
+ label: i18n.t('User organisation unit'),
97
+ checked: selected.some(item => item.id === USER_ORG_UNIT),
98
+ onChange: ({
99
+ checked
100
+ }) => onSelectItems({
101
+ id: USER_ORG_UNIT,
102
+ checked,
103
+ displayName: i18n.t('User organisation unit')
104
+ }),
105
+ dense: true
106
+ }), /*#__PURE__*/React.createElement(Checkbox, {
107
+ label: i18n.t('User sub-units'),
108
+ checked: selected.some(item => item.id === USER_ORG_UNIT_CHILDREN),
109
+ onChange: ({
110
+ checked
111
+ }) => onSelectItems({
112
+ id: USER_ORG_UNIT_CHILDREN,
113
+ checked,
114
+ displayName: i18n.t('User sub-units')
115
+ }),
116
+ dense: true
117
+ }), /*#__PURE__*/React.createElement(Checkbox, {
118
+ label: i18n.t('User sub-x2-units'),
119
+ checked: selected.some(item => item.id === USER_ORG_UNIT_GRANDCHILDREN),
120
+ onChange: ({
121
+ checked
122
+ }) => onSelectItems({
123
+ id: USER_ORG_UNIT_GRANDCHILDREN,
124
+ checked,
125
+ displayName: i18n.t('User sub-x2-units')
126
+ }),
127
+ dense: true
128
+ })), /*#__PURE__*/React.createElement("div", {
129
+ className: `jsx-${styles.__hash}` + " " + (cx('orgUnitTreeWrapper', {
130
+ disabled: selected.some(item => DYNAMIC_ORG_UNITS.includes(item.id))
131
+ }) || "")
132
+ }, /*#__PURE__*/React.createElement(OrganisationUnitTree, {
133
+ roots: root,
134
+ initiallyExpanded: [root, ...selected.filter(item => !DYNAMIC_ORG_UNITS.includes(item.id) && !ouIdHelper.hasLevelPrefix(item.id) && !ouIdHelper.hasGroupPrefix(item.id)).map(item => item.path)],
135
+ selected: selected.filter(item => !DYNAMIC_ORG_UNITS.includes(item.id) && !ouIdHelper.hasLevelPrefix(item.id) && !ouIdHelper.hasGroupPrefix(item.id)).map(item => item.path),
136
+ onChange: onSelectItems
137
+ })), /*#__PURE__*/React.createElement("div", {
138
+ className: `jsx-${styles.__hash}` + " " + (cx('selectsWrapper', {
139
+ disabled: selected.some(item => DYNAMIC_ORG_UNITS.includes(item.id))
140
+ }) || "")
141
+ }, /*#__PURE__*/React.createElement(MultiSelect, {
142
+ selected: ouLevels.length ? selected.filter(item => ouIdHelper.hasLevelPrefix(item.id)).map(item => ouIdHelper.removePrefix(item.id)) : [],
143
+ onChange: ({
144
+ selected
145
+ }) => onLevelChange(selected),
146
+ placeholder: i18n.t('Select a level'),
147
+ loading: !ouLevels.length,
148
+ dense: true
149
+ }, ouLevels.map(level => /*#__PURE__*/React.createElement(MultiSelectOption, {
150
+ key: level.id,
151
+ value: level.id,
152
+ label: level.displayName
153
+ }))), /*#__PURE__*/React.createElement(MultiSelect, {
154
+ selected: ouGroups.length ? selected.filter(item => ouIdHelper.hasGroupPrefix(item.id)).map(item => ouIdHelper.removePrefix(item.id)) : [],
155
+ onChange: ({
156
+ selected
157
+ }) => onGroupChange(selected),
158
+ placeholder: i18n.t('Select a group'),
159
+ loading: !ouGroups.length,
160
+ dense: true
161
+ }, ouGroups.map(group => /*#__PURE__*/React.createElement(MultiSelectOption, {
162
+ key: group.id,
163
+ value: group.id,
164
+ label: group.displayName
165
+ })))), /*#__PURE__*/React.createElement(_JSXStyle, {
166
+ id: styles.__hash
167
+ }, styles));
168
+ };
211
169
 
212
170
  OrgUnitDimension.propTypes = {
213
- current: PropTypes.object,
214
- d2: PropTypes.object,
215
- displayNameProperty: PropTypes.string,
216
- ouItems: PropTypes.array,
217
- onDeselect: PropTypes.func,
171
+ root: PropTypes.string,
172
+ selected: PropTypes.arrayOf(PropTypes.shape({
173
+ id: PropTypes.string.isRequired,
174
+ name: PropTypes.string.isRequired,
175
+ path: PropTypes.string
176
+ })),
218
177
  onSelect: PropTypes.func
219
178
  };
220
179
  export default OrgUnitDimension;