@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
@@ -7,21 +7,23 @@ exports.default = void 0;
7
7
  var _style = _interopRequireDefault(require("styled-jsx/style"));
8
8
  var _appRuntime = require("@dhis2/app-runtime");
9
9
  var _ui = require("@dhis2/ui");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
10
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
- var _dimensions = require("../../api/dimensions.js");
13
- var _index = _interopRequireDefault(require("../../locales/index.js"));
14
- var _dataSets = require("../../modules/dataSets.js");
15
- var _dataTypes = require("../../modules/dataTypes.js");
16
- var _dimensionListItem = require("../../modules/dimensionListItem.js");
17
- var _dimensionSelectorHelper = require("../../modules/dimensionSelectorHelper.js");
18
- var _utils = require("../../modules/utils.js");
19
- var _DimensionSelectorStyle = _interopRequireDefault(require("../styles/DimensionSelector.style.js"));
20
- var _CalculationModal = _interopRequireDefault(require("./Calculation/CalculationModal.js"));
13
+ var _dimensions = require("../../../api/dimensions.js");
14
+ var _index = _interopRequireDefault(require("../../../locales/index.js"));
15
+ var _dataSets = require("../../../modules/dataSets.js");
16
+ var _dataTypes = require("../../../modules/dataTypes.js");
17
+ var _dimensionListItem = require("../../../modules/dimensionListItem.js");
18
+ var _dimensionSelectorHelper = require("../../../modules/dimensionSelectorHelper.js");
19
+ var _utils = require("../../../modules/utils.js");
20
+ var _DimensionSelectorStyle = _interopRequireDefault(require("../../styles/DimensionSelector.style.js"));
21
+ var _CalculationModal = _interopRequireDefault(require("../Calculation/CalculationModal.js"));
22
+ var _SelectedEmptyPlaceholder = require("../SelectedEmptyPlaceholder.js");
23
+ var _SourceEmptyPlaceholder = require("../SourceEmptyPlaceholder.js");
24
+ var _TransferOption = require("../TransferOption.js");
21
25
  var _DataTypeSelector = _interopRequireDefault(require("./DataTypeSelector.js"));
22
26
  var _GroupSelector = _interopRequireDefault(require("./GroupSelector.js"));
23
- var _InfoPopover = require("./Info/InfoPopover.js");
24
- var _TransferOption = require("./TransferOption.js");
25
27
  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); }
26
28
  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; }
27
29
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -85,11 +87,6 @@ LeftHeader.propTypes = {
85
87
  setSubGroup: _propTypes.default.func,
86
88
  subGroup: _propTypes.default.string
87
89
  };
