@dhis2/analytics 26.3.0-alpha.1 → 26.3.0-alpha.2

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 (41) hide show
  1. package/build/cjs/__demo__/DimensionsPanel.stories.js +1 -0
  2. package/build/cjs/api/analytics/Analytics.js +0 -7
  3. package/build/cjs/api/analytics/AnalyticsBase.js +6 -24
  4. package/build/cjs/api/analytics/AnalyticsRequest.js +10 -33
  5. package/build/cjs/api/analytics/AnalyticsRequestBase.js +1 -3
  6. package/build/cjs/api/analytics/AnalyticsRequestPropertiesMixin.js +0 -19
  7. package/build/cjs/api/analytics/utils.js +2 -23
  8. package/build/cjs/assets/DynamicDimensionIcon.js +12 -38
  9. package/build/cjs/components/DimensionsPanel/List/DimensionItem.js +37 -29
  10. package/build/cjs/components/DimensionsPanel/List/OptionsButton.js +7 -6
  11. package/build/cjs/components/DimensionsPanel/List/RecommendedIcon.js +1 -2
  12. package/build/cjs/components/DimensionsPanel/List/__tests__/__snapshots__/DimensionItem.spec.js.snap +190 -366
  13. package/build/cjs/components/DimensionsPanel/List/styles/DimensionItem.module.css +83 -0
  14. package/build/cjs/components/DimensionsPanel/List/styles/DimensionList.style.js +2 -2
  15. package/build/cjs/components/DimensionsPanel/List/styles/RecommendedIcon.style.js +4 -4
  16. package/build/cjs/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
  17. package/build/cjs/modules/layout/dimension.js +2 -9
  18. package/build/cjs/modules/layout/dimensionCreate.js +0 -3
  19. package/build/es/__demo__/DimensionsPanel.stories.js +1 -0
  20. package/build/es/api/analytics/Analytics.js +0 -7
  21. package/build/es/api/analytics/AnalyticsBase.js +6 -24
  22. package/build/es/api/analytics/AnalyticsRequest.js +10 -33
  23. package/build/es/api/analytics/AnalyticsRequestBase.js +1 -3
  24. package/build/es/api/analytics/AnalyticsRequestPropertiesMixin.js +0 -19
  25. package/build/es/api/analytics/utils.js +1 -20
  26. package/build/es/assets/DynamicDimensionIcon.js +12 -38
  27. package/build/es/components/DimensionsPanel/List/DimensionItem.js +38 -30
  28. package/build/es/components/DimensionsPanel/List/OptionsButton.js +7 -6
  29. package/build/es/components/DimensionsPanel/List/RecommendedIcon.js +1 -2
  30. package/build/es/components/DimensionsPanel/List/__tests__/__snapshots__/DimensionItem.spec.js.snap +190 -366
  31. package/build/es/components/DimensionsPanel/List/styles/DimensionItem.module.css +83 -0
  32. package/build/es/components/DimensionsPanel/List/styles/DimensionList.style.js +2 -2
  33. package/build/es/components/DimensionsPanel/List/styles/RecommendedIcon.style.js +4 -4
  34. package/build/es/components/DimensionsPanel/styles/DimensionsPanel.style.js +1 -1
  35. package/build/es/modules/layout/dimension.js +1 -7
  36. package/build/es/modules/layout/dimensionCreate.js +1 -4
  37. package/package.json +1 -1
  38. package/build/cjs/api/analytics/AnalyticsTrackedEntities.js +0 -31
  39. package/build/cjs/components/DimensionsPanel/List/styles/DimensionItem.style.js +0 -73
  40. package/build/es/api/analytics/AnalyticsTrackedEntities.js +0 -24
  41. package/build/es/components/DimensionsPanel/List/styles/DimensionItem.style.js +0 -66
