@sis-cc/dotstatsuite-visions 7.22.6 → 7.22.7

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.
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import * as R from 'ramda';
3
3
  import PropTypes from 'prop-types';
4
+ import dateFns from 'date-fns';
4
5
  import Grid from '@material-ui/core/Grid';
5
6
  import { numeralFormat } from './lib';
6
7
  import { Select } from '../';
@@ -37,10 +38,6 @@ var Period = function Period(_ref) {
37
38
  var startDate = R.head(period);
38
39
  var endDate = R.last(period);
39
40
 
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
-
44
41
  var startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];
45
42
  var endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];
46
43
  var ranges = [getRange(startPeriodBoundaries, startDate), getRange(endPeriodBoundaries, endDate)];
@@ -50,6 +47,22 @@ var Period = function Period(_ref) {
50
47
  var onChangeFrequency = function onChangeFrequency(value) {
51
48
  if (R.is(Function, changeFrequency)) return changeFrequency(value);
52
49
  };
50
+ var _getIsDisabled = function _getIsDisabled(getter) {
51
+ return function (value, id) {
52
+ var _getDate;
53
+
54
+ var fn = R.prop(getter)({ start: R.head, end: R.last });
55
+ if (!isValidNumber(Number(value)) || R.length(availableBoundaries) !== 2) {
56
+ return false;
57
+ }
58
+ var dateValue = getPeriodValue(fn(destructuringDates));
59
+ var date = getDate(frequency, dateValue, (_getDate = {}, _getDate[id] = Number(value), _getDate), getter === 'end');
60
+ var availableStart = availableBoundaries[0],
61
+ availableEnd = availableBoundaries[1];
62
+
63
+ return dateFns.compareAsc(date, availableStart) === -1 || dateFns.compareDesc(date, availableEnd) === -1;
64
+ };
65
+ };
53
66
  var onChangePeriod = function onChangePeriod(getter, id) {
54
67
  return function (value) {
55
68
  var fn = R.prop(getter)({ start: R.head, end: R.last });
@@ -98,7 +111,8 @@ var Period = function Period(_ref) {
98
111
  layout = _ref3.layout,
99
112
  label = _ref3.label,
100
113
  value = _ref3.value,
101
- testId = _ref3.testId;
114
+ testId = _ref3.testId,
115
+ getIsDisabled = _ref3.getIsDisabled;
102
116
  return React.createElement(
103
117
  Grid,
104
118
  { key: getter, item: true, xs: 12, 'data-testid': testId },
@@ -127,8 +141,7 @@ var Period = function Period(_ref) {
127
141
  R.map(function (row) {
128
142
  return R.map(function (_ref4) {
129
143
  var id = _ref4.id,
130
- values = _ref4.values,
131
- availableValues = _ref4.availableValues;
144
+ values = _ref4.values;
132
145
 
133
146
  var selectedValue = R.isNil(R.prop(id)(value)) ? R.head(values) : R.prop(id)(value);
134
147
  return React.createElement(
@@ -149,7 +162,7 @@ var Period = function Period(_ref) {
149
162
  return {
150
163
  id: id,
151
164
  value: option,
152
- disabled: !R.isEmpty(availableValues) ? !R.includes(option, availableValues) : false,
165
+ disabled: getIsDisabled(option, id),
153
166
  label: R.ifElse(R.is(String), R.identity, R.prop(id)(numeralFormat))(option)
154
167
  };
155
168
  })(values)
@@ -164,15 +177,17 @@ var Period = function Period(_ref) {
164
177
  })([{
165
178
  getter: 'start',
166
179
  testId: 'period-picker-start-period-test-id',
167
- layout: getLayout(frequency, R.head(ranges), R.head(availableRanges)),
180
+ layout: getLayout(frequency, R.head(ranges)),
168
181
  label: R.prop('start')(labels),
169
- value: getPeriodValue(R.head(destructuringDates))
182
+ value: getPeriodValue(R.head(destructuringDates)),
183
+ getIsDisabled: _getIsDisabled('start')
170
184
  }, {
171
185
  getter: 'end',
172
186
  testId: 'period-picker-end-period-test-id',
173
- layout: getLayout(frequency, R.last(ranges), R.last(availableRanges)),
187
+ layout: getLayout(frequency, R.last(ranges), /*R.last(availableRanges)*/[]),
174
188
  label: R.prop('end')(labels),
175
- value: getPeriodValue(R.last(destructuringDates))
189
+ value: getPeriodValue(R.last(destructuringDates)),
190
+ getIsDisabled: _getIsDisabled('end')
176
191
  }])
177
192
  );
178
193
  };
@@ -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, 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 }]]
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 }]]
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,15 +133,12 @@ export var getFrequencyOptions = function getFrequencyOptions(frequencyoptions,
133
133
  return options;
134
134
  };
135
135
 
136
- export var getLayout = function getLayout(type, range, availableRange) {
136
+ export var getLayout = function getLayout(type, range) {
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), 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);
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);
145
142
  }, []))(layoutPeriods);
146
143
  };
147
144
 
@@ -14,6 +14,10 @@ var _propTypes = require('prop-types');
14
14
 
15
15
  var _propTypes2 = _interopRequireDefault(_propTypes);
16
16
 
17
+ var _dateFns = require('date-fns');
18
+
19
+ var _dateFns2 = _interopRequireDefault(_dateFns);
20
+
17
21
  var _Grid = require('@material-ui/core/Grid');
