@sis-cc/dotstatsuite-visions 7.22.3 → 7.22.4

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.
@@ -15,6 +15,7 @@ var Period = function Period(_ref) {
15
15
  _ref$availableFrequen = _ref.availableFrequencies,
16
16
  availableFrequencies = _ref$availableFrequen === undefined ? [defaultfreq] : _ref$availableFrequen,
17
17
  _boundaries = _ref.boundaries,
18
+ _availableBoundaries = _ref.availableBoundaries,
18
19
  changePeriod = _ref.changePeriod,
19
20
  changeFrequency = _ref.changeFrequency,
20
21
  _period = _ref.period,
@@ -31,12 +32,19 @@ var Period = function Period(_ref) {
31
32
  });
32
33
  var period = R.defaultTo([], _period);
33
34
  var boundaries = R.defaultTo([], _boundaries);
35
+ var availableBoundaries = R.defaultTo([], _availableBoundaries);
34
36
  var isPeriodDisabled = R.or(R.any(R.isEmpty)([period, boundaries]), periodDisabled);
35
37
  var startDate = R.head(period);
36
38
  var endDate = R.last(period);
39
+
40
+ var startPeriodAvailableBoundaries = [R.head(availableBoundaries), R.defaultTo(R.last(availableBoundaries), endDate)];
41
+ var endPeriodAvailableBoundaries = [R.defaultTo(R.head(availableBoundaries), startDate), R.last(availableBoundaries)];
42
+ var availableRanges = [getRange(startPeriodAvailableBoundaries, startDate), getRange(endPeriodAvailableBoundaries, endDate)];
43
+
37
44
  var startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];
38
45
  var endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];
39
46
  var ranges = [getRange(startPeriodBoundaries, startDate), getRange(endPeriodBoundaries, endDate)];
47
+
40
48
  var showFrequency = R.and(R.gt(R.length(frequencies), 1), R.not(frequencyDisabled));
41
49
  var destructuringDates = R.map(getDestructuringDate)(period);
42
50
  var onChangeFrequency = function onChangeFrequency(value) {
@@ -119,7 +127,8 @@ var Period = function Period(_ref) {
119
127
  R.map(function (row) {
120
128
  return R.map(function (_ref4) {
121
129
  var id = _ref4.id,
122
- values = _ref4.values;
130
+ values = _ref4.values,
131
+ availableValues = _ref4.availableValues;
123
132
 
124
133
  var selectedValue = R.isNil(R.prop(id)(value)) ? R.head(values) : R.prop(id)(value);
125
134
  return React.createElement(
@@ -140,6 +149,7 @@ var Period = function Period(_ref) {
140
149
  return {
141
150
  id: id,
142
151
  value: option,
152
+ disabled: !R.isEmpty(availableValues) ? !R.includes(option, availableValues) : false,
143
153
  label: R.ifElse(R.is(String), R.identity, R.prop(id)(numeralFormat))(option)
144
154
  };
145
155
  })(values)
@@ -154,13 +164,13 @@ var Period = function Period(_ref) {
154
164
  })([{
155
165
  getter: 'start',
156
166
  testId: 'period-picker-start-period-test-id',
157
- layout: getLayout(frequency, R.head(ranges), R.head),
167
+ layout: getLayout(frequency, R.head(ranges), R.head(availableRanges)),
158
168
  label: R.prop('start')(labels),
159
169
  value: getPeriodValue(R.head(destructuringDates))
160
170
  }, {
161
171
  getter: 'end',
162
172
  testId: 'period-picker-end-period-test-id',
163
- layout: getLayout(frequency, R.last(ranges), R.last),
173
+ layout: getLayout(frequency, R.last(ranges), R.last(availableRanges)),
164
174
  label: R.prop('end')(labels),
165
175
  value: getPeriodValue(R.last(destructuringDates))
166
176
  }])
@@ -170,6 +180,7 @@ var Period = function Period(_ref) {
170
180
  Period.propTypes = process.env.NODE_ENV !== "production" ? {
171
181
  defaultFrequency: PropTypes.string,
172
182
  availableFrequencies: PropTypes.array,
183
+ availableBoundaries: PropTypes.array,
173
184
  boundaries: PropTypes.array,
174
185
  changePeriod: PropTypes.func,
175
186
  changeFrequency: PropTypes.func,
@@ -22,15 +22,15 @@ export var HOUR = 'hour';
22
22
  export var MINUTE = 'minute';
23
23
 
24
24
  export var layoutFrequencies = {
25
- S: [[{ values: YEARS, id: YEAR }, { values: SEMESTERS, id: SEMESTER }]],
26
- A: [[{ values: YEARS, id: YEAR }]],
27
- Q: [[{ values: YEARS, id: YEAR }, { values: QUARTERS, id: QUARTER }]],
28
- M: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }]],
29
- W: [[{ values: YEARS, id: YEAR }, { values: WEEKS, id: WEEK }]],
30
- B: [[{ values: YEARS, id: YEAR }, { values: WEEKS, id: WEEK }]],
31
- D: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }, { values: DAYS, id: DAY }]],
32
- H: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }, { values: DAYS, id: DAY }], [{ values: FULL_HOURS, id: FULL_HOUR }]],
33
- N: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }, { values: DAYS, id: DAY }], [{ values: HOURS, id: HOUR }, { values: MINUTES, id: MINUTE }]]
25
+ S: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: SEMESTERS, availableValues: SEMESTERS, id: SEMESTER }]],
26
+ A: [[{ values: YEARS, availableValues: YEARS, id: YEAR }]],
27
+ Q: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: QUARTERS, availableValues: QUARTERS, id: QUARTER }]],
28
+ M: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: YEARS, id: MONTH }]],
29
+ W: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: WEEKS, availableValues: WEEKS, id: WEEK }]],
30
+ B: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: WEEKS, availableValues: WEEKS, id: WEEK }]],
31
+ D: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: MONTHS, id: MONTH }, { values: DAYS, availableValues: DAYS, id: DAY }]],
32
+ H: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: MONTHS, id: MONTH }, { values: DAYS, availableValues: DAYS, id: DAY }], [{ values: FULL_HOURS, availableValues: FULL_HOURS, id: FULL_HOUR }]],
33
+ N: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: WEEKS, id: MONTH }, { values: DAYS, availableValues: DAYS, id: DAY }], [{ values: HOURS, availableValues: HOURS, id: HOUR }, { values: MINUTES, availableValues: MINUTES, id: MINUTE }]]
34
34
  };