@@ -65,6 +65,7 @@ const onDimensionClick = () => alert('click');
65
65
  return /*#__PURE__*/_react2.default.createElement(_DimensionsPanel.default, {
66
66
  dimensions: [...fixedDimensions, ...dynamicDimensions],
67
67
  onDimensionClick: onDimensionClick,
68
+ selectedIds: [_predefinedDimensions.DIMENSION_ID_DATA],
68
69
  lockedDimension: dimension => dimension === _predefinedDimensions.DIMENSION_ID_DATA
69
70
  });
70
71
  });
@@ -9,7 +9,6 @@ var _AnalyticsEnrollments = _interopRequireDefault(require("./AnalyticsEnrollmen
9
9
  var _AnalyticsEvents = _interopRequireDefault(require("./AnalyticsEvents.js"));
10
10
  var _AnalyticsRequest = _interopRequireDefault(require("./AnalyticsRequest.js"));
11
11
  var _AnalyticsResponse = _interopRequireDefault(require("./AnalyticsResponse.js"));
12
- var _AnalyticsTrackedEntities = _interopRequireDefault(require("./AnalyticsTrackedEntities.js"));
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
13
  /**
15
14
  * @module analytics
@@ -20,8 +19,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
19
  * Analytics class used to request analytics data from Web API.
21
20
  *
22
21
  * @requires analytics.AnalyticsAggregate
23
- * @requires analytics.AnalyticsTrackedEntities
24
- * @requires analytics.AnalyticsEnrollments
25
22
  * @requires analytics.AnalyticsEvents
26
23
  * @requires analytics.AnalyticsRequest
27
24
  * @requires analytics.AnalyticsResponse
@@ -41,7 +38,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
41
38
  class Analytics {
42
39
  /**
43
40
  * @param {!module:analytics.AnalyticsAggregate} analyticsAggregate The AnalyticsAggregate instance
44
- * @param {!module:analytics.AnalyticsTrackedEntities} analyticsTrackedEntities The AnalyticsTrackedEntities instance
45
41
  * @param {!module:analytics.AnalyticsEnrollments} analyticsEnrollments The AnalyticsEnrollments instance
46
42
  * @param {!module:analytics.AnalyticsEvents} analyticsEvents The AnalyticsEvents instance
47
43
  * @param {!module:analytics.AnalyticsRequest} analyticsRequest The AnalyticsRequest class
@@ -50,14 +46,12 @@ class Analytics {
50
46
  constructor(_ref) {
51
47
  let {
52
48
  aggregate,
53
- trackedEntities,
54
49
  enrollments,
55
50
  events,
56
51
  request,
57
52
  response
58
53
  } = _ref;
59
54
  this.aggregate = aggregate;
60
- this.trackedEntities = trackedEntities;
61
55
  this.enrollments = enrollments;
62
56
  this.events = events;
63
57
  this.request = request;
@@ -80,7 +74,6 @@ class Analytics {
80
74
  if (!Analytics.getAnalytics.analytics) {
81
75
  Analytics.getAnalytics.analytics = new Analytics({
82
76
  aggregate: new _AnalyticsAggregate.default(dataEngine),
83
- trackedEntities: new _AnalyticsTrackedEntities.default(dataEngine),
84
77
  enrollments: new _AnalyticsEnrollments.default(dataEngine),
85
78
  events: new _AnalyticsEvents.default(dataEngine),
86
79
  request: _AnalyticsRequest.default,
@@ -6,21 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
8
8
  var _AnalyticsRequest = _interopRequireDefault(require("./AnalyticsRequest.js"));
9
- var _utils = require("./utils.js");
10
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
10
  const analyticsQuery = {
12
11
  resource: 'analytics',
13
12
  id: _ref => {
14
13
  let {
15
14
  path,
16
- program,
17
- trackedEntityType
15
+ program
18
16
  } = _ref;
19
- return (0, _utils.formatRequestPath)({
20
- path,
21
- program,
22
- trackedEntityType
23
- });
17
+ return [path, program].filter(Boolean).join('/');
24
18
  },
25
19
  params: _ref2 => {
26
20
  let {
@@ -40,14 +34,9 @@ const analyticsDataQuery = {
40
34
  id: _ref3 => {
41
35
  let {
42
36
  path,
43
- program,
44
- trackedEntityType
37
+ program
45
38
  } = _ref3;
46
- return (0, _utils.formatRequestPath)({
47
- path,
48
- program,
49
- trackedEntityType
50
- });
39
+ return [path, program].filter(Boolean).join('/');
51
40
  },
52
41
  params: _ref4 => {
53
42
  let {
@@ -69,14 +58,9 @@ const analyticsMetaDataQuery = {
69
58
  id: _ref5 => {
70
59
  let {
71
60
  path,
72
- program,
73
- trackedEntityType
61
+ program
74
62
  } = _ref5;
75
- return (0, _utils.formatRequestPath)({
76
- path,
77
- program,
78
- trackedEntityType
79
- });
63
+ return [path, program].filter(Boolean).join('/');
80
64
  },
81
65
  params: _ref6 => {
82
66
  let {
@@ -168,7 +152,6 @@ class AnalyticsBase {
168
152
  variables: {
169
153
  path: req.path,
170
154
  program: req.program,
171
- trackedEntityType: req.trackedEntityType,
172
155
  dimensions: generateDimensionStrings(req.dimensions),
173
156
  filters: generateDimensionStrings(req.filters),
174
157
  parameters: req.parameters,
@@ -211,7 +194,6 @@ class AnalyticsBase {
211
194
  variables: {
212
195
  path: req.path,
213
196
  program: req.program,
214
- trackedEntityType: req.trackedEntityType,
215
197
  dimensions: generateDimensionStrings(req.dimensions, options),
216
198
  filters: generateDimensionStrings(req.filters, options),
217
199
  parameters: req.parameters
@@ -10,7 +10,6 @@ var _AnalyticsRequestBase = _interopRequireDefault(require("./AnalyticsRequestBa
10
10
  var _AnalyticsRequestDimensionsMixin = _interopRequireDefault(require("./AnalyticsRequestDimensionsMixin.js"));
11
11
  var _AnalyticsRequestFiltersMixin = _interopRequireDefault(require("./AnalyticsRequestFiltersMixin.js"));
12
12
  var _AnalyticsRequestPropertiesMixin = _interopRequireDefault(require("./AnalyticsRequestPropertiesMixin.js"));
13
- var _utils = require("./utils.js");
14
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
14
  /**
16
15
  * @description
@@ -48,7 +47,6 @@ class AnalyticsRequest extends (0, _AnalyticsRequestDimensionsMixin.default)((0,
48
47
  fromVisualization(visualization) {
49
48
  let passFilterAsDimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
50
49
  let request = this;
51
- const outputType = visualization.outputType;
52
50
 
53
51
  // extract dimensions from visualization
54
52
  const columns = visualization.columns || [];
@@ -59,28 +57,19 @@ class AnalyticsRequest extends (0, _AnalyticsRequestDimensionsMixin.default)((0,
59
57
  if ((_d$legendSet = d.legendSet) !== null && _d$legendSet !== void 0 && _d$legendSet.id) {
60
58
  dimension += `-${d.legendSet.id}`;
61
59
  }
60
+ if ((_d$programStage = d.programStage) !== null && _d$programStage !== void 0 && _d$programStage.id) {
61
+ dimension = `${d.programStage.id}.${dimension}`;
62
+ }
62
63
  if (d.filter) {
63
64
  dimension += `:${d.filter}`;
64
65
  }
65
- const programStageId = (_d$programStage = d.programStage) === null || _d$programStage === void 0 ? void 0 : _d$programStage.id;
66
66
  if ((_d$repetition = d.repetition) !== null && _d$repetition !== void 0 && (_d$repetition$indexes = _d$repetition.indexes) !== null && _d$repetition$indexes !== void 0 && _d$repetition$indexes.length) {
67
67
  d.repetition.indexes.forEach(index => {
68
- var _d$program;
69
- request = request.addDimension((0, _utils.formatDimension)({
70
- programId: (_d$program = d.program) === null || _d$program === void 0 ? void 0 : _d$program.id,
71
- programStageId: `${programStageId}[${index}]`,
72
- dimension,
73
- outputType
74
- }));
68
+ request = request.addDimension(dimension.replace(/\./, `[${index}].`));
75
69
  });
76
70
  } else {
77
- var _d$program2, _d$items;
78
- request = request.addDimension((0, _utils.formatDimension)({
79
- programId: (_d$program2 = d.program) === null || _d$program2 === void 0 ? void 0 : _d$program2.id,
80
- programStageId,
81
- dimension,
82
- outputType
83
- }), (_d$items = d.items) === null || _d$items === void 0 ? void 0 : _d$items.map(item => item.id));
71
+ var _d$items;
72
+ request = request.addDimension(dimension, (_d$items = d.items) === null || _d$items === void 0 ? void 0 : _d$items.map(item => item.id));
84
73
  }
85
74
  });
86
75
 
@@ -95,29 +84,17 @@ class AnalyticsRequest extends (0, _AnalyticsRequestDimensionsMixin.default)((0,
95
84
  request = request.addDimension(f.dimension, (_f$items = f.items) === null || _f$items === void 0 ? void 0 : _f$items.map(item => item.id));
96
85
  } else {
97
86
  var _f$programStage, _f$repetition, _f$repetition$indexes;
98
- let filterString = f.dimension;
87
+ let filterString = (_f$programStage = f.programStage) !== null && _f$programStage !== void 0 && _f$programStage.id ? `${f.programStage.id}.${f.dimension}` : f.dimension;
99
88
  if (f.filter) {
100
89
  filterString += `:${f.filter}`;
101
90
  }
102
- const programStageId = (_f$programStage = f.programStage) === null || _f$programStage === void 0 ? void 0 : _f$programStage.id;
103
91
  if ((_f$repetition = f.repetition) !== null && _f$repetition !== void 0 && (_f$repetition$indexes = _f$repetition.indexes) !== null && _f$repetition$indexes !== void 0 && _f$repetition$indexes.length) {
104
92
  f.repetition.indexes.forEach(index => {
105
- var _f$program;
106
- request = request.addFilter((0, _utils.formatDimension)({
107
- programId: (_f$program = f.program) === null || _f$program === void 0 ? void 0 : _f$program.id,
108
- programStageId: `${programStageId}[${index}]`,
109
- dimension: filterString,
110
- outputType
111
- }));
93
+ request = request.addFilter(filterString.replace(/\./, `[${index}].`));
112
94
  });
113
95
  } else {
114
- var _f$program2, _f$items2;
115
- request = request.addFilter((0, _utils.formatDimension)({
116
- programId: (_f$program2 = f.program) === null || _f$program2 === void 0 ? void 0 : _f$program2.id,
117
- programStageId,
118
- dimension: filterString,
119
- outputType
120
- }), (_f$items2 = f.items) === null || _f$items2 === void 0 ? void 0 : _f$items2.map(item => item.id));
96
+ var _f$items2;
97
+ request = request.addFilter(filterString, (_f$items2 = f.items) === null || _f$items2 === void 0 ? void 0 : _f$items2.map(item => item.id));
121
98
  }
122
99
  }
123
100
  });
@@ -24,7 +24,6 @@ class AnalyticsRequestBase {
24
24
  format = 'json',
25
25
  path,
26
26
  program,
27
- trackedEntityType,
28
27
  dimensions = [],
29
28
  filters = [],
30
29
  parameters = {}
@@ -33,7 +32,6 @@ class AnalyticsRequestBase {
33
32
  this.format = format.toLowerCase();
34
33
  this.path = path;
35
34
  this.program = program;
36
- this.trackedEntityType = trackedEntityType;
37
35
  this.dimensions = dimensions;
38
36
  this.filters = filters;
39
37
  this.parameters = {
@@ -72,7 +70,7 @@ class AnalyticsRequestBase {
72
70
  }
73
71
  return dimension;
74
72
  });
75
- const endPoint = [this.endPoint, this.path, this.program, this.trackedEntityType].filter(Boolean).join('/');
73
+ const endPoint = [this.endPoint, this.path, this.program].filter(e => !!e).join('/');
76
74
  return `${endPoint}.${this.format}?dimension=${encodedDimensions.join('&dimension=')}`;
77
75
  }
78
76
 
@@ -497,25 +497,6 @@ class extends base {
497
497
  return new _AnalyticsRequest.default(this);
498
498
  }
499
499
 
500
- /**
501
- * Sets the tracked entity type for the request.
502
- * It appends the tracked entity type id to the request's path.
503
- *
504
- * @param {!String} trackedEntityType The tracked entity type id
505
- *
506
- * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
507
- *
508
- * @example
509
- * const req = new analytics.request()
510
- * .withTrackedEntityType('nEenWmSyUEp');
511
- */
512
- withTrackedEntityType(trackedEntityType) {
513
- if (trackedEntityType) {
514
- this.trackedEntityType = trackedEntityType;
515
- }
516
- return new _AnalyticsRequest.default(this);
517
- }
518
-
519
500
  /**
520
501
  * Sets the program for the request.
521
502
  * It appends the program id to the request's path.
@@ -3,31 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.formatRequestPath = exports.formatDimension = exports.customEncodeURIComponent = void 0;
6
+ exports.customEncodeURIComponent = void 0;
7
7
  // Define our very own special list of characters that we don't want to encode in the URI
8
8
  const whitelistURI = ',&$=/;:';
9
9
  const whitelistURICodes = whitelistURI.split('').map(c => encodeURIComponent(c));
10
10
  const whitelistRegExp = new RegExp(`(?:${whitelistURICodes.join('|')})`, 'g');
11
11
  const customEncodeURIComponent = uri => encodeURIComponent(uri).replace(whitelistRegExp, decodeURIComponent);
12
- exports.customEncodeURIComponent = customEncodeURIComponent;
13
- const formatRequestPath = _ref => {
14
- let {
15
- path,
16
- program,
17
- trackedEntityType
18
- } = _ref;
19
- return [path, program, trackedEntityType].filter(Boolean).join('/');
20
- };
21
- exports.formatRequestPath = formatRequestPath;
22
- const formatDimension = _ref2 => {
23
- let {
24
- outputType,
25
- programId,
26
- programStageId,
27
- dimension
28
- } = _ref2;
29
- return [
30
- // XXX it would be clearer to have this consistent with what is sent in the request as for EVENT/ENROLLMENT
31
- outputType === 'TRACKED_ENTITY' ? programId : undefined, programStageId, dimension].filter(Boolean).join('.');
32
- };
33
- exports.formatDimension = formatDimension;
12
+ exports.customEncodeURIComponent = customEncodeURIComponent;
@@ -8,48 +8,22 @@ var _react = _interopRequireDefault(require("react"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  const DynamicDimensionIcon = () => {
10
10
  return /*#__PURE__*/_react.default.createElement("svg", {
11
- width: "16px",
12
- height: "16px",
13
- viewBox: "0 0 16 16",
14
- version: "1.1",
15
- xmlns: "http://www.w3.org/2000/svg"
16
- }, /*#__PURE__*/_react.default.createElement("g", {
17
- id: "Exp",
18
- stroke: "none",
19
- strokeWidth: "1",
20
- fill: "none",
21
- fillRule: "evenodd"
22
- }, /*#__PURE__*/_react.default.createElement("g", {
23
- id: "Artboard",
24
- transform: "translate(-80.000000, -9.000000)"
25
- }, /*#__PURE__*/_react.default.createElement("g", {
26
- id: "icon_dimension_new",
27
- transform: "translate(80.000000, 9.000000)"
28
- }, /*#__PURE__*/_react.default.createElement("rect", {
29
- id: "frame",
30
- x: "0",
31
- y: "0",
32
11
  width: "16",
33
- height: "16"
34
- }), /*#__PURE__*/_react.default.createElement("g", {
35
- id: "module",
36
- transform: "translate(4.000000, 4.000000)",
37
- stroke: "#000000",
12
+ height: "16",
13
+ fill: "none",
14
+ xmlns: "http://www.w3.org/2000/svg"
15
+ }, /*#__PURE__*/_react.default.createElement("path", {
16
+ clipRule: "evenodd",
17
+ d: "m4.832 5.674 2.831-1.11a.913.913 0 0 1 .673 0l2.83 1.11a.548.548 0 0 1 .334.517V9.81a.548.548 0 0 1-.332.517l-2.831 1.11a.92.92 0 0 1-.673 0l-2.83-1.11a.548.548 0 0 1-.334-.517V6.19a.548.548 0 0 1 .332-.517Z",
18
+ stroke: "#212934",
38
19
  strokeLinecap: "round",
39
20
  strokeLinejoin: "round"
40
- }, /*#__PURE__*/_react.default.createElement("path", {
41
- d: "M0.33209728,1.1742111 L3.16308174,0.0641666694 C3.37911767,-0.0213888898 3.61963794,-0.0213888898 3.83567387,0.0641666694 L6.66665833,1.1742111 C6.87300668,1.26220739 7.00497003,1.467 6.99984343,1.69127776 L6.99984343,5.30887771 C7.00517859,5.53285411 6.87376309,5.73756106 6.66790272,5.82594437 L3.83691826,6.93629991 C3.62076407,7.02123336 3.38048032,7.02123336 3.16432613,6.93629991 L0.333341668,5.82594437 C0.126993317,5.73794808 -0.00497002591,5.53315547 0.000156574133,5.30887771 L0.000156574133,1.69127776 C-0.00517858533,1.46730136 0.126236906,1.26259441 0.33209728,1.1742111 Z",
42
- id: "Shape"
43
- }), /*#__PURE__*/_react.default.createElement("path", {
44
- d: "M3.5,2.72795833 L0.322,1.48195833",
45
- id: "Shape"
46
- }), /*#__PURE__*/_react.default.createElement("path", {
47
- d: "M3.5,2.72795833 L6.678,1.48195833",
48
- id: "Shape"
49
21
  }), /*#__PURE__*/_react.default.createElement("path", {
50
- d: "M3.5,6.78125 L3.5,2.72795833",
51
- id: "Shape"
52
- }))))));
22
+ d: "M8 7.228 4.822 5.982M8 7.228l3.178-1.246M8 11.281V7.228",
23
+ stroke: "#212934",
24
+ strokeLinecap: "round",
25
+ strokeLinejoin: "round"
26
+ }));
53
27
  };