88
- const EmptySelection = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
89
- className: `jsx-${_DimensionSelectorStyle.default.__hash}` + " " + "emptyList"
90
- }, _index.default.t('No items selected')), /*#__PURE__*/_react.default.createElement(_style.default, {
91
- id: _DimensionSelectorStyle.default.__hash
92
- }, _DimensionSelectorStyle.default));
93
90
  const RightHeader = _ref3 => {
94
91
  let {
95
92
  infoBoxMessage
@@ -109,99 +106,7 @@ const RightHeader = _ref3 => {
109
106
  RightHeader.propTypes = {
110
107
  infoBoxMessage: _propTypes.default.string
111
108
  };
112
- const SourceEmptyPlaceholder = _ref4 => {
113
- let {
114
- loading,
115
- searchTerm,
116
- options,
117
- noItemsMessage,
118
- dataType,
119
- dataTest
120
- } = _ref4;
121
- let message = '';
122
- if (!loading && !options.length && !searchTerm) {
123
- if (noItemsMessage) {
124
- message = noItemsMessage;
125
- } else {
126
- switch (dataType) {
127
- case _dataTypes.DIMENSION_TYPE_INDICATOR:
128
- message = _index.default.t('No indicators found');
129
- break;
130
- case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
131
- message = _index.default.t('No data elements found');
132
- break;
133
- case _dataTypes.DIMENSION_TYPE_DATA_SET:
134
- message = _index.default.t('No data sets found');
135
- break;
136
- case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
137
- message = _index.default.t('No event data items found');
138
- break;
139
- case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
140
- message = _index.default.t('No program indicators found');
141
- break;
142
- case _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM:
143
- message = _index.default.t('No calculations found');
144
- break;
145
- default:
146
- message = _index.default.t('No data');
147
- break;
148
- }
149
- }
150
- } else if (!loading && !options.length && searchTerm) {
151
- switch (dataType) {
152
- case _dataTypes.DIMENSION_TYPE_INDICATOR:
153
- message = _index.default.t('No indicators found for "{{- searchTerm}}"', {
154
- searchTerm
155
- });
156
- break;
157
- case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
158
- message = _index.default.t('No data elements found for "{{- searchTerm}}"', {
159
- searchTerm
160
- });
161
- break;
162
- case _dataTypes.DIMENSION_TYPE_DATA_SET:
163
- message = _index.default.t('No data sets found for "{{- searchTerm}}"', {
164
- searchTerm
165
- });
166
- break;
167
- case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
168
- message = _index.default.t('No event data items found for "{{- searchTerm}}"', {
169
- searchTerm
170
- });
171
- break;
172
- case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
173
- message = _index.default.t('No program indicators found for "{{- searchTerm}}"', {
174
- searchTerm
175
- });
176
- break;
177
- case _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM:
178
- message = _index.default.t('No calculations found for "{{- searchTerm}}"', {
179
- searchTerm
180
- });
181
- break;
182
- default:
183
- message = _index.default.t('Nothing found for "{{- searchTerm}}"', {
184
- searchTerm
185
- });
186
- break;
187
- }
188
- }
189
- return message && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
190
- "data-test": dataTest,
191
- className: `jsx-${_DimensionSelectorStyle.default.__hash}` + " " + "emptyList"
192
- }, message), /*#__PURE__*/_react.default.createElement(_style.default, {
193
- id: _DimensionSelectorStyle.default.__hash
194
- }, _DimensionSelectorStyle.default));
195
- };
196
- SourceEmptyPlaceholder.propTypes = {
197
- dataTest: _propTypes.default.string,
198
- dataType: _propTypes.default.string,
199
- loading: _propTypes.default.bool,
200
- noItemsMessage: _propTypes.default.string,
201
- options: _propTypes.default.array,
202
- searchTerm: _propTypes.default.string
203
- };
204
- const ItemSelector = _ref5 => {
109
+ const ItemSelector = _ref4 => {
205
110
  let {
206
111
  selectedItems,
207
112
  noItemsMessage,
@@ -209,11 +114,18 @@ const ItemSelector = _ref5 => {
209
114
  rightFooter,
210
115
  displayNameProp,
211
116
  infoBoxMessage,
117
+ itemsRef,
118
+ currentCalculation,
119
+ setCurrentCalculation,
120
+ infoDataItem,
121
+ setInfoDataItem,
212
122
  dataTypes,
213
123
  dataTest,
214
- onEDISave
215
- } = _ref5;
216
- const itemsRef = (0, _react.useRef)(new Map());
124
+ onEDISave,
125
+ onEditClick,
126
+ isOptionViewMode,
127
+ supportsEDI
128
+ } = _ref4;
217
129
  const [state, setState] = (0, _react.useState)({
218
130
  searchTerm: '',
219
131
  dataTypes,
@@ -224,16 +136,8 @@ const ItemSelector = _ref5 => {
224
136
  },
225
137
  options: [],
226
138
  loading: true,
227
- nextPage: 1,
228
- supportsEDI: dataTypes.map(_ref6 => {
229
- let {
230
- id
231
- } = _ref6;
232
- return id;
233
- }).includes(_dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM)
139
+ nextPage: 1
234
140
  });
235
- const [currentCalculation, setCurrentCalculation] = (0, _react.useState)();
236
- const [currentDataItem, setCurrentDataItem] = (0, _react.useState)();
237
141
  const debouncedSearchTerm = (0, _utils.useDebounce)(state.searchTerm, 500);
238
142
  const dataEngine = (0, _appRuntime.useDataEngine)();
239
143
  const setSearchTerm = searchTerm => setState(state => ({
@@ -283,7 +187,8 @@ const ItemSelector = _ref5 => {
283
187
  value: item.id,
284
188
  disabled: item.disabled,
285
189
  type: item.dimensionItemType,
286
- expression: item.expression
190
+ expression: item.expression,
191
+ optionSetId: item.optionSetId
287
192
  });
288
193
  }
289
194
  });
@@ -308,19 +213,22 @@ const ItemSelector = _ref5 => {
308
213
  };
309
214
  (0, _utils.useDidUpdateEffect)(() => {
310
215
  fetchItems(1);
311
- }, [debouncedSearchTerm, state.filter]);
312
- const onChange = newSelected => {
313
- onSelect(newSelected.map(value => {
314
- const matchingItem = [...state.options, ...selectedItems].find(item => item.value === value);
216
+ }, [debouncedSearchTerm, state.filter]); // does this effect dep work?
217
+
218
+ const onChange = selectedIds => {
219
+ const newSelectedItems = selectedIds.map(id => {
220
+ const matchingItem = [...state.options, ...selectedItems].find(item => item.value === id);
315
221
  return {
316
- value,
222
+ value: id,
317
223
  label: matchingItem.label,
318
224
  type: matchingItem.type,
225
+ optionSetId: matchingItem.optionSetId,
319
226
  ...(matchingItem.expression ? {
320
227
  expression: matchingItem.expression
321
228
  } : {})
322
229
  };
323
- }));
230
+ });
231
+ onSelect(newSelectedItems);
324
232
  };