18
22
 
19
23
  var _Grid2 = _interopRequireDefault(_Grid);
@@ -62,10 +66,6 @@ var Period = function Period(_ref) {
62
66
  var startDate = R.head(period);
63
67
  var endDate = R.last(period);
64
68
 
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
-
69
69
  var startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];
70
70
  var endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];
71
71
  var ranges = [(0, _lib.getRange)(startPeriodBoundaries, startDate), (0, _lib.getRange)(endPeriodBoundaries, endDate)];
@@ -75,6 +75,22 @@ var Period = function Period(_ref) {
75
75
  var onChangeFrequency = function onChangeFrequency(value) {
76
76
  if (R.is(Function, changeFrequency)) return changeFrequency(value);
77
77
  };
78
+ var _getIsDisabled = function _getIsDisabled(getter) {
79
+ return function (value, id) {
80
+ var _getDate;
81
+
82
+ var fn = R.prop(getter)({ start: R.head, end: R.last });
83
+ if (!(0, _lib.isValidNumber)(Number(value)) || R.length(availableBoundaries) !== 2) {
84
+ return false;
85
+ }
86
+ var dateValue = (0, _lib.getPeriodValue)(fn(destructuringDates));
87
+ var date = (0, _lib.getDate)(frequency, dateValue, (_getDate = {}, _getDate[id] = Number(value), _getDate), getter === 'end');
88
+ var availableStart = availableBoundaries[0],
89
+ availableEnd = availableBoundaries[1];
90
+
91
+ return _dateFns2.default.compareAsc(date, availableStart) === -1 || _dateFns2.default.compareDesc(date, availableEnd) === -1;
92
+ };
93
+ };
78
94
  var onChangePeriod = function onChangePeriod(getter, id) {
79
95
  return function (value) {
80
96
  var fn = R.prop(getter)({ start: R.head, end: R.last });
@@ -123,7 +139,8 @@ var Period = function Period(_ref) {
123
139
  layout = _ref3.layout,
124
140
  label = _ref3.label,
125
141
  value = _ref3.value,
126
- testId = _ref3.testId;
142
+ testId = _ref3.testId,
143
+ getIsDisabled = _ref3.getIsDisabled;
127
144
  return _react2.default.createElement(
128
145
  _Grid2.default,
129
146
  { key: getter, item: true, xs: 12, 'data-testid': testId },
@@ -152,8 +169,7 @@ var Period = function Period(_ref) {
152
169
  R.map(function (row) {
153
170
  return R.map(function (_ref4) {
154
171
  var id = _ref4.id,
155
- values = _ref4.values,
156
- availableValues = _ref4.availableValues;
172
+ values = _ref4.values;
157
173
 
158
174
  var selectedValue = R.isNil(R.prop(id)(value)) ? R.head(values) : R.prop(id)(value);
159
175
  return _react2.default.createElement(
@@ -174,7 +190,7 @@ var Period = function Period(_ref) {
174
190
  return {
175
191
  id: id,
176
192
  value: option,
177
- disabled: !R.isEmpty(availableValues) ? !R.includes(option, availableValues) : false,
193
+ disabled: getIsDisabled(option, id),
178
194
  label: R.ifElse(R.is(String), R.identity, R.prop(id)(_lib.numeralFormat))(option)
179
195
  };
180
196
  })(values)
@@ -189,15 +205,17 @@ var Period = function Period(_ref) {
189
205
  })([{
190
206
  getter: 'start',
191
207
  testId: 'period-picker-start-period-test-id',
192
- layout: (0, _lib.getLayout)(frequency, R.head(ranges), R.head(availableRanges)),
208
+ layout: (0, _lib.getLayout)(frequency, R.head(ranges)),
193
209
  label: R.prop('start')(labels),
194
- value: (0, _lib.getPeriodValue)(R.head(destructuringDates))
210
+ value: (0, _lib.getPeriodValue)(R.head(destructuringDates)),
211
+ getIsDisabled: _getIsDisabled('start')
195
212
  }, {
196
213
  getter: 'end',
197
214
  testId: 'period-picker-end-period-test-id',
198
- layout: (0, _lib.getLayout)(frequency, R.last(ranges), R.last(availableRanges)),
215
+ layout: (0, _lib.getLayout)(frequency, R.last(ranges), /*R.last(availableRanges)*/[]),
199
216
  label: R.prop('end')(labels),
200
- value: (0, _lib.getPeriodValue)(R.last(destructuringDates))
217
+ value: (0, _lib.getPeriodValue)(R.last(destructuringDates)),
218
+ getIsDisabled: _getIsDisabled('end')
201
219
  }])
202
220
  );
203
221
  };
@@ -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, 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 }]]
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 }]]
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,15 +151,12 @@ var getFrequencyOptions = exports.getFrequencyOptions = function getFrequencyOpt
151
151
  return options;
152
152
  };
153
153
 
154
- var getLayout = exports.getLayout = function getLayout(type, range, availableRange) {
154
+ var getLayout = exports.getLayout = function getLayout(type, range) {
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), 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);
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);
163
160
  }, []))(layoutPeriods);
164
161
  };
165
162
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "7.22.6",
3
+ "version": "7.22.7",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",
@@ -206,6 +206,7 @@
206
206
  ]
207
207
  },
208
208
  "prettier": {
209
+ "endOfLine": "lf",
209
210
  "useTabs": false,
210
211
  "printWidth": 100,
211
212
  "tabWidth": 2,