54
28
  var _default = DynamicDimensionIcon;
55
29
  exports.default = _default;
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _ui = require("@dhis2/ui");
8
+ var _classnames = _interopRequireDefault(require("classnames"));
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _DynamicDimensionIcon = _interopRequireDefault(require("../../../assets/DynamicDimensionIcon.js"));
11
12
  var _predefinedDimensions = require("../../../modules/predefinedDimensions.js");
12
13
  var _OptionsButton = _interopRequireDefault(require("./OptionsButton.js"));
13
14
  var _RecommendedIcon = _interopRequireDefault(require("./RecommendedIcon.js"));
14
- var _DimensionItemStyle = require("./styles/DimensionItem.style.js");
15
+ var _DimensionItemModule = _interopRequireDefault(require("./styles/DimensionItem.module.css"));
15
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -39,23 +40,18 @@ class DimensionItem extends _react.Component {
39
40
  _defineProperty(this, "getDimensionIcon", () => {
40
41
  const Icon = (0, _predefinedDimensions.getPredefinedDimensionProp)(this.props.id, 'icon');
41
42
  return Icon ? /*#__PURE__*/_react.default.createElement(Icon, {
42
- style: _DimensionItemStyle.styles.fixedDimensionIcon
43
+ className: _DimensionItemModule.default.fixedDimensionIcon
43
44
  }) : /*#__PURE__*/_react.default.createElement(_DynamicDimensionIcon.default, {
44
- style: _DimensionItemStyle.styles.dynamicDimensionIcon
45
+ className: "dynamic-dimension-icon"
45
46
  });
46
47
  });
47
48
  _defineProperty(this, "getDimensionType", () => {
48
49
  const {
49
50
  id,
50
- name,
51
- isDeactivated
51
+ name
52
52
  } = this.props;
53
53
  return /*#__PURE__*/_react.default.createElement("span", {
54
- "data-dimensionid": id,
55
- style: {
56
- ..._DimensionItemStyle.styles.text,
57
- ...(isDeactivated ? _DimensionItemStyle.styles.textDeactivated : {})
58
- }
54
+ "data-dimensionid": id
59
55
  }, name);
60
56
  });
61
57
  }