35
35
 
36
36
  export var defaultOutputValues = (_defaultOutputValues = {}, _defaultOutputValues[YEARS] = '----', _defaultOutputValues[SEMESTERS] = '-', _defaultOutputValues[QUARTERS] = '-', _defaultOutputValues[MONTHS] = '--', _defaultOutputValues[WEEKS] = '--', _defaultOutputValues[DAYS] = '--', _defaultOutputValues[FULL_HOURS] = '--:00', _defaultOutputValues[HOURS] = '--', _defaultOutputValues[MINUTES] = '--', _defaultOutputValues);
@@ -133,12 +133,15 @@ export var getFrequencyOptions = function getFrequencyOptions(frequencyoptions,
133
133
  return options;
134
134
  };
135
135
 
136
- export var getLayout = function getLayout(type, range) {
136
+ export var getLayout = function getLayout(type, range, availableRange) {
137
137
  var layoutPeriods = R.propOr([], type)(layoutFrequencies);
138
138
  var hasYear = R.complement(R.isEmpty)(getRanges(range.years));
139
139
  return R.map(R.reduce(function (acc, period) {
140
- if (hasYear) return R.append(R.evolve({ values: setRange(range) }, period), acc);
141
- return R.append(R.evolve({ values: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([])) }, period), acc);
140
+ if (hasYear) return R.append(R.evolve({ values: setRange(range), availableValues: setRange(availableRange) }, period), acc);
141
+ return R.append(R.evolve({
142
+ values: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([])),
143
+ availableValues: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([]))
144
+ }, period), acc);
142
145
  }, []))(layoutPeriods);
143
146
  };
144
147
 
@@ -127,7 +127,8 @@ var Select = function Select(_ref) {
127
127
  value: value,
128
128
  dense: true,
129
129
  'aria-label': label,
130
- title: label
130
+ title: label,
131
+ disabled: R.propOr(false, 'disabled')(item)
131
132
  },
