@sis-cc/dotstatsuite-components 17.23.0 → 17.24.0

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.
@@ -65,8 +65,6 @@ var getValuesEnhanced = exports.getValuesEnhanced = function getValuesEnhanced(_
65
65
  _ref2$parent = _ref2.parent,
66
66
  parent = _ref2$parent === undefined ? '' : _ref2$parent,
67
67
  reportYearStart = _ref2.reportYearStart,
68
- _ref2$_hiddenIds = _ref2._hiddenIds,
69
- _hiddenIds = _ref2$_hiddenIds === undefined ? {} : _ref2$_hiddenIds,
70
68
  _ref2$hiddenIds = _ref2.hiddenIds,
71
69
  hiddenIds = _ref2$hiddenIds === undefined ? {} : _ref2$hiddenIds,
72
70
  _ref2$options = _ref2.options,
@@ -77,7 +75,7 @@ var getValuesEnhanced = exports.getValuesEnhanced = function getValuesEnhanced(_
77
75
 
78
76
  var valueAnnotations = R.pipe(R.propOr([], 'annotations'), R.flip(R.props)(annotations))(value);
79
77
 
80
- var isHidden = _hiddenIds[parent] && R.includes(value.id, _hiddenIds[parent]) || R.has(parent + '.' + value.id, hiddenIds) || (0, _sdmxData.getIsHidden)(valueAnnotations);
78
+ var isHidden = R.has(parent + '.' + id, hiddenIds) || (0, _sdmxData.getIsHidden)(valueAnnotations);
81
79
 
82
80
  var _ref3 = isTimeDimension ? getTimePeriodAttributes({ reportYearStart: reportYearStart, options: options })(value) : { notes: [] },
83
81
  start = _ref3.start,
@@ -31,8 +31,7 @@ var TIME_PERIOD_ID = 'TIME_PERIOD';
31
31
 
32
32
  var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew) {
33
33
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
34
- var locale = options.locale,
35
- _hiddenIds = options.hiddenIds;
34
+ var locale = options.locale;
36
35
 
37
36
  var reportYearStart = (0, _getReportingYearStart.getReportingYearStart)(dataNew);
38
37
  var getName = R.prop('name');
@@ -46,7 +45,25 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
46
45
 
47
46
  var dataSetsAnnotations = R.props(R.pathOr([], [0, 'annotations'], dataSets), annotations);
48
47
 
49
- var hiddenIds = (0, _src.getNotDisplayedIds)(dataSetsAnnotations);
48
+ /*
49
+ hiddenValues => codelistIds or codelistValuesIds for display computation
50
+ hiddenCombinations => used only for dimensions, if dimension values match the provided set, all dimension is removed
51
+ */
52
+
53
+ var _getNotDisplayedIds = (0, _src.getNotDisplayedIds)(dataSetsAnnotations),
54
+ hiddenValues = _getNotDisplayedIds.hiddenValues,
55
+ hiddenCombinations = _getNotDisplayedIds.hiddenCombinations;
56
+
57
+ var getIsAllDimHidden = function getIsAllDimHidden(_ref) {
58
+ var id = _ref.id,
59
+ values = _ref.values;
60
+
61
+ if (!R.has(id, hiddenCombinations)) {
62
+ return false;
63
+ }
64
+ var valuesIds = R.pluck('id', values);
65
+ return R.isEmpty(R.difference(valuesIds), hiddenCombinations[id]);
66
+ };
50
67
 
51
68
  //--------------------------------------------------------------------------------------------Header
52
69
  var getMeta = R.propOr({}, 'meta');
@@ -70,15 +87,14 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
70
87
  var obsAnnotations = R.props(observation.annotations || [], annotations);
71
88
  return (0, _extends3.default)({}, observation, {
72
89
  __index: index,
73
- display: !R.has(observation.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(obsAnnotations),
90
+ display: !R.has(observation.id, hiddenValues) && !(0, _sdmxData.getIsHidden)(obsAnnotations),
74
91
  name: getName(observation),
75
92
  values: (0, _getValuesEnhanced.getValuesEnhanced)({
76
93
  locale: locale,
77
94
  annotations: annotations,
78
95
  parent: observation.id,
79
96
  reportYearStart: reportYearStart,
80
- _hiddenIds: _hiddenIds,
81
- hiddenIds: hiddenIds,
97
+ hiddenIds: hiddenValues,
82
98
  options: options
83
99
  })(R.propOr([], 'values', observation)),
84
100
  roles: !R.isNil(observation.role) ? R.head(observation.role) : null
@@ -88,14 +104,13 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
88
104
  var datasetAttributes = R.map(function (attr) {
89
105
  var attrAnnotations = R.props(attr.annotations || [], annotations);
90
106
  return (0, _extends3.default)({}, attr, {
91
- display: !R.has(attr.id, hiddenIds) && !(0, _sdmxData.getIsHidden)(attrAnnotations),
107
+ display: !R.has(attr.id, hiddenValues) && !(0, _sdmxData.getIsHidden)(attrAnnotations),
92
108
  name: getName(attr),
93
109
  values: (0, _getValuesEnhanced.getValuesEnhanced)({
94
110
  locale: locale,
95
111
  annotations: annotations,
96
112
  parent: attr.id,
97
- _hiddenIds: _hiddenIds,
98
- hiddenIds: hiddenIds,
113
+ hiddenIds: hiddenValues,
99
114
  options: options,
100
115
  reportYearStart: reportYearStart
101
116
  })(R.propOr([], 'values', attr))
@@ -124,18 +139,17 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
124
139
  isTimeDimension: isTimeDimension,
125
140
  reportYearStart: reportYearStart,
126
141
  parent: id,
127
- _hiddenIds: _hiddenIds,
128
- hiddenIds: hiddenIds,
142
+ hiddenIds: hiddenValues,
129
143
  options: options
130
144
  })(R.propOr([], 'values', observation));
131
- var _idHidden = _hiddenIds[id] && R.isEmpty(R.difference(R.pluck('id')(values), _hiddenIds[id]));
132
- var isHidden = _idHidden || R.has(id, hiddenIds) || (0, _sdmxData.getIsHidden)(dimAnnotations);
145
+ var isAllDimHidden = getIsAllDimHidden({ id: id, values: values });
146
+ var isHidden = isAllDimHidden || R.has(id, hiddenValues) || (0, _sdmxData.getIsHidden)(dimAnnotations);
133
147
  return {
134
148
  observation: R.append((0, _extends3.default)({}, observation, {
135
149
  display: !isHidden,
136
150
  __index: obsIndex,
137
151
  name: getName(observation),
138
- values: _idHidden ? [] : values,
152
+ values: isAllDimHidden ? [] : values,
139
153
  role: isTimeDimension ? TIME_PERIOD_ID : R.head(R.propOr([], 'roles', observation))
140
154
  }))(acc.observation),
141
155
  dimensionsLayout: (0, _sdmxData.setAnnotationsLayout)(id, acc.dimensionsLayout)(dimAnnotations)
@@ -9,38 +9,50 @@ var _ramda = require('ramda');
9
9
 
10
10
  var R = _interopRequireWildcard(_ramda);
11
11
 
12
+ var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
13
+
12
14
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
13
15
 
14
- var getNotDisplayedIds = exports.getNotDisplayedIds = function getNotDisplayedIds(annotations) {
15
- return R.pipe(R.find(R.propEq('type', 'NOT_DISPLAYED')), function (annot) {
16
- if (R.isNil(annot)) {
17
- return {};
16
+ var getNotDisplayedValues = function getNotDisplayedValues(annot) {
17
+ if (R.isNil(annot)) {
18
+ return {};
19
+ }
20
+ var ids = R.split(',', annot.title || '');
21
+ return R.reduce(function (acc, entry) {
22
+ if (R.isEmpty(entry)) {
23
+ return acc;
18
24
  }
19
- var ids = R.split(',', annot.title || '');
20
- return R.reduce(function (acc, entry) {
21
- if (R.isEmpty(entry)) {
22
- return acc;
23
- }
24
- var parsed = R.split('=', entry);
25
- var dimensionId = parsed[0];
26
- if (R.length(parsed) === 1) {
27
- return R.assoc(dimensionId, dimensionId, acc);
25
+ var parsed = R.split('=', entry);
26
+ var dimensionId = parsed[0];
27
+ if (R.length(parsed) === 1) {
28
+ return R.assoc(dimensionId, dimensionId, acc);
29
+ }
30
+ var values = R.split('+', parsed[1]);
31
+ if (R.length(values) === 1 && R.isEmpty(values[0])) {
32
+ return R.assoc(dimensionId, dimensionId, acc);
33
+ }
34
+ return R.reduce(function (_acc, val) {
35
+ var _val = val;
36
+ if (R.isEmpty(val)) {
37
+ return _acc;
28
38
  }
29
- var values = R.split('+', parsed[1]);
30
- if (R.length(values) === 1 && R.isEmpty(values[0])) {
31
- return R.assoc(dimensionId, dimensionId, acc);
39
+ if (R.test('/[()]/')) {
40
+ _val = R.replace(/[()]/g, '')(val);
32
41
  }
33
- return R.reduce(function (_acc, val) {
34
- var _val = val;
35
- if (R.isEmpty(val)) {
36
- return _acc;
37
- }
38
- if (R.test('/[()]/')) {
39
- _val = R.replace(/[()]/g, '')(val);
40
- }
41
- var key = R.isEmpty(_val) ? dimensionId : dimensionId + '.' + _val;
42
- return R.assoc(key, key, _acc);
43
- }, acc, values);
44
- }, {}, ids);
45
- })(annotations);
42
+ var key = R.isEmpty(_val) ? dimensionId : dimensionId + '.' + _val;
43
+ return R.assoc(key, key, _acc);
44
+ }, acc, values);
45
+ }, {}, ids);
46
+ };
47
+
48
+ var getNotDisplayedIds = exports.getNotDisplayedIds = function getNotDisplayedIds(annotations) {
49
+ return R.pipe(R.find(R.propEq('type', 'NOT_DISPLAYED')), R.converge(function (hiddenValues, hiddenCombinations) {
50
+ return {
51
+ hiddenValues: hiddenValues,
52
+ hiddenCombinations: hiddenCombinations
53
+ };
54
+ }, [getNotDisplayedValues, function () {
55
+ var annot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { title: '' };
56
+ return (0, _dotstatsuiteSdmxjs.getNotDisplayedCombinations)(annot);
57
+ }]))(annotations);
46
58
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-components",
3
3
  "description": "Set components based on React.",
4
- "version": "17.23.0",
4
+ "version": "17.24.0",
5
5
  "main": "lib/index.js",
6
6
  "author": "OECD",
7
7
  "license": "MIT",
@@ -40,7 +40,6 @@ export const getValuesEnhanced = ({
40
40
  isTimeDimension = false,
41
41
  parent = '',
42
42
  reportYearStart,
43
- _hiddenIds = {},
44
43
  hiddenIds = {},
45
44
  options = {},
46
45
  }) => {
@@ -53,9 +52,7 @@ export const getValuesEnhanced = ({
53
52
  R.flip(R.props)(annotations),
54
53
  )(value);
55
54
 
56
- const isHidden =
57
- (_hiddenIds[parent] && R.includes(value.id, _hiddenIds[parent])) ||
58
- R.has(`${parent}.${value.id}`, hiddenIds) ||
55
+ const isHidden = R.has(`${parent}.${id}`, hiddenIds) ||
59
56
  getIsHidden(valueAnnotations);
60
57
 
61
58
  const { start, notes } = isTimeDimension
@@ -14,7 +14,7 @@ import { getValuesEnhanced } from './get-values-enhanced';
14
14
  const TIME_PERIOD_ID = 'TIME_PERIOD';
15
15
 
16
16
  export const dataTransformer = (dataNew, options = {}) => {
17
- const { locale, hiddenIds: _hiddenIds } = options;
17
+ const { locale } = options;
18
18
  const reportYearStart = getReportingYearStart(dataNew);
19
19
  const getName = R.prop('name')
20
20
  //---------------------------------------------------------------------------------------Annotations
@@ -30,7 +30,18 @@ export const dataTransformer = (dataNew, options = {}) => {
30
30
  annotations,
31
31
  );
32
32
 
33
- const hiddenIds = getNotDisplayedIds(dataSetsAnnotations);
33
+ /*
34
+ hiddenValues => codelistIds or codelistValuesIds for display computation
35
+ hiddenCombinations => used only for dimensions, if dimension values match the provided set, all dimension is removed
36
+ */
37
+ const { hiddenValues, hiddenCombinations } = getNotDisplayedIds(dataSetsAnnotations);
38
+ const getIsAllDimHidden = ({ id, values }) => {
39
+ if (!R.has(id, hiddenCombinations)) {
40
+ return false;
41
+ }
42
+ const valuesIds = R.pluck('id', values);
43
+ return R.isEmpty(R.difference(valuesIds), hiddenCombinations[id]);
44
+ }
34
45
 
35
46
  //--------------------------------------------------------------------------------------------Header
36
47
  const getMeta = R.propOr({}, 'meta');
@@ -57,15 +68,14 @@ export const dataTransformer = (dataNew, options = {}) => {
57
68
  ...observation,
58
69
  __index: index,
59
70
  display:
60
- !R.has(observation.id, hiddenIds) && !getIsHidden(obsAnnotations),
71
+ !R.has(observation.id, hiddenValues) && !getIsHidden(obsAnnotations),
61
72
  name: getName(observation),
62
73
  values: getValuesEnhanced({
63
74
  locale,
64
75
  annotations,
65
76
  parent: observation.id,
66
77
  reportYearStart,
67
- _hiddenIds,
68
- hiddenIds,
78
+ hiddenIds: hiddenValues,
69
79
  options,
70
80
  })(R.propOr([], 'values', observation)),
71
81
  roles: !R.isNil(observation.role) ? R.head(observation.role) : null,
@@ -76,14 +86,13 @@ export const dataTransformer = (dataNew, options = {}) => {
76
86
  const attrAnnotations = R.props(attr.annotations || [], annotations);
77
87
  return {
78
88
  ...attr,
79
- display: !R.has(attr.id, hiddenIds) && !getIsHidden(attrAnnotations),
89
+ display: !R.has(attr.id, hiddenValues) && !getIsHidden(attrAnnotations),
80
90
  name: getName(attr),
81
91
  values: getValuesEnhanced({
82
92
  locale,
83
93
  annotations,
84
94
  parent: attr.id,
85
- _hiddenIds,
86
- hiddenIds,
95
+ hiddenIds: hiddenValues,
87
96
  options,
88
97
  reportYearStart,
89
98
  })(R.propOr([], 'values', attr)),
@@ -116,22 +125,19 @@ export const dataTransformer = (dataNew, options = {}) => {
116
125
  isTimeDimension,
117
126
  reportYearStart,
118
127
  parent: id,
119
- _hiddenIds,
120
- hiddenIds,
128
+ hiddenIds: hiddenValues,
121
129
  options,
122
130
  })(R.propOr([], 'values', observation));
123
- const _idHidden =
124
- _hiddenIds[id] &&
125
- R.isEmpty(R.difference(R.pluck('id')(values), _hiddenIds[id]));
126
- const isHidden =
127
- _idHidden || R.has(id, hiddenIds) || getIsHidden(dimAnnotations);
131
+ const isAllDimHidden = getIsAllDimHidden({ id, values });
132
+ const isHidden = isAllDimHidden || R.has(id, hiddenValues)
133
+ || getIsHidden(dimAnnotations);
128
134
  return {
129
135
  observation: R.append({
130
136
  ...observation,
131
137
  display: !isHidden,
132
138
  __index: obsIndex,
133
139
  name: getName(observation),
134
- values: _idHidden ? [] : values,
140
+ values: isAllDimHidden ? [] : values,
135
141
  role: isTimeDimension
136
142
  ? TIME_PERIOD_ID
137
143
  : R.head(R.propOr([], 'roles', observation)),
@@ -1,44 +1,53 @@
1
1
  import * as R from 'ramda';
2
+ import { getNotDisplayedCombinations } from '@sis-cc/dotstatsuite-sdmxjs';
3
+
4
+ const getNotDisplayedValues = annot => {
5
+ if (R.isNil(annot)) {
6
+ return {};
7
+ }
8
+ const ids = R.split(',', annot.title || '');
9
+ return R.reduce(
10
+ (acc, entry) => {
11
+ if (R.isEmpty(entry)) {
12
+ return acc;
13
+ }
14
+ const parsed = R.split('=', entry);
15
+ const dimensionId = parsed[0];
16
+ if (R.length(parsed) === 1) {
17
+ return R.assoc(dimensionId, dimensionId, acc);
18
+ }
19
+ const values = R.split('+', parsed[1]);
20
+ if (R.length(values) === 1 && R.isEmpty(values[0])) {
21
+ return R.assoc(dimensionId, dimensionId, acc);
22
+ }
23
+ return R.reduce(
24
+ (_acc, val) => {
25
+ let _val = val
26
+ if (R.isEmpty(val)) {
27
+ return _acc;
28
+ }
29
+ if (R.test('/[()]/')) {
30
+ _val = R.replace(/[()]/g, '')(val)
31
+ }
32
+ const key = R.isEmpty(_val) ? dimensionId : `${dimensionId}.${_val}`;
33
+ return R.assoc(key, key, _acc);
34
+ },
35
+ acc,
36
+ values
37
+ );
38
+ },
39
+ {},
40
+ ids
41
+ );
42
+ };
2
43
 
3
44
  export const getNotDisplayedIds = (annotations) => R.pipe(
4
45
  R.find(R.propEq('type', 'NOT_DISPLAYED')),
5
- annot => {
6
- if (R.isNil(annot)) {
7
- return {};
8
- }
9
- const ids = R.split(',', annot.title || '');
10
- return R.reduce(
11
- (acc, entry) => {
12
- if (R.isEmpty(entry)) {
13
- return acc;
14
- }
15
- const parsed = R.split('=', entry);
16
- const dimensionId = parsed[0];
17
- if (R.length(parsed) === 1) {
18
- return R.assoc(dimensionId, dimensionId, acc);
19
- }
20
- const values = R.split('+', parsed[1]);
21
- if (R.length(values) === 1 && R.isEmpty(values[0])) {
22
- return R.assoc(dimensionId, dimensionId, acc);
23
- }
24
- return R.reduce(
25
- (_acc, val) => {
26
- let _val = val
27
- if (R.isEmpty(val)) {
28
- return _acc;
29
- }
30
- if (R.test('/[()]/')) {
31
- _val = R.replace(/[()]/g, '')(val)
32
- }
33
- const key = R.isEmpty(_val) ? dimensionId : `${dimensionId}.${_val}`;
34
- return R.assoc(key, key, _acc);
35
- },
36
- acc,
37
- values
38
- );
39
- },
40
- {},
41
- ids
42
- );
43
- }
46
+ R.converge((hiddenValues, hiddenCombinations) => ({
47
+ hiddenValues,
48
+ hiddenCombinations
49
+ }), [
50
+ getNotDisplayedValues,
51
+ (annot={ title: '' }) => getNotDisplayedCombinations(annot)
52
+ ])
44
53
  )(annotations);
@@ -9,7 +9,7 @@ describe('getNotDisplayedIds tests', () => {
9
9
  { type: 'NOT_DISPLAYED', title: '' },
10
10
  { type: 'test2' },
11
11
  ];
12
- expect(getNotDisplayedIds(annotations)).to.deep.equal({});
12
+ expect(getNotDisplayedIds(annotations)).to.deep.equal({ hiddenValues: {}, hiddenCombinations: {} });
13
13
  });
14
14
  it('complete case', () => {
15
15
  const annotations = [
@@ -19,25 +19,28 @@ describe('getNotDisplayedIds tests', () => {
19
19
  { type: 'test2' },
20
20
  ];
21
21
  const expected = {
22
- d0: 'd0',
23
- d1: 'd1',
24
- 'd2.v0': 'd2.v0',
25
- 'd3.v0': 'd3.v0',
26
- 'd4.v0': 'd4.v0',
27
- 'd4.v1': 'd4.v1',
28
- 'd5.v0': 'd5.v0',
29
- 'd5.v1': 'd5.v1',
30
- 'd5.v2': 'd5.v2',
31
- 'd6.v0': 'd6.v0',
32
- 'd6.v1': 'd6.v1',
33
- 'd7.v0': 'd7.v0',
34
- 'd7.v1': 'd7.v1',
35
- 'd8.v0': 'd8.v0',
36
- 'd8.v1': 'd8.v1',
37
- d9: 'd9',
38
-
39
-
40
-
22
+ hiddenValues: {
23
+ d0: 'd0',
24
+ d1: 'd1',
25
+ 'd2.v0': 'd2.v0',
26
+ 'd3.v0': 'd3.v0',
27
+ 'd4.v0': 'd4.v0',
28
+ 'd4.v1': 'd4.v1',
29
+ 'd5.v0': 'd5.v0',
30
+ 'd5.v1': 'd5.v1',
31
+ 'd5.v2': 'd5.v2',
32
+ 'd6.v0': 'd6.v0',
33
+ 'd6.v1': 'd6.v1',
34
+ 'd7.v0': 'd7.v0',
35
+ 'd7.v1': 'd7.v1',
36
+ 'd8.v0': 'd8.v0',
37
+ 'd8.v1': 'd8.v1',
38
+ d9: 'd9',
39
+ },
40
+ hiddenCombinations: {
41
+ d5: ['v0', 'v1'],
42
+ d6: ['v0', 'v1'],
43
+ }
41
44
  };
42
45
  expect(getNotDisplayedIds(annotations)).to.deep.equal(expected);
43
46
  });