@@ -69,51 +65,63 @@ class DimensionItem extends _react.Component {
69
65
  onClick,
70
66
  onOptionsClick,
71
67
  innerRef,
72
- style,
73
68
  dataTest,
69
+ className,
74
70
  ...rest
75
71
  } = this.props;
76
72
  const Icon = this.getDimensionIcon();
77
73
  const Label = this.getDimensionType();
78
- const itemStyle = isSelected && !isDeactivated ? {
79
- ..._DimensionItemStyle.styles.item,
80
- ..._DimensionItemStyle.styles.selected
81
- } : _DimensionItemStyle.styles.item;
82
74
  const optionsRef = /*#__PURE__*/(0, _react.createRef)();
75
+ const LockIcon = /*#__PURE__*/_react.default.createElement("svg", {
76
+ width: "7",
77
+ height: "9",
78
+ fill: "none",
79
+ xmlns: "http://www.w3.org/2000/svg"
80
+ }, /*#__PURE__*/_react.default.createElement("path", {
81
+ fillRule: "evenodd",
82
+ clipRule: "evenodd",
83
+ d: "M3.5 1A1.5 1.5 0 0 0 2 2.5V3h3v-.5A1.5 1.5 0 0 0 3.5 1ZM1 2.5V3H0v6h7V3H6v-.5a2.5 2.5 0 0 0-5 0ZM1 8V4h5v4H1Zm3-1V5H3v2h1Z",
84
+ fill: "none"
85
+ }));
83
86
  const onLabelClick = () => {
84
87
  if (!isDeactivated && !(0, _predefinedDimensions.getPredefinedDimensionProp)(id, _predefinedDimensions.DIMENSION_PROP_NO_ITEMS)) {
85
88
  onClick(id);
86
89
  }
87
90
  };