132
133
  React.createElement(
133
134
  Typography,
@@ -40,6 +40,7 @@ var Period = function Period(_ref) {
40
40
  _ref$availableFrequen = _ref.availableFrequencies,
41
41
  availableFrequencies = _ref$availableFrequen === undefined ? [_constants.defaultfreq] : _ref$availableFrequen,
42
42
  _boundaries = _ref.boundaries,
43
+ _availableBoundaries = _ref.availableBoundaries,
43
44
  changePeriod = _ref.changePeriod,
44
45
  changeFrequency = _ref.changeFrequency,
45
46
  _period = _ref.period,
@@ -56,12 +57,19 @@ var Period = function Period(_ref) {
56
57
  });
57
58
  var period = R.defaultTo([], _period);
58
59
  var boundaries = R.defaultTo([], _boundaries);
60
+ var availableBoundaries = R.defaultTo([], _availableBoundaries);
59
61
  var isPeriodDisabled = R.or(R.any(R.isEmpty)([period, boundaries]), periodDisabled);
60
62
  var startDate = R.head(period);
61
63
  var endDate = R.last(period);
64
+
65
+ var startPeriodAvailableBoundaries = [R.head(availableBoundaries), R.defaultTo(R.last(availableBoundaries), endDate)];
66
+ var endPeriodAvailableBoundaries = [R.defaultTo(R.head(availableBoundaries), startDate), R.last(availableBoundaries)];
67
+ var availableRanges = [(0, _lib.getRange)(startPeriodAvailableBoundaries, startDate), (0, _lib.getRange)(endPeriodAvailableBoundaries, endDate)];
68
+
62
69
  var startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];
63
70
  var endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];
64
71
  var ranges = [(0, _lib.getRange)(startPeriodBoundaries, startDate), (0, _lib.getRange)(endPeriodBoundaries, endDate)];
72
+
65
73
  var showFrequency = R.and(R.gt(R.length(frequencies), 1), R.not(frequencyDisabled));
66
74
  var destructuringDates = R.map(_lib.getDestructuringDate)(period);
67
75
  var onChangeFrequency = function onChangeFrequency(value) {
@@ -144,7 +152,8 @@ var Period = function Period(_ref) {
144
152
  R.map(function (row) {
145
153
  return R.map(function (_ref4) {
146
154
  var id = _ref4.id,
147
- values = _ref4.values;
155
+ values = _ref4.values,
156
+ availableValues = _ref4.availableValues;
148
157
 
149
158
  var selectedValue = R.isNil(R.prop(id)(value)) ? R.head(values) : R.prop(id)(value);
150
159
  return _react2.default.createElement(
@@ -165,6 +174,7 @@ var Period = function Period(_ref) {
165
174
  return {
166
175
  id: id,
167
176
  value: option,
177
+ disabled: !R.isEmpty(availableValues) ? !R.includes(option, availableValues) : false,
168
178
  label: R.ifElse(R.is(String), R.identity, R.prop(id)(_lib.numeralFormat))(option)
169
179
  };
170
180
  })(values)
@@ -179,13 +189,13 @@ var Period = function Period(_ref) {
179
189
  })([{
180
190
  getter: 'start',
181
191
  testId: 'period-picker-start-period-test-id',
182
- layout: (0, _lib.getLayout)(frequency, R.head(ranges), R.head),
192
+ layout: (0, _lib.getLayout)(frequency, R.head(ranges), R.head(availableRanges)),
183
193
  label: R.prop('start')(labels),
184
194
  value: (0, _lib.getPeriodValue)(R.head(destructuringDates))
185
195
  }, {
186
196
  getter: 'end',
187
197
  testId: 'period-picker-end-period-test-id',
188
- layout: (0, _lib.getLayout)(frequency, R.last(ranges), R.last),
198
+ layout: (0, _lib.getLayout)(frequency, R.last(ranges), R.last(availableRanges)),
189
199
  label: R.prop('end')(labels),
190
200
  value: (0, _lib.getPeriodValue)(R.last(destructuringDates))
191
201
  }])
@@ -195,6 +205,7 @@ var Period = function Period(_ref) {
195
205
  Period.propTypes = process.env.NODE_ENV !== "production" ? {
196
206
  defaultFrequency: _propTypes2.default.string,
197
207
  availableFrequencies: _propTypes2.default.array,
208
+ availableBoundaries: _propTypes2.default.array,
198
209
  boundaries: _propTypes2.default.array,
199
210
  changePeriod: _propTypes2.default.func,
200
211
  changeFrequency: _propTypes2.default.func,
@@ -26,15 +26,15 @@ var HOUR = exports.HOUR = 'hour';
26
26
  var MINUTE = exports.MINUTE = 'minute';
27
27
 
28
28
  var layoutFrequencies = exports.layoutFrequencies = {
29
- S: [[{ values: YEARS, id: YEAR }, { values: SEMESTERS, id: SEMESTER }]],
30
- A: [[{ values: YEARS, id: YEAR }]],
31
- Q: [[{ values: YEARS, id: YEAR }, { values: QUARTERS, id: QUARTER }]],
32
- M: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }]],
33
- W: [[{ values: YEARS, id: YEAR }, { values: WEEKS, id: WEEK }]],
34
- B: [[{ values: YEARS, id: YEAR }, { values: WEEKS, id: WEEK }]],
35
- D: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }, { values: DAYS, id: DAY }]],
36
- H: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }, { values: DAYS, id: DAY }], [{ values: FULL_HOURS, id: FULL_HOUR }]],
37
- N: [[{ values: YEARS, id: YEAR }, { values: MONTHS, id: MONTH }, { values: DAYS, id: DAY }], [{ values: HOURS, id: HOUR }, { values: MINUTES, id: MINUTE }]]
29
+ S: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: SEMESTERS, availableValues: SEMESTERS, id: SEMESTER }]],
30
+ A: [[{ values: YEARS, availableValues: YEARS, id: YEAR }]],
31
+ Q: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: QUARTERS, availableValues: QUARTERS, id: QUARTER }]],
32
+ M: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: YEARS, id: MONTH }]],
33
+ W: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: WEEKS, availableValues: WEEKS, id: WEEK }]],
34
+ B: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: WEEKS, availableValues: WEEKS, id: WEEK }]],
35
+ D: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: MONTHS, id: MONTH }, { values: DAYS, availableValues: DAYS, id: DAY }]],
36
+ H: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: MONTHS, id: MONTH }, { values: DAYS, availableValues: DAYS, id: DAY }], [{ values: FULL_HOURS, availableValues: FULL_HOURS, id: FULL_HOUR }]],
37
+ N: [[{ values: YEARS, availableValues: YEARS, id: YEAR }, { values: MONTHS, availableValues: WEEKS, id: MONTH }, { values: DAYS, availableValues: DAYS, id: DAY }], [{ values: HOURS, availableValues: HOURS, id: HOUR }, { values: MINUTES, availableValues: MINUTES, id: MINUTE }]]
38
38
  };