325
233
  const onEndReached = () => {
326
234
  if (state.nextPage) {
@@ -331,17 +239,13 @@ const ItemSelector = _ref5 => {
331
239
  const item = selectedItems.find(item => item.value === value);
332
240
  return !item || item.isActive;
333
241
  };
334
- const getItemType = value => {
335
- var _find;
336
- return (_find = [...state.options, ...selectedItems].find(item => item.value === value)) === null || _find === void 0 ? void 0 : _find.type;
337
- };
338
- const onSaveCalculation = async _ref7 => {
242
+ const onSaveCalculation = async _ref5 => {
339
243
  let {
340
244
  id,
341
245
  name,
342
246
  expression,
343
247
  isNew
344
- } = _ref7;
248
+ } = _ref5;
345
249
  onEDISave({
346
250
  id,
347
251
  name,
@@ -364,10 +268,10 @@ const ItemSelector = _ref5 => {
364
268
  }]);
365
269
  }
366
270
  };
367
- const onDeleteCalculation = _ref8 => {
271
+ const onDeleteCalculation = _ref6 => {
368
272
  let {
369
273
  id
370
- } = _ref8;
274
+ } = _ref6;
371
275
  // close the modal
372
276
  setCurrentCalculation();
373
277
 
@@ -404,22 +308,30 @@ const ItemSelector = _ref5 => {
404
308
  }
405
309
  }));