88
- return /*#__PURE__*/_react.default.createElement("li", _extends({
91
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.CssVariables, {
92
+ colors: true
93
+ }), /*#__PURE__*/_react.default.createElement("li", _extends({
89
94
  onMouseOver: this.onMouseOver,
90
95
  onMouseLeave: this.onMouseExit,
91
96
  ref: innerRef,
92
- style: Object.assign({}, itemStyle, style, !isDeactivated && _DimensionItemStyle.styles.clickable),
97
+ className: (0, _classnames.default)(_DimensionItemModule.default.item, {
98
+ [_DimensionItemModule.default.deactivated]: isDeactivated,
99
+ [_DimensionItemModule.default.selected]: isSelected && !isDeactivated
100
+ }, className),
93
101
  "data-test": dataTest,
94
102
  onClick: onLabelClick
95
103
  }, rest), /*#__PURE__*/_react.default.createElement("div", {
96
- className: "label",
104
+ className: _DimensionItemModule.default.label,
97
105
  tabIndex: 0,
98
- style: _DimensionItemStyle.styles.label,
99
106
  "data-test": `${dataTest}-button-${id}`
100
107
  }, /*#__PURE__*/_react.default.createElement("div", {
101
- style: _DimensionItemStyle.styles.iconWrapper
108
+ className: _DimensionItemModule.default.iconWrapper
102
109
  }, Icon), /*#__PURE__*/_react.default.createElement("div", {
103
- style: _DimensionItemStyle.styles.labelWrapper
104
- }, Label, /*#__PURE__*/_react.default.createElement(_RecommendedIcon.default, {
110
+ className: _DimensionItemModule.default.labelWrapper
111
+ }, /*#__PURE__*/_react.default.createElement("span", {
112
+ className: _DimensionItemModule.default.labelText
113
+ }, Label), /*#__PURE__*/_react.default.createElement(_RecommendedIcon.default, {
105
114
  isRecommended: isRecommended,
106
115
  dataTest: `${dataTest}-recommended-icon`
107
- })), isLocked && /*#__PURE__*/_react.default.createElement("div", {
108
- style: _DimensionItemStyle.styles.iconWrapper
109
- }, /*#__PURE__*/_react.default.createElement(_ui.IconLock16, null))), onOptionsClick ? /*#__PURE__*/_react.default.createElement("div", {
110
- style: _DimensionItemStyle.styles.optionsWrapper,
116
+ }))), onOptionsClick ? /*#__PURE__*/_react.default.createElement("div", {
117
+ className: _DimensionItemModule.default.optionsWrapper,
111
118
  ref: optionsRef,
112
119
  "data-test": `${dataTest}-menu-${id}`
113
120
  }, this.state.mouseOver && !isDeactivated && !isLocked ? /*#__PURE__*/_react.default.createElement(_OptionsButton.default, {
114
- style: _DimensionItemStyle.styles.optionsButton,
115
121
  onClick: this.onOptionsClick(id, optionsRef)
116
- }) : null) : null);
122
+ }) : null) : null, isLocked && /*#__PURE__*/_react.default.createElement("div", {
123
+ className: _DimensionItemModule.default.lockWrapper
124
+ }, LockIcon)));
117
125
  }