39
39
 
40
40
  var defaultOutputValues = exports.defaultOutputValues = (_defaultOutputValues = {}, _defaultOutputValues[YEARS] = '----', _defaultOutputValues[SEMESTERS] = '-', _defaultOutputValues[QUARTERS] = '-', _defaultOutputValues[MONTHS] = '--', _defaultOutputValues[WEEKS] = '--', _defaultOutputValues[DAYS] = '--', _defaultOutputValues[FULL_HOURS] = '--:00', _defaultOutputValues[HOURS] = '--', _defaultOutputValues[MINUTES] = '--', _defaultOutputValues);
@@ -151,12 +151,15 @@ var getFrequencyOptions = exports.getFrequencyOptions = function getFrequencyOpt
151
151
  return options;
152
152
  };
153
153
 
154
- var getLayout = exports.getLayout = function getLayout(type, range) {
154
+ var getLayout = exports.getLayout = function getLayout(type, range, availableRange) {
155
155
  var layoutPeriods = R.propOr([], type)(_constants.layoutFrequencies);
156
156
  var hasYear = R.complement(R.isEmpty)(getRanges(range.years));
157
157
  return R.map(R.reduce(function (acc, period) {
158
- if (hasYear) return R.append(R.evolve({ values: setRange(range) }, period), acc);
159
- return R.append(R.evolve({ values: R.pipe(R.flip(R.prop)(_constants.defaultOutputValues), R.flip(R.append)([])) }, period), acc);
158
+ if (hasYear) return R.append(R.evolve({ values: setRange(range), availableValues: setRange(availableRange) }, period), acc);
159
+ return R.append(R.evolve({
160
+ values: R.pipe(R.flip(R.prop)(_constants.defaultOutputValues), R.flip(R.append)([])),
161
+ availableValues: R.pipe(R.flip(R.prop)(_constants.defaultOutputValues), R.flip(R.append)([]))
162
+ }, period), acc);
160
163
  }, []))(layoutPeriods);
161
164
  };
162
165
 
@@ -151,7 +151,8 @@ var Select = function Select(_ref) {
151
151
  value: value,
152
152
  dense: true,
153
153
  'aria-label': label,
154
- title: label
154
+ title: label,
155
+ disabled: R.propOr(false, 'disabled')(item)
155
156
  },
156
157
  _react2.default.createElement(
157
158
  _core.Typography,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "7.22.3",
3
+ "version": "7.22.4",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",