406
310
  return /*#__PURE__*/_react.default.createElement("div", {
407
- className: `jsx-${_DimensionSelectorStyle.default.__hash}` + " " + "transfer-container"
311
+ className: `jsx-${_DimensionSelectorStyle.default.__hash}` + " " + ((0, _classnames.default)('transfer-container', {
312
+ hidden: isOptionViewMode
313
+ }) || "")
408
314
  }, /*#__PURE__*/_react.default.createElement(_ui.Transfer, {
409
- onChange: _ref9 => {
315
+ onChange: _ref7 => {
410
316
  let {
411
317
  selected
412
- } = _ref9;
318
+ } = _ref7;
413
319
  return onChange(selected);
414
320
  },
415
321
  selected: selectedItems.map(item => item.value),
416
- options: [...state.options, ...selectedItems],
322
+ options: [...state.options,
323
+ // remove items already in the options list
324
+ ...selectedItems.filter(selectedItem => {
325
+ var _state$options;
326
+ return !((_state$options = state.options) !== null && _state$options !== void 0 && _state$options.find(option => option.value === selectedItem.value));
327
+ })],
417
328
  loading: state.loading,
418
329
  loadingPicked: state.loading,
419
- sourceEmptyPlaceholder: /*#__PURE__*/_react.default.createElement(SourceEmptyPlaceholder, {
330
+ sourceEmptyPlaceholder: /*#__PURE__*/_react.default.createElement(_SourceEmptyPlaceholder.SourceEmptyPlaceholder, {
420
331
  loading: state.loading,
421
332
  searchTerm: debouncedSearchTerm,
422
333
  options: state.options,
334
+ allItemsSelectedMessage: state.options.length === selectedItems.length && !state.nextPage ? _index.default.t('All available items are already selected') : '',
423
335
  noItemsMessage: noItemsMessage,
424
336
  dataType: state.filter.dataType,
425
337
  dataTest: `${dataTest}-empty-source`
@@ -438,7 +350,7 @@ const ItemSelector = _ref5 => {
438
350
  displayNameProp: displayNameProp,
439
351
  dataTest: `${dataTest}-left-header`
440
352
  }),
441
- leftFooter: state.supportsEDI ? /*#__PURE__*/_react.default.createElement("div", {
353
+ leftFooter: supportsEDI ? /*#__PURE__*/_react.default.createElement("div", {
442
354
  className: `jsx-${_DimensionSelectorStyle.default.__hash}` + " " + "calculation-button"
443
355
  }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
444
356
  icon: /*#__PURE__*/_react.default.createElement(_ui.IconAdd24, null),
@@ -449,49 +361,40 @@ const ItemSelector = _ref5 => {
449
361
  height: _dimensionSelectorHelper.TRANSFER_HEIGHT,
450
362
  optionsWidth: _dimensionSelectorHelper.TRANSFER_OPTIONS_WIDTH,
451
363
  selectedWidth: _dimensionSelectorHelper.TRANSFER_SELECTED_WIDTH,
452
- selectedEmptyComponent: /*#__PURE__*/_react.default.createElement(EmptySelection, null),
364
+ selectedEmptyComponent: /*#__PURE__*/_react.default.createElement(_SelectedEmptyPlaceholder.SelectedEmptyPlaceholder, null),
453
365
  rightHeader: /*#__PURE__*/_react.default.createElement(RightHeader, {
454
366
  infoBoxMessage: infoBoxMessage
455
367
  }),
456
368
  rightFooter: rightFooter,
457
369
  renderOption: props => {
458
- var _props$access;
370
+ // console.log('renderOption', props)
459
371
  return /*#__PURE__*/_react.default.createElement(_TransferOption.TransferOption
460
372
  /* eslint-disable react/prop-types */, _extends({}, props, {
461
373
  active: isActive(props.value),
462
- showingInfo: (currentDataItem === null || currentDataItem === void 0 ? void 0 : currentDataItem.id) === props.value,
463
- icon: (0, _dimensionListItem.getIcon)(getItemType(props.value)),
374
+ showingInfo: (infoDataItem === null || infoDataItem === void 0 ? void 0 : infoDataItem.id) === props.value,
375
+ icon: (0, _dimensionListItem.getIcon)(props.type),
376
+ dataItemType: props.type,
464
377
  dimensionType: (0, _dimensionListItem.getDimensionType)({
465
- type: getItemType(props.value),
378
+ type: props.type,
466
379
  expression: props.expression
467
380
  }),
468
381
  dataTest: `${dataTest}-transfer-option`,
469
382
  itemsRef: itemsRef,
470
- onEditClick: getItemType(props.value) === _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM && !(((_props$access = props.access) === null || _props$access === void 0 ? void 0 : _props$access.write) === false) && state.supportsEDI ? () => setCurrentCalculation({
471
- id: props.value,
472
- name: props.label,
473
- expression: props.expression
474
- }) : undefined,
475
- onInfoClick: () => setCurrentDataItem({
383
+ onEditClick: () => onEditClick(props),
384
+ onInfoClick: () => setInfoDataItem({
476
385
  id: props.value,
477
- type: getItemType(props.value)
386
+ type: props.type
478
387
  })
479
388
  /* eslint-enable react/prop-types */
480
389
  }));
481
390
  },
482
391
  dataTest: `${dataTest}-transfer`
483
- }), currentCalculation && state.supportsEDI && /*#__PURE__*/_react.default.createElement(_CalculationModal.default, {
392
+ }), currentCalculation && supportsEDI && /*#__PURE__*/_react.default.createElement(_CalculationModal.default, {
484
393
  calculation: currentCalculation,
485
394
  onSave: onSaveCalculation,
486
395
  onClose: () => setCurrentCalculation(),
487
396
  onDelete: onDeleteCalculation,
488
397
  displayNameProp: displayNameProp
489
- }), currentDataItem && /*#__PURE__*/_react.default.createElement(_InfoPopover.InfoPopover, {
490
- dataTest: `${dataTest}-info`,
491
- item: currentDataItem,
492
- reference: itemsRef.current.get(currentDataItem.id),
493
- onClose: () => setCurrentDataItem(),
494
- displayNameProp: displayNameProp
495
398
  }), /*#__PURE__*/_react.default.createElement(_style.default, {
496
399
  id: _DimensionSelectorStyle.default.__hash
497
400
  }, _DimensionSelectorStyle.default));
@@ -499,19 +402,29 @@ const ItemSelector = _ref5 => {
499
402
  ItemSelector.propTypes = {
500
403
  displayNameProp: _propTypes.default.string.isRequired,
501
404
  onSelect: _propTypes.default.func.isRequired,
405
+ currentCalculation: _propTypes.default.object,
502
406
  dataTest: _propTypes.default.string,
503
407
  dataTypes: _propTypes.default.array,
504
408
  infoBoxMessage: _propTypes.default.string,
409
+ infoDataItem: _propTypes.default.object,
410
+ isOptionViewMode: _propTypes.default.bool,
411
+ itemsRef: _propTypes.default.object,
505
412
  noItemsMessage: _propTypes.default.string,
506
413
  rightFooter: _propTypes.default.node,
507
414
  selectedItems: _propTypes.default.arrayOf(_propTypes.default.exact({
508
415
  label: _propTypes.default.string.isRequired,
509
416
  value: _propTypes.default.string.isRequired,
417
+ access: _propTypes.default.object,
510
418
  isActive: _propTypes.default.bool,
511
419
  type: _propTypes.default.string,
512
- expression: _propTypes.default.string
420
+ expression: _propTypes.default.string,
421
+ optionSetId: _propTypes.default.string
513
422
  })),
514
- onEDISave: _propTypes.default.func
423
+ setCurrentCalculation: _propTypes.default.func,
424
+ setInfoDataItem: _propTypes.default.func,
425
+ supportsEDI: _propTypes.default.bool,
426
+ onEDISave: _propTypes.default.func,
427
+ onEditClick: _propTypes.default.func
515
428
  };
516
429
  ItemSelector.defaultProps = {
517
430
  selectedItems: []
@@ -8,9 +8,9 @@ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
8
  var _ui = require("@dhis2/ui");
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
- var _index = _interopRequireDefault(require("../../locales/index.js"));
12
- var _dataSets = require("../../modules/dataSets.js");
13
- var _dataTypes = require("../../modules/dataTypes.js");
11
+ var _index = _interopRequireDefault(require("../../../locales/index.js"));
12
+ var _dataSets = require("../../../modules/dataSets.js");
13
+ var _dataTypes = require("../../../modules/dataTypes.js");
14
14
  var _MetricSelectorStyle = _interopRequireDefault(require("./styles/MetricSelector.style.js"));
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  const MetricSelector = _ref => {
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectedEmptyPlaceholder = void 0;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _EmptyPlaceholderStyle = _interopRequireDefault(require("./styles/EmptyPlaceholder.style.js"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const SelectedEmptyPlaceholder = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
13
+ className: `jsx-${_EmptyPlaceholderStyle.default.__hash}` + " " + "empty-list"
14
+ }, _d2I18n.default.t('No items selected')), /*#__PURE__*/_react.default.createElement(_style.default, {
15
+ id: _EmptyPlaceholderStyle.default.__hash
16
+ }, _EmptyPlaceholderStyle.default));
17
+ exports.SelectedEmptyPlaceholder = SelectedEmptyPlaceholder;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SourceEmptyPlaceholder = void 0;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _dataTypes = require("../../modules/dataTypes.js");
12
+ var _EmptyPlaceholderStyle = _interopRequireDefault(require("./styles/EmptyPlaceholder.style.js"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const SourceEmptyPlaceholder = _ref => {
15
+ let {
16
+ loading,
17
+ searchTerm,
18
+ options,
19
+ allItemsSelectedMessage,
20
+ noItemsMessage,
21
+ dataType,
22
+ dataTest
23
+ } = _ref;
24
+ let message = '';
25
+ if (allItemsSelectedMessage && !loading && options.length && !searchTerm) {
26
+ message = allItemsSelectedMessage;
27
+ } else if (!loading && !options.length && !searchTerm) {
28
+ if (noItemsMessage) {
29
+ message = noItemsMessage;
30
+ } else {
31
+ switch (dataType) {
32
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
33
+ message = _d2I18n.default.t('No indicators found');
34
+ break;
35
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
36
+ message = _d2I18n.default.t('No data elements found');
37
+ break;
38
+ case _dataTypes.DIMENSION_TYPE_DATA_SET:
39
+ message = _d2I18n.default.t('No data sets found');
40
+ break;
41
+ case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
42
+ message = _d2I18n.default.t('No event data items found');
43
+ break;
44
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
45
+ message = _d2I18n.default.t('No program indicators found');
46
+ break;
47
+ case _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM:
48
+ message = _d2I18n.default.t('No calculations found');
49
+ break;
50
+ default:
51
+ message = _d2I18n.default.t('No data');
52
+ break;
53
+ }
54
+ }
55
+ } else if (!loading && !options.length && searchTerm) {
56
+ switch (dataType) {
57
+ case _dataTypes.DIMENSION_TYPE_INDICATOR:
58
+ message = _d2I18n.default.t('No indicators found for "{{- searchTerm}}"', {
59
+ searchTerm
60
+ });
61
+ break;
62
+ case _dataTypes.DIMENSION_TYPE_DATA_ELEMENT:
63
+ message = _d2I18n.default.t('No data elements found for "{{- searchTerm}}"', {
64
+ searchTerm
65
+ });
66
+ break;
67
+ case _dataTypes.DIMENSION_TYPE_DATA_SET:
68
+ message = _d2I18n.default.t('No data sets found for "{{- searchTerm}}"', {
69
+ searchTerm
70
+ });
71
+ break;
72
+ case _dataTypes.DIMENSION_TYPE_EVENT_DATA_ITEM:
73
+ message = _d2I18n.default.t('No event data items found for "{{- searchTerm}}"', {
74
+ searchTerm
75
+ });
76
+ break;
77
+ case _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR:
78
+ message = _d2I18n.default.t('No program indicators found for "{{- searchTerm}}"', {
79
+ searchTerm
80
+ });
81
+ break;
82
+ case _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM:
83
+ message = _d2I18n.default.t('No calculations found for "{{- searchTerm}}"', {
84
+ searchTerm
85
+ });
86
+ break;
87
+ default:
88
+ message = _d2I18n.default.t('Nothing found for "{{- searchTerm}}"', {
89
+ searchTerm
90
+ });
91
+ break;
92
+ }
93
+ }
94
+ return message && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
95
+ "data-test": dataTest,
96
+ className: `jsx-${_EmptyPlaceholderStyle.default.__hash}` + " " + "empty-list"
97
+ }, message), /*#__PURE__*/_react.default.createElement(_style.default, {
98
+ id: _EmptyPlaceholderStyle.default.__hash
99
+ }, _EmptyPlaceholderStyle.default));
100
+ };
101
+ exports.SourceEmptyPlaceholder = SourceEmptyPlaceholder;
102
+ SourceEmptyPlaceholder.defaultProps = {
103
+ options: []
104
+ };
105
+ SourceEmptyPlaceholder.propTypes = {
106
+ allItemsSelectedMessage: _propTypes.default.string,
107
+ dataTest: _propTypes.default.string,
108
+ dataType: _propTypes.default.string,
109
+ loading: _propTypes.default.bool,
110
+ noItemsMessage: _propTypes.default.string,
111
+ options: _propTypes.default.array,
112
+ searchTerm: _propTypes.default.string
113
+ };
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.TransferOption = void 0;
7
7
  var _style = _interopRequireDefault(require("styled-jsx/style"));
8
+ var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
8
9
  var _ui = require("@dhis2/ui");
9
10
  var _classnames = _interopRequireDefault(require("classnames"));
10
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
12
  var _react = _interopRequireDefault(require("react"));
13
+ var _dataTypes = require("../../modules/dataTypes.js");
12
14
  var _TransferOptionStyle = _interopRequireDefault(require("./styles/TransferOption.style.js"));
13
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
16
  const TransferOption = _ref => {
@@ -22,8 +24,10 @@ const TransferOption = _ref => {
22
24
  value,
23
25
  icon,
24
26
  active,
27
+ dataItemType,
25
28
  dimensionType,
26
29
  dataTest,
30
+ optionSetId,
27
31
  itemsRef,
28
32
  showingInfo,
29
33
  onEditClick,
@@ -61,14 +65,39 @@ const TransferOption = _ref => {
61
65
  className: `jsx-${_TransferOptionStyle.default.__hash}` + " " + "icon"
62
66
  }, icon), /*#__PURE__*/_react.default.createElement("span", {
63
67
  className: `jsx-${_TransferOptionStyle.default.__hash}` + " " + "label"
64
- }, label), onEditClick && /*#__PURE__*/_react.default.createElement("span", {
68
+ }, label), dataItemType === _dataTypes.DIMENSION_TYPE_EXPRESSION_DIMENSION_ITEM &&
69
+ // XXX check needed?!
70
+ onEditClick && /*#__PURE__*/_react.default.createElement("span", {
65
71
  onClick: e => {
66
72
  e.stopPropagation();
67
73
  onEditClick();
68
74
  },
69
- "data-test": `${dataTest}-edit-button`,
75
+ "data-test": `${dataTest}-edit-calculation-button`,
70
76
  className: `jsx-${_TransferOptionStyle.default.__hash}` + " " + "edit"
71
- }, /*#__PURE__*/_react.default.createElement(_ui.IconEdit16, null))), /*#__PURE__*/_react.default.createElement("div", {
77
+ }, /*#__PURE__*/_react.default.createElement(_ui.IconEdit16, null)), [_dataTypes.DIMENSION_TYPE_PROGRAM_ATTRIBUTE, _dataTypes.DIMENSION_TYPE_PROGRAM_DATA_ELEMENT].includes(dataItemType) && optionSetId && /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
78
+ "aria-label": "disabled",
79
+ content: _d2I18n.default.t('Click to choose from available options'),
80
+ openDelay: 500,
81
+ closeDelay: 0
82
+ }, _ref2 => {
83
+ let {
84
+ ref,
85
+ onMouseOver,
86
+ onMouseOut
87
+ } = _ref2;
88
+ return /*#__PURE__*/_react.default.createElement("span", {
89
+ ref: ref,
90
+ onMouseOver: onMouseOver,
91
+ onMouseOut: onMouseOut,
92
+ onClick: e => {
93
+ e.stopPropagation();
94
+ onMouseOut();
95
+ onEditClick();
96
+ },
97
+ "data-test": `${dataTest}-option-set-button`,
98
+ className: `jsx-${_TransferOptionStyle.default.__hash}` + " " + "option-set-button"
99
+ }, /*#__PURE__*/_react.default.createElement(_ui.IconList16, null));
100
+ })), /*#__PURE__*/_react.default.createElement("div", {
72
101
  className: `jsx-${_TransferOptionStyle.default.__hash}` + " " + ((0, _classnames.default)('group', 'nowrap', 'typeGroup') || "")
73
102
  }, /*#__PURE__*/_react.default.createElement("span", {
74
103
  className: `jsx-${_TransferOptionStyle.default.__hash}` + " " + "type"
@@ -102,12 +131,14 @@ TransferOption.propTypes = {
102
131
  label: _propTypes.default.string.isRequired,
103
132
  value: _propTypes.default.string.isRequired,
104
133
  active: _propTypes.default.bool,
134
+ dataItemType: _propTypes.default.string,
105
135
  dataTest: _propTypes.default.string,
106
136
  dimensionType: _propTypes.default.string,
107
137
  disabled: _propTypes.default.bool,
108
138
  highlighted: _propTypes.default.bool,
109
139
  icon: _propTypes.default.node,
110
140
  itemsRef: _propTypes.default.object,
141
+ optionSetId: _propTypes.default.string,
111
142
  selected: _propTypes.default.bool,
112
143
  showingInfo: _propTypes.default.bool,
113
144
  onClick: _propTypes.default.func,
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _ui = require("@dhis2/ui");
8
+ const _defaultExport = [`.empty-list.jsx-3468764855{text-align:center;font-size:14px;line-height:16px;margin:${_ui.spacers.dp24} 0 0;color:${_ui.colors.grey700};}`];
9
+ _defaultExport.__hash = "3468764855";
10
+ var _default = exports.default = _defaultExport;
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _ui = require("@dhis2/ui");
8
- const _defaultExport = [`.wrapper.jsx-2953719875:last-child{margin-bottom:${_ui.spacers.dp4};}`, `.item.jsx-2953719875{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:${_ui.colors.white};font-size:14px;line-height:16px;border-bottom:1px solid ${_ui.colors.grey300};-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, `.item.jsx-2953719875:hover{background:${_ui.colors.grey100};}`, ".disabled.jsx-2953719875{opacity:0.3;cursor:not-allowed;}", ".inactive.jsx-2953719875{opacity:0.3;}", ".labelGroup.jsx-2953719875{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;margin:6px 4px;}", ".typeGroup.jsx-2953719875{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;margin:0;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".nowrap.jsx-2953719875{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}", ".icon.jsx-2953719875,.label.jsx-2953719875{line-height:18px;}", `.icon.jsx-2953719875{margin-right:${_ui.spacers.dp4};display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;vertical-align:text-bottom;}`, `.label.jsx-2953719875{font-size:14px;color:${_ui.colors.grey900};}`, `.type.jsx-2953719875{font-size:10px;-webkit-letter-spacing:-0.2px;-moz-letter-spacing:-0.2px;-ms-letter-spacing:-0.2px;letter-spacing:-0.2px;color:${_ui.colors.grey600};font-family:ui-monospace,'Cascadia Code','Source Code Pro',Menlo, Consolas,'DejaVu Sans Mono',monospace;font-weight:normal;}`, `.edit.jsx-2953719875,.info.jsx-2953719875{height:16px;margin-top:1px;margin-left:${_ui.spacers.dp8};cursor:pointer;color:${_ui.colors.grey600};}`, `.info.jsx-2953719875{margin:0 0 0 ${_ui.spacers.dp4};height:100%;padding:0 6px;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;}`, `.info.active.jsx-2953719875{background-color:${_ui.colors.grey300};color:${_ui.colors.grey900};}`, `.highlighted.jsx-2953719875{background:${_ui.theme.secondary700};}`, `.highlighted.jsx-2953719875:hover{background:${_ui.theme.secondary800};}`, `.highlighted.jsx-2953719875 .label.jsx-2953719875{color:${_ui.colors.white};}`, `.highlighted.jsx-2953719875 .type.jsx-2953719875{color:${_ui.theme.secondary050};}`, `.highlighted.jsx-2953719875 .info.jsx-2953719875{color:${_ui.theme.secondary050};}`, `.highlighted.jsx-2953719875 .icon path{fill:${_ui.colors.teal050};}`, `.highlighted.jsx-2953719875 .type.jsx-2953719875{color:${_ui.colors.teal050};}`, `.edit.jsx-2953719875:hover,.info.jsx-2953719875:hover{background-color:${_ui.colors.grey200};border-radius:0px;}`, `.highlighted.jsx-2953719875 .info.active.jsx-2953719875{background-color:${_ui.theme.secondary900};}`, `.highlighted.jsx-2953719875 .edit.jsx-2953719875:hover,.highlighted.jsx-2953719875 .info.jsx-2953719875:hover{background-color:${_ui.theme.secondary900};}`];
9
- _defaultExport.__hash = "2953719875";
8
+ const _defaultExport = [`.wrapper.jsx-1354743119:last-child{margin-bottom:${_ui.spacers.dp4};}`, `.item.jsx-1354743119{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;background:${_ui.colors.white};font-size:14px;line-height:16px;border-bottom:1px solid ${_ui.colors.grey300};-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, `.item.jsx-1354743119:hover{background:${_ui.colors.grey100};}`, ".disabled.jsx-1354743119{opacity:0.3;cursor:not-allowed;}", ".inactive.jsx-1354743119{opacity:0.3;}", ".labelGroup.jsx-1354743119{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;margin:5px 4px;}", ".typeGroup.jsx-1354743119{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;margin:0;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}", ".nowrap.jsx-1354743119{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}", ".icon.jsx-1354743119,.label.jsx-1354743119{line-height:16px;margin:2px 0;}", `.icon.jsx-1354743119{margin-right:${_ui.spacers.dp4};display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;vertical-align:text-bottom;}`, `.label.jsx-1354743119{font-size:14px;color:${_ui.colors.grey900};}`, `.type.jsx-1354743119{font-size:10px;-webkit-letter-spacing:-0.2px;-moz-letter-spacing:-0.2px;-ms-letter-spacing:-0.2px;letter-spacing:-0.2px;color:${_ui.colors.grey600};font-family:ui-monospace,'Cascadia Code','Source Code Pro',Menlo, Consolas,'DejaVu Sans Mono',monospace;font-weight:normal;margin:9px 0 0 0;}`, `.edit.jsx-1354743119,.option-set-button.jsx-1354743119{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-left:${_ui.spacers.dp8};cursor:pointer;color:${_ui.colors.grey600};background-color:${_ui.colors.white};border:1px solid ${_ui.colors.grey300};border-radius:3px;padding:0 2px;height:20px;}`, `.option-set-button.jsx-1354743119:hover,.edit.jsx-1354743119:hover{background-color:${_ui.colors.grey050};border-color:#c7cbd0;color:${_ui.colors.grey900};}`, `.info.jsx-1354743119{margin:0 0 0 2px;padding:${_ui.spacers.dp8} ${_ui.spacers.dp4} 0 ${_ui.spacers.dp4};-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;cursor:pointer;color:${_ui.colors.grey600};}`, `.info.active.jsx-1354743119{background-color:${_ui.colors.grey300};color:${_ui.colors.grey900};}`, `.highlighted.jsx-1354743119{background:${_ui.theme.secondary700};}`, `.highlighted.jsx-1354743119:hover{background:${_ui.theme.secondary800};}`, `.highlighted.jsx-1354743119 .edit.jsx-1354743119,.highlighted.jsx-1354743119 .label.jsx-1354743119{color:${_ui.colors.white};}`, `.highlighted.jsx-1354743119 .icon.jsx-1354743119,.highlighted.jsx-1354743119 .option-set-button.jsx-1354743119,.highlighted.jsx-1354743119 .type.jsx-1354743119,.highlighted.jsx-1354743119 .info.jsx-1354743119{color:${_ui.theme.secondary050};}`, `.info.jsx-1354743119:hover{background-color:${_ui.colors.grey200};border-radius:0px;}`, `.highlighted.jsx-1354743119 .option-set-button.jsx-1354743119,.highlighted.jsx-1354743119 .edit.jsx-1354743119{background-color:transparent;border-color:${_ui.theme.secondary900};}`, `.highlighted.jsx-1354743119 .edit.jsx-1354743119:hover,.highlighted.jsx-1354743119 .info.jsx-1354743119:hover,.highlighted.jsx-1354743119 .info.active.jsx-1354743119,.highlighted.jsx-1354743119 .option-set-button.jsx-1354743119:hover{background-color:${_ui.theme.secondary900};}`];
9
+ _defaultExport.__hash = "1354743119";
10
10
  var _default = exports.default = _defaultExport;