@hipay/hipay-material-ui 2.0.0-beta.60 → 2.0.0-beta.61

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.
@@ -43,12 +43,12 @@ var _helpers = require("../utils/helpers");
43
43
  */
44
44
  function getRecursiveFinalItemIdList(itemList) {
45
45
  var finalItemIdList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
46
- return [].concat((0, _toConsumableArray2.default)(finalItemIdList), (0, _toConsumableArray2.default)(itemList.reduce(function (memo, item) {
46
+ return (0, _toConsumableArray2.default)(finalItemIdList).concat((0, _toConsumableArray2.default)(itemList.reduce(function (memo, item) {
47
47
  if (item.children) {
48
48
  return getRecursiveFinalItemIdList(item.children, memo);
49
49
  }
50
50
 
51
- return [].concat((0, _toConsumableArray2.default)(memo), [item.id]);
51
+ return (0, _toConsumableArray2.default)(memo).concat([item.id]);
52
52
  }, [])));
53
53
  }
54
54
  /**
@@ -124,7 +124,7 @@ function buildFilteredItemList(itemList) {
124
124
  }
125
125
 
126
126
  return {
127
- l: [].concat((0, _toConsumableArray2.default)(memoItemList), [(0, _extends2.default)({}, item, disabledParent && {
127
+ l: (0, _toConsumableArray2.default)(memoItemList).concat([(0, _extends2.default)({}, item, disabledParent && {
128
128
  disabled: true,
129
129
  hideCheckbox: true // don't display checkbox on disabled parent
130
130
 
@@ -143,7 +143,7 @@ function buildFilteredItemList(itemList) {
143
143
 
144
144
  var itemSelected = selectedItemIdList.includes(item.id);
145
145
  return {
146
- l: [].concat((0, _toConsumableArray2.default)(memoItemList), [(0, _extends2.default)({
146
+ l: (0, _toConsumableArray2.default)(memoItemList).concat([(0, _extends2.default)({
147
147
  displayed: itemVisible || visibleParent
148
148
  }, item)]),
149
149
  s: itemSelected && memoSelected,
@@ -223,9 +223,9 @@ function (_React$PureComponent) {
223
223
  }), item);
224
224
  } else {
225
225
  // select parent > add each selectable child without duplicates.
226
- onChange(event, [].concat((0, _toConsumableArray2.default)(value.filter(function (vid) {
226
+ onChange(event, (0, _toConsumableArray2.default)(value.filter(function (vid) {
227
227
  return !parentSelectableItemIdList.includes(vid);
228
- })), (0, _toConsumableArray2.default)(parentSelectableItemIdList)), item);
228
+ })).concat((0, _toConsumableArray2.default)(parentSelectableItemIdList)), item);
229
229
  }
230
230
  } else if (value.includes(item.id)) {
231
231
  // unselect item
@@ -233,7 +233,7 @@ function (_React$PureComponent) {
233
233
  return id !== item.id;
234
234
  }), item);
235
235
  } else {
236
- onChange(event, [].concat((0, _toConsumableArray2.default)(value), [item.id]), item);
236
+ onChange(event, (0, _toConsumableArray2.default)(value).concat([item.id]), item);
237
237
  }
238
238
  };
239
239
 
@@ -271,14 +271,14 @@ function (_React$PureComponent) {
271
271
  centered: true,
272
272
  hideCheckbox: true,
273
273
  label: translations.no_result_match
274
- }]) : [].concat((0, _toConsumableArray2.default)(loading ? [{
274
+ }]) : (0, _toConsumableArray2.default)(loading ? [{
275
275
  id: '_loading',
276
276
  type: 'loader',
277
277
  disabled: true,
278
278
  centered: true,
279
279
  hideCheckbox: true,
280
280
  label: 'loading'
281
- }] : []), (0, _toConsumableArray2.default)(hasAll ? [{
281
+ }] : []).concat((0, _toConsumableArray2.default)(hasAll ? [{
282
282
  id: '_all',
283
283
  iconAll: iconAll,
284
284
  label: translations.all,
@@ -148,22 +148,22 @@ function (_React$PureComponent) {
148
148
  var search = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
149
149
  var loading = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
150
150
  // build item list
151
- var itemList = [].concat((0, _toConsumableArray2.default)(loading ? [{
151
+ var itemList = (0, _toConsumableArray2.default)(loading ? [{
152
152
  id: '_loading',
153
153
  type: 'loader',
154
154
  disabled: true,
155
155
  centered: true,
156
156
  hideCheckbox: true,
157
157
  label: 'loading'
158
- }] : []), (0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
158
+ }] : []).concat((0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
159
159
  return _this.props.filterFunc(item, search);
160
- })) : [].concat((0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
160
+ })) : (0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
161
161
  id: '_all',
162
162
  label: _this.props.translations.all
163
163
  }, _this.props.iconAll && {
164
164
  type: 'icon',
165
165
  icon: _this.props.iconAll
166
- })] : []), (0, _toConsumableArray2.default)(options))));
166
+ })] : []).concat((0, _toConsumableArray2.default)(options))));
167
167
  return {
168
168
  itemList: itemList,
169
169
  inputValue: _this.buildInputValue(options, value, loading)
@@ -462,7 +462,7 @@ function (_React$PureComponent) {
462
462
  return id !== item.id;
463
463
  }), item);
464
464
  } else {
465
- onChange(event, [].concat((0, _toConsumableArray2.default)(value), [item.id]), item);
465
+ onChange(event, (0, _toConsumableArray2.default)(value).concat([item.id]), item);
466
466
  }
467
467
  };
468
468
 
@@ -488,13 +488,13 @@ function (_React$PureComponent) {
488
488
  });
489
489
  } else {
490
490
  _this.setState({
491
- suggestions: [].concat((0, _toConsumableArray2.default)(hasAll ? [(0, _extends2.default)({
491
+ suggestions: (0, _toConsumableArray2.default)(hasAll ? [(0, _extends2.default)({
492
492
  id: '_all',
493
493
  label: translations.all
494
494
  }, iconAll && {
495
495
  type: 'icon',
496
496
  icon: iconAll
497
- })] : []), (0, _toConsumableArray2.default)(suggestions))
497
+ })] : []).concat((0, _toConsumableArray2.default)(suggestions))
498
498
  });
499
499
  }
500
500
  };
@@ -179,7 +179,7 @@ function (_React$PureComponent) {
179
179
  return id !== item.id;
180
180
  }), item);
181
181
  } else {
182
- onChange(event, [].concat((0, _toConsumableArray2.default)(value), [item.id]), item);
182
+ onChange(event, (0, _toConsumableArray2.default)(value).concat([item.id]), item);
183
183
  }
184
184
  };
185
185
 
@@ -209,13 +209,13 @@ function (_React$PureComponent) {
209
209
  });
210
210
  } else {
211
211
  _this.setState({
212
- suggestions: [].concat((0, _toConsumableArray2.default)(hasAll ? [(0, _extends2.default)({
212
+ suggestions: (0, _toConsumableArray2.default)(hasAll ? [(0, _extends2.default)({
213
213
  id: '_all',
214
214
  label: translations.all
215
215
  }, iconAll && {
216
216
  type: 'icon',
217
217
  icon: iconAll
218
- })] : []), (0, _toConsumableArray2.default)(suggestions))
218
+ })] : []).concat((0, _toConsumableArray2.default)(suggestions))
219
219
  });
220
220
  }
221
221
  };
@@ -251,22 +251,22 @@ function (_React$PureComponent) {
251
251
  var search = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
252
252
  var loading = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
253
253
  // build item list
254
- var itemList = [].concat((0, _toConsumableArray2.default)(loading ? [{
254
+ var itemList = (0, _toConsumableArray2.default)(loading ? [{
255
255
  id: '_loading',
256
256
  type: 'loader',
257
257
  disabled: true,
258
258
  centered: true,
259
259
  hideCheckbox: true,
260
260
  label: 'loading'
261
- }] : []), (0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
261
+ }] : []).concat((0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
262
262
  return item.label && _this.props.filterFunc(item, search);
263
- })) : [].concat((0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
263
+ })) : (0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
264
264
  id: '_all',
265
265
  label: _this.props.translations.all
266
266
  }, _this.props.iconAll && {
267
267
  type: 'icon',
268
268
  icon: _this.props.iconAll
269
- })] : []), (0, _toConsumableArray2.default)(options))));
269
+ })] : []).concat((0, _toConsumableArray2.default)(options))));
270
270
  return {
271
271
  itemList: itemList
272
272
  };
@@ -112,6 +112,10 @@ function (_React$PureComponent) {
112
112
  };
113
113
 
114
114
  _this.compareItem = function (a, b) {
115
+ if (_this.props.comparItemFunc) {
116
+ return _this.props.comparItemFunc(a, b);
117
+ }
118
+
115
119
  if (a.label === undefined || b.label === undefined) {
116
120
  return 0;
117
121
  }
@@ -184,6 +188,11 @@ HiSelectableList.propTypes = process.env.NODE_ENV !== "production" ? {
184
188
  */
185
189
  classes: _propTypes.default.object,
186
190
 
191
+ /**
192
+ * Fonction de comparaison utilisée pour les tris
193
+ */
194
+ comparItemFunc: _propTypes.default.func,
195
+
187
196
  /**
188
197
  * Désactive la listes
189
198
  */
@@ -3,6 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  import _extends from "@babel/runtime/helpers/extends";
4
4
  import React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import moment from 'moment-timezone';
6
7
  import MomentLocaleUtils from 'react-day-picker/moment';
7
8
  import HiLocaleUtils from './hiLocaleUtils';
8
9
  import DayPickerInput from 'react-day-picker/DayPickerInput';
@@ -20,9 +21,18 @@ import styles from './stylesheet';
20
21
  class HiDatePicker extends React.Component {
21
22
  constructor(props) {
22
23
  super();
24
+
25
+ this.handleKeyDown = name => event => {
26
+ if (event.key === 'Escape' && !event.shiftKey) {
27
+ this.datePickerInput.hideDayPicker();
28
+ event.stopPropagation();
29
+ }
30
+ };
31
+
32
+ const today = moment().tz(props.timezoneName);
23
33
  this.state = {
24
34
  openedPanel: 'calendar',
25
- currentMonth: props.value ? props.value : new Date()
35
+ currentMonth: props.value ? props.value : new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds())
26
36
  }; // this.formatDate = this.formatDate.bind(this);
27
37
 
28
38
  this.handleCalendarClick = this.handleCalendarClick.bind(this);
@@ -46,15 +56,16 @@ class HiDatePicker extends React.Component {
46
56
  clearTimeout(this.timeout);
47
57
  }
48
58
 
49
- handleReset() {
50
- this.handleCurrentMonthChange(new Date());
51
- this.props.onReset();
52
- }
53
-
54
59
  handleInputChange(event) {
55
60
  this.props.onChange(event.target.value);
56
61
  }
57
62
 
63
+ handleReset() {
64
+ const today = moment().tz(this.props.timezoneName);
65
+ this.handleCurrentMonthChange(new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds()));
66
+ this.props.onReset();
67
+ }
68
+
58
69
  handleDayChange(day, modifiers) {
59
70
  if (day) {
60
71
  if (modifiers.selected) {
@@ -198,11 +209,12 @@ class HiDatePicker extends React.Component {
198
209
  const {
199
210
  currentMonth
200
211
  } = this.state;
212
+ const today = moment().tz(this.props.timezoneName);
201
213
 
202
214
  const effectiveDisabledDays = _objectSpread({}, disablePastDays && {
203
- before: new Date()
215
+ before: new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds())
204
216
  }, disableFutureDays && {
205
- after: new Date()
217
+ after: new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds())
206
218
  }, disabledDays);
207
219
 
208
220
  const modifiersStyles = {
@@ -229,7 +241,8 @@ class HiDatePicker extends React.Component {
229
241
  fromMonth: minimumDate,
230
242
  modifiers: {
231
243
  disabled: effectiveDisabledDays,
232
- selected: value
244
+ selected: value,
245
+ [classes.currentDay]: new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds())
233
246
  },
234
247
  modifiersStyles,
235
248
  month: currentMonth
@@ -248,7 +261,8 @@ class HiDatePicker extends React.Component {
248
261
  });
249
262
 
250
263
  return React.createElement("div", {
251
- className: classes.root
264
+ className: classes.root,
265
+ onKeyDown: this.handleKeyDown()
252
266
  }, React.createElement(DayPickerInput, {
253
267
  ref: el => {
254
268
  this.datePickerInput = el;
@@ -279,6 +293,7 @@ HiDatePicker.defaultProps = {
279
293
  locale: 'fr-FR',
280
294
  minimumDate: new Date(2013, 4, 1),
281
295
  // by default 1 May 2013
296
+ timezoneName: 'Europe/Paris',
282
297
  translations: {
283
298
  today: 'today'
284
299
  }
@@ -347,6 +362,11 @@ HiDatePicker.propTypes = process.env.NODE_ENV !== "production" ? {
347
362
  */
348
363
  onSubmit: PropTypes.func,
349
364
 
365
+ /**
366
+ * Timezone de l'utilisateur
367
+ */
368
+ timezoneName: PropTypes.string,
369
+
350
370
  /**
351
371
  * Traductions
352
372
  */
@@ -3,6 +3,7 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread";
3
3
  import _extends from "@babel/runtime/helpers/extends";
4
4
  import React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import moment from 'moment-timezone';
6
7
  import MomentLocaleUtils from 'react-day-picker/moment';
7
8
  import HiLocaleUtils from './hiLocaleUtils';
8
9
  import DayPickerInput from 'react-day-picker/DayPickerInput';
@@ -17,7 +18,6 @@ import NavBar from './NavBar';
17
18
  import Weekday from './Weekday';
18
19
  import { HiTextField } from '../HiForm';
19
20
  import styles from './stylesheet';
20
- import moment from 'moment';
21
21
  import HiFormControl from '../HiForm/HiFormControl';
22
22
 
23
23
  class HiDateRangePicker extends React.Component {
@@ -58,8 +58,10 @@ class HiDateRangePicker extends React.Component {
58
58
 
59
59
  this.onDayToClick = day => {
60
60
  let change = moment(day) >= moment(this.props.from);
61
+ const today = moment().tz(this.props.timezoneName);
62
+ const todayDate = new Date(today.year(), today.month(), today.date(), 23, 59, 59);
61
63
 
62
- if (change && this.props.disableFutureDays && moment(day).utc() > moment().utc().endOf('day')) {
64
+ if (change && day > todayDate) {
63
65
  change = false;
64
66
  }
65
67
 
@@ -85,11 +87,13 @@ class HiDateRangePicker extends React.Component {
85
87
 
86
88
  this.handleChange = (name, day) => {
87
89
  const {
88
- translations
90
+ translations,
91
+ timezoneName
89
92
  } = this.props;
90
93
  let date;
91
94
  let error;
92
- const now = new Date();
95
+ const today = moment().tz(timezoneName);
96
+ const now = new Date(today.year(), today.month(), today.date(), 23, 59, 59);
93
97
  const {
94
98
  minimumDate,
95
99
  disableFutureDays,
@@ -115,8 +119,8 @@ class HiDateRangePicker extends React.Component {
115
119
  error = translations.to_superior_from;
116
120
  } else if (moment(date).utc() < moment(minimumDate).utc().startOf('day')) {
117
121
  error = translations.date_inferior_min_date.replace('%s', moment(minimumDate).format(format));
118
- } else if (disableFutureDays && moment(date).utc() > moment(now).utc().endOf('day')) {
119
- error = translations.date_superior_max_date.replace('%s', moment().format(format));
122
+ } else if (disableFutureDays && date > now) {
123
+ error = translations.date_superior_max_date.replace('%s', moment().tz(timezoneName).format(format));
120
124
  }
121
125
 
122
126
  if (!this.props.enableTime) {
@@ -165,15 +169,11 @@ class HiDateRangePicker extends React.Component {
165
169
 
166
170
  this.handleReset = name => {
167
171
  this.handleChange(name, undefined);
168
- this.setState(prevState => ({
169
- keyFrom: prevState.keyFrom === 1 ? 2 : 1,
170
- keyTo: prevState.keyTo === 1 ? 2 : 1
171
- }));
172
172
  };
173
173
 
174
174
  this.handleKeyDown = name => event => {
175
175
  if (event.key === 'Tab' && !event.shiftKey) {
176
- let nodeName = document.activeElement.nodeName;
176
+ const nodeName = document.activeElement.nodeName;
177
177
 
178
178
  if (this.props[name] && nodeName === 'INPUT' && document.activeElement.nextSibling.children.length > 0) {
179
179
  document.activeElement.nextSibling.focus();
@@ -191,6 +191,14 @@ class HiDateRangePicker extends React.Component {
191
191
  document.activeElement.blur();
192
192
  }, 1);
193
193
  }
194
+ } else if (event.key === 'Escape' && !event.shiftKey) {
195
+ if (name === 'from') {
196
+ this.fromInput.hideDayPicker();
197
+ } else if (name === 'to') {
198
+ this.toInput.hideDayPicker();
199
+ }
200
+
201
+ event.stopPropagation();
194
202
  }
195
203
  };
196
204
 
@@ -276,12 +284,12 @@ class HiDateRangePicker extends React.Component {
276
284
  }, yearPickerProps, propsOverlay));
277
285
  };
278
286
 
287
+ const _today = moment().tz(this.props.timezoneName);
288
+
279
289
  this.state = {
280
- currentMonth: new Date(),
290
+ currentMonth: new Date(_today.year(), _today.month(), _today.date()),
281
291
  focusedInput: '',
282
- openedPanel: 'calendar',
283
- keyFrom: 1,
284
- keyTo: 1
292
+ openedPanel: 'calendar'
285
293
  };
286
294
  }
287
295
 
@@ -313,14 +321,17 @@ class HiDateRangePicker extends React.Component {
313
321
  errorText,
314
322
  hasSelector,
315
323
  helperIcon,
316
- helperText
324
+ helperText,
325
+ timezoneName
317
326
  } = _this$props,
318
- props = _objectWithoutProperties(_this$props, ["classes", "disabled", "disabledDays", "disableFutureDays", "enableTime", "labelFrom", "labelTo", "locale", "format", "from", "fromError", "minimumDate", "onReset", "to", "toError", "translations", "id", "staticPosition", "errorText", "hasSelector", "helperIcon", "helperText"]);
327
+ props = _objectWithoutProperties(_this$props, ["classes", "disabled", "disabledDays", "disableFutureDays", "enableTime", "labelFrom", "labelTo", "locale", "format", "from", "fromError", "minimumDate", "onReset", "to", "toError", "translations", "id", "staticPosition", "errorText", "hasSelector", "helperIcon", "helperText", "timezoneName"]);
319
328
 
320
- const now = new Date();
329
+ const today = moment().tz(timezoneName);
330
+ const now = new Date(today.year(), today.month(), today.date(), 23, 59, 59, 999);
321
331
  const modifiers = {
322
332
  start: from,
323
- end: to
333
+ end: to,
334
+ [classes.currentDay]: new Date(today.year(), today.month(), today.date())
324
335
  };
325
336
  const modifiersStyles = {
326
337
  start: {
@@ -440,7 +451,7 @@ class HiDateRangePicker extends React.Component {
440
451
  onFocus: () => this.handleDayPickerFocus('from'),
441
452
  onKeyDown: this.handleKeyDown('from')
442
453
  }, React.createElement("div", null, React.createElement(DayPickerInput, {
443
- key: this.state.keyFrom,
454
+ key: '1',
444
455
  ref: el => {
445
456
  this.fromInput = el;
446
457
  },
@@ -461,7 +472,7 @@ class HiDateRangePicker extends React.Component {
461
472
  onBlur: () => this.handleDayPickerBlur('to'),
462
473
  onKeyDown: this.handleKeyDown('to')
463
474
  }, React.createElement(DayPickerInput, {
464
- key: this.state.keyTo,
475
+ key: '1',
465
476
  ref: el => {
466
477
  this.toInput = el;
467
478
  },
@@ -505,6 +516,7 @@ HiDateRangePicker.defaultProps = {
505
516
  locale: 'fr-FR',
506
517
  minimumDate: new Date(2013, 4, 1),
507
518
  // by default 1 May 2013
519
+ timezoneName: 'Europe/Paris',
508
520
  translations: {
509
521
  today: 'today',
510
522
  hour: 'Hour',
@@ -636,6 +648,11 @@ HiDateRangePicker.propTypes = process.env.NODE_ENV !== "production" ? {
636
648
  */
637
649
  staticPosition: PropTypes.bool,
638
650
 
651
+ /**
652
+ * Timezone de l'utilisateur
653
+ */
654
+ timezoneName: PropTypes.string,
655
+
639
656
  /**
640
657
  * Date de fin sélectionnée
641
658
  */
@@ -187,18 +187,7 @@ class HiDateRangeSelector extends React.Component {
187
187
  [name]: value,
188
188
  key: prevState.key === 1 ? 2 : 1
189
189
  }));
190
- const selectedOption = this.options.find(option => option.id === value);
191
-
192
- if (selectedOption) {
193
- this.props.onChange('from', new Date(selectedOption.from.format('YYYY-MM-DD HH:mm:ss')));
194
- this.props.onChange('to', new Date(selectedOption.to.format('YYYY-MM-DD HH:mm:ss')));
195
- this.props.onChange('fromError', false);
196
- this.props.onChange('toError', false);
197
- }
198
-
199
- if (this.props.returnSelectValue === true) {
200
- this.props.onChange('period', value);
201
- }
190
+ this.updateDates(value);
202
191
  };
203
192
 
204
193
  this.options = props.availableOptionKeys.map(key => buildDateRangeOptionByKey(key, props.translations, props.format, props.timezoneName));
@@ -226,10 +215,32 @@ class HiDateRangeSelector extends React.Component {
226
215
  }
227
216
  }
228
217
 
218
+ componentDidUpdate(prevProps) {
219
+ if (prevProps.timezoneName !== this.props.timezoneName) {
220
+ this.options = this.props.availableOptionKeys.map(key => buildDateRangeOptionByKey(key, this.props.translations, this.props.format, this.props.timezoneName));
221
+ this.updateDates(this.state.selectedPreset);
222
+ }
223
+ }
224
+
229
225
  componentWillUnmount() {
230
226
  clearTimeout(this.timeout); // TODO : supprimer ?
231
227
  }
232
228
 
229
+ updateDates(value) {
230
+ const selectedOption = this.options.find(option => option.id === value);
231
+
232
+ if (selectedOption) {
233
+ this.props.onChange('from', new Date(selectedOption.from.format('YYYY-MM-DD HH:mm:ss')));
234
+ this.props.onChange('to', new Date(selectedOption.to.format('YYYY-MM-DD HH:mm:ss')));
235
+ this.props.onChange('fromError', false);
236
+ this.props.onChange('toError', false);
237
+ }
238
+
239
+ if (this.props.returnSelectValue === true) {
240
+ this.props.onChange('period', value);
241
+ }
242
+ }
243
+
233
244
  render() {
234
245
  const _this$props = this.props,
235
246
  {
@@ -172,23 +172,22 @@ export default (theme => ({
172
172
 
173
173
  /* default modifiers */
174
174
  // Added to the day's cell for the current day
175
- today: {
176
- // color: theme.palette.primary.light,
177
- position: 'relative',
178
- borderRadius: '50%',
179
- color: `${theme.palette.neutral.dark} !important`,
180
- fontWeight: theme.typography.fontWeightMedium,
181
- '&:before': {
182
- content: '""',
183
- position: 'absolute',
184
- top: 0,
185
- left: 0,
186
- display: 'inline-block',
187
- width: '100%',
188
- height: '100%',
189
- borderRadius: '50%',
190
- boxShadow: `inset 0 0 0 2px ${theme.palette.neutral.main}`
191
- }
175
+ today: {// color: theme.palette.primary.light,
176
+ // position: 'relative',
177
+ // borderRadius: '50%',
178
+ // color: `${theme.palette.neutral.dark} !important`,
179
+ // fontWeight: theme.typography.fontWeightMedium,
180
+ // '&:before': {
181
+ // content: '""',
182
+ // position: 'absolute',
183
+ // top: 0,
184
+ // left: 0,
185
+ // display: 'inline-block',
186
+ // width: '100%',
187
+ // height: '100%',
188
+ // borderRadius: '50%',
189
+ // boxShadow: `inset 0 0 0 2px ${theme.palette.neutral.main}`,
190
+ // },
192
191
  },
193
192
  // Added to the day's cell outside the current month
194
193
  outside: {
@@ -216,5 +215,21 @@ export default (theme => ({
216
215
  color: theme.palette.primary.contrastText,
217
216
  borderRadius: '0%',
218
217
  border: 'none'
218
+ },
219
+ currentDay: {
220
+ position: 'relative',
221
+ color: `${theme.palette.neutral.dark} !important`,
222
+ fontWeight: theme.typography.fontWeightMedium,
223
+ '&:before': {
224
+ content: '""',
225
+ position: 'absolute',
226
+ top: 0,
227
+ left: 0,
228
+ display: 'inline-block',
229
+ width: '100%',
230
+ height: '100%',
231
+ borderRadius: '50%',
232
+ boxShadow: `inset 0 0 0 2px ${theme.palette.neutral.main}`
233
+ }
219
234
  }
220
235
  }));
@@ -61,6 +61,10 @@ class HiSelectableList extends React.PureComponent {
61
61
  };
62
62
 
63
63
  this.compareItem = (a, b) => {
64
+ if (this.props.comparItemFunc) {
65
+ return this.props.comparItemFunc(a, b);
66
+ }
67
+
64
68
  if (a.label === undefined || b.label === undefined) {
65
69
  return 0;
66
70
  }
@@ -123,6 +127,11 @@ HiSelectableList.propTypes = process.env.NODE_ENV !== "production" ? {
123
127
  */
124
128
  classes: PropTypes.object,
125
129
 
130
+ /**
131
+ * Fonction de comparaison utilisée pour les tris
132
+ */
133
+ comparItemFunc: PropTypes.func,
134
+
126
135
  /**
127
136
  * Désactive la listes
128
137
  */
@@ -30,7 +30,7 @@ export const light = {
30
30
  hint: 'rgba(0, 0, 0, 0.38)'
31
31
  },
32
32
  // The color used to divide different elements.
33
- divider: 'rgba(0, 0, 0, 0.12)',
33
+ divider: '#D9D9DB',
34
34
  // The background colors used to style the surfaces.
35
35
  // Consistency between these values is important.
36
36
  background: {
@@ -250,7 +250,7 @@ export function getNextItemSelectable(node, direction) {
250
250
  */
251
251
 
252
252
  export function foldAccents(toFold) {
253
- return toFold.replace(/([àáâãäå])|([ç])|([èéêë])|([ìíîï])|([ñ])|([òóôõöø])|([ß])|([ùúûü])|([ÿ])|([æ])|([œ])/g, (str, a, c, e, i, n, o, s, u, y, ae, oe) => {
253
+ return toFold.replace(/([àáâãäå])|([ç])|([èéêë])|([ìíîï])|([ñ])|([òóôõöø])|([ß])|([ùúûü])|([ÿ])|([æ])|([œ])|([+])|([\\])|([\[])|([\]])|([\(])|([\)])|([?])|([*])/g, (str, a, c, e, i, n, o, s, u, y, ae, oe, plus, backSlash, lc, rc, lp, rp, interogation, star) => {
254
254
  if (a) return 'a';
255
255
  if (c) return 'c';
256
256
  if (e) return 'e';
@@ -262,6 +262,14 @@ export function foldAccents(toFold) {
262
262
  if (y) return 'y';
263
263
  if (ae) return 'ae';
264
264
  if (oe) return 'oe';
265
+ if (plus) return '\\+';
266
+ if (backSlash) return '\\\\';
267
+ if (lc) return '\\[';
268
+ if (rc) return '\\]';
269
+ if (lp) return '\\(';
270
+ if (rp) return '\\)';
271
+ if (interogation) return '\\?';
272
+ if (star) return '\\*';
265
273
  return str;
266
274
  });
267
275
  }
package/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.0.0-beta.60
1
+ /** @license HiPay-Material-UI v2.0.0-beta.61
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.0.0-beta.60
1
+ /** @license HiPay-Material-UI v2.0.0-beta.61
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@hipay/hipay-material-ui",
3
- "private": false,
4
3
  "author": "HiPay PSYCHE Team",
5
- "version": "2.0.0-beta.60",
4
+ "version": "2.0.0-beta.61",
6
5
  "description": "React components that implement Google's Material Design.",
7
6
  "keywords": [
8
7
  "react",
@@ -76,4 +75,4 @@
76
75
  },
77
76
  "main": "./index.js",
78
77
  "module": "./index.es.js"
79
- }
78
+ }