@dhis2/analytics 28.0.1 → 28.0.3

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.
@@ -19,8 +19,8 @@ const Wrapper = story => /*#__PURE__*/_react.default.createElement(_appServiceCo
19
19
  }
20
20
  }
21
21
  }, /*#__PURE__*/_react.default.createElement(_appRuntime.DataProvider, {
22
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev",
23
- apiVersion: "41"
22
+ baseUrl: "https://test.e2e.dhis2.org/anly-42",
23
+ apiVersion: "42"
24
24
  }, story()));
25
25
  var _default = exports.default = {
26
26
  title: 'DataDimension',
@@ -10,8 +10,8 @@ var _OpenFileDialog = require("../components/OpenFileDialog/OpenFileDialog.js");
10
10
  var _visTypes = require("../modules/visTypes.js");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  const Wrapper = story => /*#__PURE__*/_react.default.createElement(_appRuntime.DataProvider, {
13
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev/",
14
- apiVersion: "41"
13
+ baseUrl: "https://test.e2e.dhis2.org/anly-42/",
14
+ apiVersion: "42"
15
15
  }, story());
16
16
  const user = {
17
17
  displayName: 'John Traore',
@@ -11,8 +11,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
11
11
  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); }
12
12
  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; }
13
13
  const Wrapper = story => /*#__PURE__*/_react.default.createElement(_appRuntime.DataProvider, {
14
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev/",
15
- apiVersion: "41"
14
+ baseUrl: "https://test.e2e.dhis2.org/anly-42/",
15
+ apiVersion: "42"
16
16
  }, story());
17
17
  const defaultRootOrgUnits = ['ImspTQPwCqd']; // Sierra Leone
18
18
  var _default = exports.default = {
@@ -15,8 +15,8 @@ const Wrapper = story => /*#__PURE__*/_react.default.createElement(_appServiceCo
15
15
  systemInfo: {}
16
16
  }
17
17
  }, /*#__PURE__*/_react.default.createElement(_appRuntime.DataProvider, {
18
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev/",
19
- apiVersion: "41"
18
+ baseUrl: "https://test.e2e.dhis2.org/anly-42/",
19
+ apiVersion: "42"
20
20
  }, story()));