118
126
  }
119
127
  DimensionItem.propTypes = {
@@ -121,12 +129,12 @@ DimensionItem.propTypes = {
121
129
  isSelected: _propTypes.default.bool.isRequired,
122
130
  // XXX
123
131
  name: _propTypes.default.string.isRequired,
132
+ className: _propTypes.default.string,
124
133
  dataTest: _propTypes.default.string,
125
134
  innerRef: _propTypes.default.func,
126
135
  isDeactivated: _propTypes.default.bool,
127
136
  isLocked: _propTypes.default.bool,
128
137
  isRecommended: _propTypes.default.bool,
129
- style: _propTypes.default.object,
130
138
  onClick: _propTypes.default.func,
131
139
  onOptionsClick: _propTypes.default.func
132
140
  };
@@ -4,22 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
7
8
  var _ui = require("@dhis2/ui");
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  const OptionsButton = _ref => {
12
13
  let {
13
- style,
14
14
  onClick
15
15
  } = _ref;
16
- return /*#__PURE__*/_react.default.createElement("button", {
17
- style: style,
18
- onClick: onClick
19
- }, /*#__PURE__*/_react.default.createElement(_ui.IconMore16, null));
16
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
17
+ onClick: onClick,
18
+ className: "jsx-2728765288"
19
+ }, /*#__PURE__*/_react.default.createElement(_ui.IconMore16, null)), /*#__PURE__*/_react.default.createElement(_style.default, {
20
+ id: "2728765288"
21
+ }, ["button.jsx-2728765288{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;height:20px;width:20px;padding:0;border:none;background:none;outline:none;cursor:pointer;border-top-right-radius:2px;border-bottom-left-radius:2px;}", "button.jsx-2728765288:hover{background-color:rgba(0,0,0,0.09);}"]));
20
22
  };
21
23
  OptionsButton.propTypes = {
22
- style: _propTypes.default.object,
23
24
  onClick: _propTypes.default.func
24
25
  };
25
26
  var _default = OptionsButton;
@@ -17,8 +17,7 @@ const RecommendedIcon = _ref => {
17
17
  } = _ref;
18
18
  return isRecommended ? /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
19
19
  content: _index.default.t('Dimension recommended with selected data'),
20
- placement: "bottom",
21
- maxWidth: 160
20
+ placement: "bottom"
22
21
  }, /*#__PURE__*/_react.default.createElement("div", {
23
22
  style: _RecommendedIconStyle.styles.recommendedIcon,
24
23
  "data-test": dataTest