21
21
  const selectedPeriods = [{
22
22
  id: 'LAST_12_MONTHS',
@@ -23,7 +23,7 @@ const TranslationModal = _ref => {
23
23
  } = _ref;
24
24
  const [translations, setTranslations] = (0, _react.useState)([]);
25
25
  const endpointPath = new URL(objectToTranslate.href).pathname;
26
- const endpointPathMatch = endpointPath.match(/api\/\d+\/(?<resource>.+)/);
26
+ const endpointPathMatch = endpointPath.match(/api\/(?:\d+\/)?(?<resource>.+)/);
27
27
  const resource = endpointPathMatch !== null && endpointPathMatch !== void 0 && endpointPathMatch.groups ? endpointPathMatch.groups.resource : null;
28
28
  const {
29
29
  translationsData,
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _ui = require("@dhis2/ui");
4
+ var _enzyme = require("enzyme");
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _TranslationModal = require("../TranslationModal.js");
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ const mockUseTranslationResults = jest.fn(() => ({
9
+ translationsData: undefined,
10
+ fetching: false
11
+ }));
12
+ jest.mock('../useTranslationsResults.js', () => ({
13
+ useTranslationsResults: args => mockUseTranslationResults(args)
14
+ }));
15
+ describe('The Translation Dialog component', () => {
16
+ let shallowTranslationModal;
17
+ let props;
18
+ const onClose = jest.fn();
19
+ const onTranslationSaved = jest.fn();
20
+ const getTranslationModalComponent = props => {
21
+ if (!shallowTranslationModal) {
22
+ shallowTranslationModal = (0, _enzyme.shallow)(/*#__PURE__*/_react.default.createElement(_TranslationModal.TranslationModal, props));
23
+ }
24
+ return shallowTranslationModal;
25
+ };
26
+ beforeEach(() => {
27
+ shallowTranslationModal = undefined;
28
+ props = {
29
+ fieldsToTranslate: ['name', 'description'],
30
+ objectToTranslate: {
31
+ name: 'Test object',
32
+ href: 'https://dhis2.tld/path/api/visualization/object-id'
33
+ },
34
+ onClose,
35
+ onTranslationSaved
36
+ };
37
+ });
38
+ it('renders a Modal component', () => {
39
+ expect(getTranslationModalComponent(props).find(_ui.Modal)).toHaveLength(1);
40
+ });
41
+ it("renders a ModalTitle containing the object's name", () => {
42
+ expect(getTranslationModalComponent(props).find(_ui.ModalTitle).childAt(0).text()).toEqual(`Translate: ${props.objectToTranslate.name}`);
43
+ });
44
+ test.each(['https://dhis2.tld/path/api/visualization/object-id', 'https://dhis2.tld/path/api/42/visualization/object-id'])('uses the correct resource for the translation endpoint', href => {
45
+ props.objectToTranslate.href = href;
46
+ getTranslationModalComponent(props);
47
+ expect(mockUseTranslationResults).toHaveBeenCalled();
48
+ expect(mockUseTranslationResults).toHaveBeenCalledWith({
49
+ resource: 'visualization/object-id'
50
+ });
51
+ });
52
+ });
@@ -215,6 +215,10 @@ var _exportNames = {
215
215
  LEGEND_DISPLAY_STYLE_FILL: true,
216
216
  LEGEND_DISPLAY_STYLE_TEXT: true,
217
217
  getColorByValueFromLegendSet: true,
218
+ HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST: true,
219
+ HIDE_EMPTY_ROW_ITEMS_AFTER_LAST: true,
220
+ HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST: true,
221
+ HIDE_EMPTY_ROW_ITEMS_ALL: true,
218
222
  formatValue: true,
219
223
  COLOR_SET_DEFAULT: true,
220
224
  COLOR_SET_BASIC: true,
@@ -713,6 +717,30 @@ Object.defineProperty(exports, "FixedPeriodSelect", {
713
717
  return _FixedPeriodSelect.default;
714
718
  }
715
719
  });
720
+ Object.defineProperty(exports, "HIDE_EMPTY_ROW_ITEMS_AFTER_LAST", {
721
+ enumerable: true,
722
+ get: function () {
723
+ return _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_AFTER_LAST;
724
+ }
725
+ });
726
+ Object.defineProperty(exports, "HIDE_EMPTY_ROW_ITEMS_ALL", {
727
+ enumerable: true,
728
+ get: function () {
729
+ return _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_ALL;
730
+ }
731
+ });
732
+ Object.defineProperty(exports, "HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST", {
733
+ enumerable: true,
734
+ get: function () {
735
+ return _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST;
736
+ }
737
+ });
738
+ Object.defineProperty(exports, "HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST", {
739
+ enumerable: true,
740
+ get: function () {
741
+ return _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST;
742
+ }
743
+ });
716
744
  Object.defineProperty(exports, "ITEM", {
717
745
  enumerable: true,
718
746
  get: function () {
@@ -1951,6 +1979,7 @@ var _index10 = require("./modules/layoutUiRules/index.js");
1951
1979
  var _index11 = require("./visualizations/index.js");
1952
1980
  var _fontStyle = require("./modules/fontStyle.js");
1953
1981
  var _legends = require("./modules/legends.js");
1982
+ var _hideEmptyRowItems = require("./modules/hideEmptyRowItems.js");
1954
1983
  var _renderValue = require("./modules/renderValue.js");
1955
1984
  var _colorSets = require("./visualizations/util/colors/colorSets.js");
1956
1985
  var _index12 = require("./components/PeriodDimension/utils/index.js");
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST = exports.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST = exports.HIDE_EMPTY_ROW_ITEMS_ALL = exports.HIDE_EMPTY_ROW_ITEMS_AFTER_LAST = void 0;
7
+ const HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST = exports.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST = 'BEFORE_FIRST';
8
+ const HIDE_EMPTY_ROW_ITEMS_AFTER_LAST = exports.HIDE_EMPTY_ROW_ITEMS_AFTER_LAST = 'AFTER_LAST';
9
+ const HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST = exports.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST = 'BEFORE_FIRST_AFTER_LAST';
10
+ const HIDE_EMPTY_ROW_ITEMS_ALL = exports.HIDE_EMPTY_ROW_ITEMS_ALL = 'ALL';
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = _default;
7
7
  var _arrayContains = _interopRequireDefault(require("d2-utilizr/lib/arrayContains"));
8
8
  var _arrayUnique = _interopRequireDefault(require("d2-utilizr/lib/arrayUnique"));
9
+ var _hideEmptyRowItems = require("../../../../modules/hideEmptyRowItems.js");
9
10
  var _visTypes = require("../../../../modules/visTypes.js");
10
11
  var _getTwoCategorySplitSerieData = _interopRequireDefault(require("./getTwoCategorySplitSerieData.js"));
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -60,16 +61,16 @@ function getFirstLastValueIndexes(series) {
60
61
  function cleanData(data, emptySeriesIndexes, firstValueIndex, lastValueIndex, hideEmptyRowItems) {
61
62
  let cleanedData;
62
63
  switch (hideEmptyRowItems) {
63
- case 'ALL':
64
+ case _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_ALL:
64
65
  cleanedData = arrayCleanUndefined(data.map((value, index) => (0, _arrayContains.default)(emptySeriesIndexes, index) ? undefined : value));
65
66
  break;
66
- case 'BEFORE_FIRST':
67
+ case _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST:
67
68
  cleanedData = data.slice(firstValueIndex);
68
69
  break;
69
- case 'AFTER_LAST':
70
+ case _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_AFTER_LAST:
70
71
  cleanedData = data.slice(0, lastValueIndex + 1);
71
72
  break;
72
- case 'BEFORE_FIRST_AFTER_LAST':
73
+ case _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST:
73
74
  cleanedData = data.slice(firstValueIndex, lastValueIndex + 1);
74
75
  break;
75
76
  default:
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = _default;
7
7
  var _isString = _interopRequireDefault(require("d2-utilizr/lib/isString"));
8
8
  var _objectClean = _interopRequireDefault(require("d2-utilizr/lib/objectClean"));
9
+ var _hideEmptyRowItems = require("../../../../modules/hideEmptyRowItems.js");
9
10
  var _legends = require("../../../../modules/legends.js");
10
11
  var _index = require("../../../../modules/outliers/index.js");
11
12
  var _visTypes = require("../../../../modules/visTypes.js");
@@ -144,7 +145,7 @@ function _default(_ref) {
144
145
  }
145
146
 
146
147
  // hide empty categories
147
- if (_layout.hideEmptyRowItems !== 'NONE') {
148
+ if (_layout.hideEmptyRowItems && [_hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST, _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_AFTER_LAST, _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST, _hideEmptyRowItems.HIDE_EMPTY_ROW_ITEMS_ALL].includes(_layout.hideEmptyRowItems)) {
148
149
  config = (0, _getTrimmedConfig.default)(config, _layout);
149
150
  }
150
151
 
@@ -10,8 +10,8 @@ const Wrapper = story => /*#__PURE__*/React.createElement(ConfigProvider, {
10
10
  }
11
11
  }
12
12
  }, /*#__PURE__*/React.createElement(DataProvider, {
13
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev",
14
- apiVersion: "41"
13
+ baseUrl: "https://test.e2e.dhis2.org/anly-42",
14
+ apiVersion: "42"
15
15
  }, story()));
16
16
  export default {
17
17
  title: 'DataDimension',
@@ -3,8 +3,8 @@ import React from 'react';
3
3
  import { OpenFileDialog } from '../components/OpenFileDialog/OpenFileDialog.js';
4
4
  import { VIS_TYPE_GROUP_ALL, VIS_TYPE_GROUP_CHARTS, VIS_TYPE_PIVOT_TABLE, VIS_TYPE_COLUMN, VIS_TYPE_BAR, VIS_TYPE_LINE_LIST } from '../modules/visTypes.js';
5
5
  const Wrapper = story => /*#__PURE__*/React.createElement(DataProvider, {
6
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev/",
7
- apiVersion: "41"
6
+ baseUrl: "https://test.e2e.dhis2.org/anly-42/",
7
+ apiVersion: "42"
8
8
  }, story());
9
9
  const user = {
10
10
  displayName: 'John Traore',
@@ -2,8 +2,8 @@ import { DataProvider } from '@dhis2/app-runtime';
2
2
  import React, { useState } from 'react';
3
3
  import OrgUnitDimension from '../components/OrgUnitDimension/OrgUnitDimension.js';
4
4
  const Wrapper = story => /*#__PURE__*/React.createElement(DataProvider, {
5
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev/",
6
- apiVersion: "41"
5
+ baseUrl: "https://test.e2e.dhis2.org/anly-42/",
6
+ apiVersion: "42"
7
7
  }, story());
8
8
  const defaultRootOrgUnits = ['ImspTQPwCqd']; // Sierra Leone
9
9
 
@@ -8,8 +8,8 @@ const Wrapper = story => /*#__PURE__*/React.createElement(ConfigProvider, {
8
8
  systemInfo: {}
9
9
  }
10
10
  }, /*#__PURE__*/React.createElement(DataProvider, {
11
- baseUrl: "https://test.e2e.dhis2.org/analytics-41dev/",
12
- apiVersion: "41"
11
+ baseUrl: "https://test.e2e.dhis2.org/anly-42/",
12
+ apiVersion: "42"
13
13
  }, story()));
14
14
  const selectedPeriods = [{
15
15
  id: 'LAST_12_MONTHS',
@@ -14,7 +14,7 @@ export const TranslationModal = _ref => {
14
14
  } = _ref;
15
15
  const [translations, setTranslations] = useState([]);
16
16
  const endpointPath = new URL(objectToTranslate.href).pathname;
17
- const endpointPathMatch = endpointPath.match(/api\/\d+\/(?<resource>.+)/);
17
+ const endpointPathMatch = endpointPath.match(/api\/(?:\d+\/)?(?<resource>.+)/);
18
18
  const resource = endpointPathMatch !== null && endpointPathMatch !== void 0 && endpointPathMatch.groups ? endpointPathMatch.groups.resource : null;
19
19
  const {
20
20
  translationsData,
@@ -0,0 +1,49 @@
1
+ import { ModalTitle, Modal } from '@dhis2/ui';
2
+ import { shallow } from 'enzyme';
3
+ import React from 'react';
4
+ import { TranslationModal } from '../TranslationModal.js';
5
+ const mockUseTranslationResults = jest.fn(() => ({
6
+ translationsData: undefined,
7
+ fetching: false
8
+ }));
9
+ jest.mock('../useTranslationsResults.js', () => ({
10
+ useTranslationsResults: args => mockUseTranslationResults(args)
11
+ }));
12
+ describe('The Translation Dialog component', () => {
13
+ let shallowTranslationModal;
14
+ let props;
15
+ const onClose = jest.fn();
16
+ const onTranslationSaved = jest.fn();
17
+ const getTranslationModalComponent = props => {
18
+ if (!shallowTranslationModal) {
19
+ shallowTranslationModal = shallow(/*#__PURE__*/React.createElement(TranslationModal, props));
20
+ }
21
+ return shallowTranslationModal;
22
+ };
23
+ beforeEach(() => {
24
+ shallowTranslationModal = undefined;
25
+ props = {
26
+ fieldsToTranslate: ['name', 'description'],
27
+ objectToTranslate: {
28
+ name: 'Test object',
29
+ href: 'https://dhis2.tld/path/api/visualization/object-id'
30
+ },
31
+ onClose,
32
+ onTranslationSaved
33
+ };
34
+ });
35
+ it('renders a Modal component', () => {
36
+ expect(getTranslationModalComponent(props).find(Modal)).toHaveLength(1);
37
+ });
38
+ it("renders a ModalTitle containing the object's name", () => {
39
+ expect(getTranslationModalComponent(props).find(ModalTitle).childAt(0).text()).toEqual(`Translate: ${props.objectToTranslate.name}`);
40
+ });
41
+ test.each(['https://dhis2.tld/path/api/visualization/object-id', 'https://dhis2.tld/path/api/42/visualization/object-id'])('uses the correct resource for the translation endpoint', href => {
42
+ props.objectToTranslate.href = href;
43
+ getTranslationModalComponent(props);
44
+ expect(mockUseTranslationResults).toHaveBeenCalled();
45
+ expect(mockUseTranslationResults).toHaveBeenCalledWith({
46
+ resource: 'visualization/object-id'
47
+ });
48
+ });
49
+ });
package/build/es/index.js CHANGED
@@ -121,6 +121,10 @@ export { FONT_STYLE_VISUALIZATION_TITLE, FONT_STYLE_VISUALIZATION_SUBTITLE, FONT
121
121
 
122
122
  export { LEGEND_DISPLAY_STRATEGY_BY_DATA_ITEM, LEGEND_DISPLAY_STRATEGY_FIXED, LEGEND_DISPLAY_STYLE_FILL, LEGEND_DISPLAY_STYLE_TEXT, getColorByValueFromLegendSet } from './modules/legends.js';
123
123
 
124
+ // Modules: hideEmptyRowItems
125
+
126
+ export { HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST, HIDE_EMPTY_ROW_ITEMS_AFTER_LAST, HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST, HIDE_EMPTY_ROW_ITEMS_ALL } from './modules/hideEmptyRowItems.js';
127
+
124
128
  // Modules: general
125
129
 
126
130
  export { renderValue as formatValue } from './modules/renderValue.js';
@@ -0,0 +1,4 @@
1
+ export const HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST = 'BEFORE_FIRST';
2
+ export const HIDE_EMPTY_ROW_ITEMS_AFTER_LAST = 'AFTER_LAST';
3
+ export const HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST = 'BEFORE_FIRST_AFTER_LAST';
4
+ export const HIDE_EMPTY_ROW_ITEMS_ALL = 'ALL';
@@ -1,5 +1,6 @@
1
1
  import arrayContains from 'd2-utilizr/lib/arrayContains';
2
2
  import arrayUnique from 'd2-utilizr/lib/arrayUnique';
3
+ import { HIDE_EMPTY_ROW_ITEMS_AFTER_LAST, HIDE_EMPTY_ROW_ITEMS_ALL, HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST, HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST } from '../../../../modules/hideEmptyRowItems.js';
3
4
  import { isTwoCategoryChartType } from '../../../../modules/visTypes.js';
4
5
  import getTwoCategorySplitSerieData from './getTwoCategorySplitSerieData.js';
5
6
  function arrayCleanUndefined(array) {
@@ -53,16 +54,16 @@ function getFirstLastValueIndexes(series) {
53
54
  function cleanData(data, emptySeriesIndexes, firstValueIndex, lastValueIndex, hideEmptyRowItems) {
54
55
  let cleanedData;
55
56
  switch (hideEmptyRowItems) {
56
- case 'ALL':
57
+ case HIDE_EMPTY_ROW_ITEMS_ALL:
57
58
  cleanedData = arrayCleanUndefined(data.map((value, index) => arrayContains(emptySeriesIndexes, index) ? undefined : value));
58
59
  break;
59
- case 'BEFORE_FIRST':
60
+ case HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST:
60
61
  cleanedData = data.slice(firstValueIndex);
61
62
  break;
62
- case 'AFTER_LAST':
63
+ case HIDE_EMPTY_ROW_ITEMS_AFTER_LAST:
63
64
  cleanedData = data.slice(0, lastValueIndex + 1);
64
65
  break;
65
- case 'BEFORE_FIRST_AFTER_LAST':
66
+ case HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST:
66
67
  cleanedData = data.slice(firstValueIndex, lastValueIndex + 1);
67
68
  break;
68
69
  default:
@@ -1,5 +1,6 @@
1
1
  import isString from 'd2-utilizr/lib/isString';
2
2
  import objectClean from 'd2-utilizr/lib/objectClean';
3
+ import { HIDE_EMPTY_ROW_ITEMS_AFTER_LAST, HIDE_EMPTY_ROW_ITEMS_ALL, HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST, HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST } from '../../../../modules/hideEmptyRowItems.js';
3
4
  import { LEGEND_DISPLAY_STRATEGY_BY_DATA_ITEM, LEGEND_DISPLAY_STRATEGY_FIXED } from '../../../../modules/legends.js';
4
5
  import { getOutlierHelper } from '../../../../modules/outliers/index.js';
5
6
  import { isStacked, isLegendSetType, VIS_TYPE_SCATTER, VIS_TYPE_GAUGE, VIS_TYPE_LINE } from '../../../../modules/visTypes.js';
@@ -135,7 +136,7 @@ export default function (_ref) {
135
136
  }
136
137
 
137
138
  // hide empty categories
138
- if (_layout.hideEmptyRowItems !== 'NONE') {
139
+ if (_layout.hideEmptyRowItems && [HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST, HIDE_EMPTY_ROW_ITEMS_AFTER_LAST, HIDE_EMPTY_ROW_ITEMS_BEFORE_FIRST_AFTER_LAST, HIDE_EMPTY_ROW_ITEMS_ALL].includes(_layout.hideEmptyRowItems)) {
139
140
  config = getTrimmedConfig(config, _layout);
140
141
  }
141
142
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhis2/analytics",
3
- "version": "28.0.1",
3
+ "version": "28.0.3",
4
4
  "main": "./build/cjs/index.js",
5
5
  "module": "./build/es/index.js",
6
6
  "exports": {