@hipay/hipay-material-ui 2.0.0-beta.53 → 2.0.0-beta.54

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. package/HiCell/CellSentinel.js +33 -109
  2. package/HiCell/CellSentinelScore.js +100 -0
  3. package/HiChip/HiChip.js +1 -1
  4. package/HiColoredLabel/HiColoredLabel.js +14 -4
  5. package/HiDatePicker/HiDatePicker.js +1 -1
  6. package/HiDatePicker/HiDateRangePicker.js +339 -420
  7. package/HiDatePicker/HiDateRangeSelector.js +81 -61
  8. package/HiDatePicker/NavBar.js +2 -1
  9. package/HiDatePicker/Overlays/TimePickerOverlay.js +1 -1
  10. package/HiDatePicker/Overlays/YearPickerOverlay.js +3 -3
  11. package/HiForm/HiFormControl.js +5 -4
  12. package/HiSelectNew/HiSelect.js +4 -1
  13. package/HiSwitch/HiSwitch.js +2 -1
  14. package/HiTable/HiCellBuilder.js +14 -7
  15. package/HiTable/constants.js +7 -5
  16. package/es/HiCell/CellSentinel.js +32 -108
  17. package/es/HiCell/CellSentinelScore.js +60 -0
  18. package/es/HiChip/HiChip.js +1 -1
  19. package/es/HiColoredLabel/HiColoredLabel.js +14 -3
  20. package/es/HiDatePicker/HiDatePicker.js +1 -1
  21. package/es/HiDatePicker/HiDateRangePicker.js +304 -364
  22. package/es/HiDatePicker/HiDateRangeSelector.js +71 -55
  23. package/es/HiDatePicker/NavBar.js +2 -1
  24. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +1 -1
  25. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +3 -3
  26. package/es/HiForm/HiFormControl.js +5 -4
  27. package/es/HiSelectNew/HiSelect.js +4 -1
  28. package/es/HiSwitch/HiSwitch.js +2 -1
  29. package/es/HiTable/HiCellBuilder.js +13 -7
  30. package/es/HiTable/constants.js +8 -1
  31. package/es/styles/createPalette.js +3 -3
  32. package/package.json +2 -2
  33. package/styles/createPalette.js +3 -3
  34. package/umd/hipay-material-ui.development.js +899 -1131
  35. package/umd/hipay-material-ui.production.min.js +1 -1
  36. package/yarn-error.log +0 -110
@@ -4,10 +4,10 @@
4
4
  * LICENSE file in the root directory of this source tree.
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom'), require('@hipay/hipay-material-ui/HiCell/CellAddress'), require('@hipay/hipay-material-ui/HiCell/CellDate'), require('@hipay/hipay-material-ui/HiCell/CellIcon'), require('@hipay/hipay-material-ui/HiCell/CellImage'), require('@hipay/hipay-material-ui/HiCell/CellNumeric'), require('@hipay/hipay-material-ui/HiCell/CellSentinel'), require('@hipay/hipay-material-ui/HiCell/CellText'), require('@hipay/hipay-material-ui/HiCell/CellRate'), require('@hipay/hipay-material-ui/HiCell/CellPinToAction')) :
8
- typeof define === 'function' && define.amd ? define(['exports', 'react', 'react-dom', '@hipay/hipay-material-ui/HiCell/CellAddress', '@hipay/hipay-material-ui/HiCell/CellDate', '@hipay/hipay-material-ui/HiCell/CellIcon', '@hipay/hipay-material-ui/HiCell/CellImage', '@hipay/hipay-material-ui/HiCell/CellNumeric', '@hipay/hipay-material-ui/HiCell/CellSentinel', '@hipay/hipay-material-ui/HiCell/CellText', '@hipay/hipay-material-ui/HiCell/CellRate', '@hipay/hipay-material-ui/HiCell/CellPinToAction'], factory) :
9
- (factory((global['hipay-material-ui'] = {}),global.React,global.ReactDOM,global.CellAddress,global.CellDate,global.CellIcon,global.CellImage,global.CellNumeric,global.CellSentinel,global.CellText,global.CellRate,global.CellPinToAction));
10
- }(this, (function (exports,React,require$$11,CellAddress,CellDate,CellIcon,CellImage,CellNumeric,CellSentinel,CellText,CellRate,CellPinToAction) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom'), require('@hipay/hipay-material-ui/HiCell/CellAddress'), require('@hipay/hipay-material-ui/HiCell/CellDate'), require('@hipay/hipay-material-ui/HiCell/CellIcon'), require('@hipay/hipay-material-ui/HiCell/CellImage'), require('@hipay/hipay-material-ui/HiCell/CellNumeric'), require('@hipay/hipay-material-ui/HiCell/CellSentinel'), require('@hipay/hipay-material-ui/HiCell/CellSentinelScore'), require('@hipay/hipay-material-ui/HiCell/CellText'), require('@hipay/hipay-material-ui/HiCell/CellRate'), require('@hipay/hipay-material-ui/HiCell/CellPinToAction')) :
8
+ typeof define === 'function' && define.amd ? define(['exports', 'react', 'react-dom', '@hipay/hipay-material-ui/HiCell/CellAddress', '@hipay/hipay-material-ui/HiCell/CellDate', '@hipay/hipay-material-ui/HiCell/CellIcon', '@hipay/hipay-material-ui/HiCell/CellImage', '@hipay/hipay-material-ui/HiCell/CellNumeric', '@hipay/hipay-material-ui/HiCell/CellSentinel', '@hipay/hipay-material-ui/HiCell/CellSentinelScore', '@hipay/hipay-material-ui/HiCell/CellText', '@hipay/hipay-material-ui/HiCell/CellRate', '@hipay/hipay-material-ui/HiCell/CellPinToAction'], factory) :
9
+ (factory((global['hipay-material-ui'] = {}),global.React,global.ReactDOM,global.CellAddress,global.CellDate,global.CellIcon,global.CellImage,global.CellNumeric,global.CellSentinel,global.CellSentinelScore,global.CellText,global.CellRate,global.CellPinToAction));
10
+ }(this, (function (exports,React,require$$11,CellAddress,CellDate,CellIcon,CellImage,CellNumeric,CellSentinel,CellSentinelScore,CellText,CellRate,CellPinToAction) { 'use strict';
11
11
 
12
12
  var React__default = 'default' in React ? React['default'] : React;
13
13
  var require$$11__default = 'default' in require$$11 ? require$$11['default'] : require$$11;
@@ -17,6 +17,7 @@
17
17
  CellImage = CellImage && CellImage.hasOwnProperty('default') ? CellImage['default'] : CellImage;
18
18
  CellNumeric = CellNumeric && CellNumeric.hasOwnProperty('default') ? CellNumeric['default'] : CellNumeric;
19
19
  CellSentinel = CellSentinel && CellSentinel.hasOwnProperty('default') ? CellSentinel['default'] : CellSentinel;
20
+ CellSentinelScore = CellSentinelScore && CellSentinelScore.hasOwnProperty('default') ? CellSentinelScore['default'] : CellSentinelScore;
20
21
  CellText = CellText && CellText.hasOwnProperty('default') ? CellText['default'] : CellText;
21
22
  CellRate = CellRate && CellRate.hasOwnProperty('default') ? CellRate['default'] : CellRate;
22
23
  CellPinToAction = CellPinToAction && CellPinToAction.hasOwnProperty('default') ? CellPinToAction['default'] : CellPinToAction;
@@ -1072,7 +1073,7 @@
1072
1073
  } : _palette$primary,
1073
1074
  _palette$secondary = palette.secondary,
1074
1075
  secondary = _palette$secondary === void 0 ? {
1075
- light: '#ffcf21',
1076
+ light: '#ffd94f',
1076
1077
  main: '#ffcf21',
1077
1078
  dark: '#E9BE30',
1078
1079
  contrastText: '#FFFFFF'
@@ -1121,7 +1122,7 @@
1121
1122
  _palette$type = palette.type,
1122
1123
  type = _palette$type === void 0 ? 'light' : _palette$type,
1123
1124
  _palette$contrastThre = palette.contrastThreshold,
1124
- contrastThreshold = _palette$contrastThre === void 0 ? 2.8 : _palette$contrastThre,
1125
+ contrastThreshold = _palette$contrastThre === void 0 ? 2.2 : _palette$contrastThre,
1125
1126
  _palette$tonalOffset = palette.tonalOffset,
1126
1127
  tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,
1127
1128
  _palette$context = palette.context,
@@ -1136,7 +1137,7 @@
1136
1137
 
1137
1138
  {
1138
1139
  var contrast = getContrastRatio(background, contrastText);
1139
- warning_1(contrast >= 2.8, ["Material-UI: the contrast ratio of ".concat(contrast, ":1 for ").concat(contrastText, " on ").concat(background), 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\n'));
1140
+ warning_1(contrast >= 2.2, ["Material-UI: the contrast ratio of ".concat(contrast, ":1 for ").concat(contrastText, " on ").concat(background), 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\n'));
1140
1141
  }
1141
1142
 
1142
1143
  return contrastText;
@@ -15058,25 +15059,6 @@
15058
15059
  function escapeHTML(unsafeStr) {
15059
15060
  return unsafeStr.replace(/<br\/?>/g, '[br]').replace(/<strong>/g, '[[').replace(/<\/?strong>/g, ']]').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/\[\[/g, '<strong>').replace(/\]\]/g, '</strong>').replace(/\[br\]/g, '<br>');
15060
15061
  }
15061
- /**
15062
- * Remove duplicate items from array useful after concat arrays
15063
- *
15064
- * arrayUnique(array1.concat(array2))
15065
- *
15066
- * @param array
15067
- */
15068
-
15069
- function arrayUnique(array) {
15070
- var a = toConsumableArray(array);
15071
-
15072
- for (var i = 0; i < a.length; i + 1) {
15073
- for (var j = i + 1; j < a.length; j + 1) {
15074
- if (a[i] === a[j]) a.splice(j - 1, 1);
15075
- }
15076
- }
15077
-
15078
- return a;
15079
- }
15080
15062
  /**
15081
15063
  * Retourne l'item selectionnable suivant.
15082
15064
  * @param node
@@ -66296,7 +66278,7 @@
66296
66278
  position: 'relative',
66297
66279
  cursor: 'pointer',
66298
66280
  '&:hover, &:focus': {
66299
- color: theme.palette.primary.main
66281
+ color: theme.palette.neutral.dark
66300
66282
  }
66301
66283
  },
66302
66284
  label: {
@@ -73705,6 +73687,7 @@
73705
73687
  position: 'absolute',
73706
73688
  right: 5,
73707
73689
  cursor: 'pointer',
73690
+ zIndex: 1,
73708
73691
  top: '-5px',
73709
73692
  '&$iconButtonError': {
73710
73693
  color: theme.palette.negative.main
@@ -73889,7 +73872,7 @@
73889
73872
  required: required,
73890
73873
  disabled: disabled,
73891
73874
  focused: !disabled && (focused || hovered)
73892
- }, InputLabelProps), error && React__default.createElement(HiIconButton$1, {
73875
+ }, InputLabelProps), error && errorText && React__default.createElement(HiIconButton$1, {
73893
73876
  className: classnames(classes.iconButton, classes.iconButtonError),
73894
73877
  onClick: this.handleHelperClick,
73895
73878
  onKeyDown: this.handleKeyDown
@@ -73922,8 +73905,8 @@
73922
73905
  required: true,
73923
73906
  disabled: false,
73924
73907
  error: false,
73925
- errorText: '',
73926
- helperText: '',
73908
+ errorText: undefined,
73909
+ helperText: undefined,
73927
73910
  helperIcon: false,
73928
73911
  multiline: false,
73929
73912
  nbChars: 0,
@@ -73958,7 +73941,7 @@
73958
73941
  /**
73959
73942
  * Texte de l'erreur
73960
73943
  */
73961
- errorText: propTypes.string,
73944
+ errorText: propTypes.oneOfType([propTypes.string, propTypes.bool]),
73962
73945
 
73963
73946
  /**
73964
73947
  * Propriétés appliquées au composant FormHelperText
@@ -74494,7 +74477,8 @@
74494
74477
  display: 'inline-flex',
74495
74478
  width: 62,
74496
74479
  position: 'relative',
74497
- flexShrink: 0
74480
+ flexShrink: 0,
74481
+ zIndex: 0
74498
74482
  },
74499
74483
  bar: {
74500
74484
  borderRadius: 7,
@@ -79938,7 +79922,7 @@
79938
79922
 
79939
79923
  var TableSortLabel$2 = unwrapExports(TableSortLabel$1);
79940
79924
 
79941
- var _TYPE_ACCOUNT, _TYPE_ACCOUNT_NUMBER, _TYPE_ADDRESS, _TYPE_CHECKBOX, _TYPE_COUNTRY, _TYPE_DATE, _TYPE_ICON, _TYPE_IMAGE, _TYPE_NUMERIC, _TYPE_RATE, _TYPE_SENTINEL, _TYPE_STATUS, _TYPE_TEXT, _TYPE_THIRD_PARTY_SEC, _DEFAULT_WIDTHS, _DEFAULT_VIEWS, _DEFAULT_PADDING;
79925
+ var _TYPE_ACCOUNT, _TYPE_ACCOUNT_NUMBER, _TYPE_ADDRESS, _TYPE_CHECKBOX, _TYPE_COUNTRY, _TYPE_DATE, _TYPE_ICON, _TYPE_IMAGE, _TYPE_NUMERIC, _TYPE_RATE, _TYPE_SENTINEL, _TYPE_SENTINEL_SCORE, _TYPE_STATUS, _TYPE_TEXT, _TYPE_THIRD_PARTY_SEC, _DEFAULT_WIDTHS, _DEFAULT_VIEWS, _DEFAULT_PADDING;
79942
79926
  /**
79943
79927
  * Cell height (px)
79944
79928
  */
@@ -79962,6 +79946,7 @@
79962
79946
  var TYPE_NUMERIC = 'numeric';
79963
79947
  var TYPE_RATE = 'rate';
79964
79948
  var TYPE_SENTINEL = 'sentinel';
79949
+ var TYPE_SENTINEL_SCORE = 'sentinel_score';
79965
79950
  var TYPE_STATUS = 'status';
79966
79951
  var TYPE_COUNTRY = 'country';
79967
79952
  var TYPE_TEXT = 'text';
@@ -79981,13 +79966,13 @@
79981
79966
  * @type {{}}
79982
79967
  */
79983
79968
 
79984
- var DEFAULT_WIDTHS = (_DEFAULT_WIDTHS = {}, defineProperty(_DEFAULT_WIDTHS, TYPE_ACCOUNT, (_TYPE_ACCOUNT = {}, defineProperty(_TYPE_ACCOUNT, VIEWS.LARGE, 160), defineProperty(_TYPE_ACCOUNT, VIEWS.MEDIUM, 120), defineProperty(_TYPE_ACCOUNT, VIEWS.SMALL, 80), _TYPE_ACCOUNT)), defineProperty(_DEFAULT_WIDTHS, TYPE_ACCOUNT_NUMBER, (_TYPE_ACCOUNT_NUMBER = {}, defineProperty(_TYPE_ACCOUNT_NUMBER, VIEWS.LARGE, 100), defineProperty(_TYPE_ACCOUNT_NUMBER, VIEWS.MEDIUM, 80), defineProperty(_TYPE_ACCOUNT_NUMBER, VIEWS.SMALL, 60), _TYPE_ACCOUNT_NUMBER)), defineProperty(_DEFAULT_WIDTHS, TYPE_ADDRESS, (_TYPE_ADDRESS = {}, defineProperty(_TYPE_ADDRESS, VIEWS.LARGE, 120), defineProperty(_TYPE_ADDRESS, VIEWS.MEDIUM, 100), defineProperty(_TYPE_ADDRESS, VIEWS.SMALL, 80), _TYPE_ADDRESS)), defineProperty(_DEFAULT_WIDTHS, TYPE_CHECKBOX, (_TYPE_CHECKBOX = {}, defineProperty(_TYPE_CHECKBOX, VIEWS.LARGE, 40), defineProperty(_TYPE_CHECKBOX, VIEWS.MEDIUM, 40), defineProperty(_TYPE_CHECKBOX, VIEWS.SMALL, 40), _TYPE_CHECKBOX)), defineProperty(_DEFAULT_WIDTHS, TYPE_COUNTRY, (_TYPE_COUNTRY = {}, defineProperty(_TYPE_COUNTRY, VIEWS.LARGE, 120), defineProperty(_TYPE_COUNTRY, VIEWS.MEDIUM, 80), defineProperty(_TYPE_COUNTRY, VIEWS.SMALL, 40), _TYPE_COUNTRY)), defineProperty(_DEFAULT_WIDTHS, TYPE_DATE, (_TYPE_DATE = {}, defineProperty(_TYPE_DATE, VIEWS.LARGE, 220), defineProperty(_TYPE_DATE, VIEWS.MEDIUM, 140), defineProperty(_TYPE_DATE, VIEWS.SMALL, 120), _TYPE_DATE)), defineProperty(_DEFAULT_WIDTHS, TYPE_ICON, (_TYPE_ICON = {}, defineProperty(_TYPE_ICON, VIEWS.LARGE, 140), defineProperty(_TYPE_ICON, VIEWS.MEDIUM, 100), defineProperty(_TYPE_ICON, VIEWS.SMALL, 60), _TYPE_ICON)), defineProperty(_DEFAULT_WIDTHS, TYPE_IMAGE, (_TYPE_IMAGE = {}, defineProperty(_TYPE_IMAGE, VIEWS.LARGE, 140), defineProperty(_TYPE_IMAGE, VIEWS.MEDIUM, 100), defineProperty(_TYPE_IMAGE, VIEWS.SMALL, 60), _TYPE_IMAGE)), defineProperty(_DEFAULT_WIDTHS, TYPE_NUMERIC, (_TYPE_NUMERIC = {}, defineProperty(_TYPE_NUMERIC, VIEWS.LARGE, 120), defineProperty(_TYPE_NUMERIC, VIEWS.MEDIUM, 100), defineProperty(_TYPE_NUMERIC, VIEWS.SMALL, 80), _TYPE_NUMERIC)), defineProperty(_DEFAULT_WIDTHS, TYPE_RATE, (_TYPE_RATE = {}, defineProperty(_TYPE_RATE, VIEWS.LARGE, 100), defineProperty(_TYPE_RATE, VIEWS.MEDIUM, 90), defineProperty(_TYPE_RATE, VIEWS.SMALL, 80), _TYPE_RATE)), defineProperty(_DEFAULT_WIDTHS, TYPE_SENTINEL, (_TYPE_SENTINEL = {}, defineProperty(_TYPE_SENTINEL, VIEWS.LARGE, 80), defineProperty(_TYPE_SENTINEL, VIEWS.MEDIUM, 80), defineProperty(_TYPE_SENTINEL, VIEWS.SMALL, 80), _TYPE_SENTINEL)), defineProperty(_DEFAULT_WIDTHS, TYPE_STATUS, (_TYPE_STATUS = {}, defineProperty(_TYPE_STATUS, VIEWS.LARGE, 120), defineProperty(_TYPE_STATUS, VIEWS.MEDIUM, 100), defineProperty(_TYPE_STATUS, VIEWS.SMALL, 80), _TYPE_STATUS)), defineProperty(_DEFAULT_WIDTHS, TYPE_TEXT, (_TYPE_TEXT = {}, defineProperty(_TYPE_TEXT, VIEWS.LARGE, 200), defineProperty(_TYPE_TEXT, VIEWS.MEDIUM, 120), defineProperty(_TYPE_TEXT, VIEWS.SMALL, 80), _TYPE_TEXT)), defineProperty(_DEFAULT_WIDTHS, TYPE_THIRD_PARTY_SECURITY, (_TYPE_THIRD_PARTY_SEC = {}, defineProperty(_TYPE_THIRD_PARTY_SEC, VIEWS.LARGE, 40), defineProperty(_TYPE_THIRD_PARTY_SEC, VIEWS.MEDIUM, 40), defineProperty(_TYPE_THIRD_PARTY_SEC, VIEWS.SMALL, 40), _TYPE_THIRD_PARTY_SEC)), _DEFAULT_WIDTHS);
79969
+ var DEFAULT_WIDTHS = (_DEFAULT_WIDTHS = {}, defineProperty(_DEFAULT_WIDTHS, TYPE_ACCOUNT, (_TYPE_ACCOUNT = {}, defineProperty(_TYPE_ACCOUNT, VIEWS.LARGE, 160), defineProperty(_TYPE_ACCOUNT, VIEWS.MEDIUM, 120), defineProperty(_TYPE_ACCOUNT, VIEWS.SMALL, 80), _TYPE_ACCOUNT)), defineProperty(_DEFAULT_WIDTHS, TYPE_ACCOUNT_NUMBER, (_TYPE_ACCOUNT_NUMBER = {}, defineProperty(_TYPE_ACCOUNT_NUMBER, VIEWS.LARGE, 100), defineProperty(_TYPE_ACCOUNT_NUMBER, VIEWS.MEDIUM, 80), defineProperty(_TYPE_ACCOUNT_NUMBER, VIEWS.SMALL, 60), _TYPE_ACCOUNT_NUMBER)), defineProperty(_DEFAULT_WIDTHS, TYPE_ADDRESS, (_TYPE_ADDRESS = {}, defineProperty(_TYPE_ADDRESS, VIEWS.LARGE, 120), defineProperty(_TYPE_ADDRESS, VIEWS.MEDIUM, 100), defineProperty(_TYPE_ADDRESS, VIEWS.SMALL, 80), _TYPE_ADDRESS)), defineProperty(_DEFAULT_WIDTHS, TYPE_CHECKBOX, (_TYPE_CHECKBOX = {}, defineProperty(_TYPE_CHECKBOX, VIEWS.LARGE, 40), defineProperty(_TYPE_CHECKBOX, VIEWS.MEDIUM, 40), defineProperty(_TYPE_CHECKBOX, VIEWS.SMALL, 40), _TYPE_CHECKBOX)), defineProperty(_DEFAULT_WIDTHS, TYPE_COUNTRY, (_TYPE_COUNTRY = {}, defineProperty(_TYPE_COUNTRY, VIEWS.LARGE, 120), defineProperty(_TYPE_COUNTRY, VIEWS.MEDIUM, 80), defineProperty(_TYPE_COUNTRY, VIEWS.SMALL, 40), _TYPE_COUNTRY)), defineProperty(_DEFAULT_WIDTHS, TYPE_DATE, (_TYPE_DATE = {}, defineProperty(_TYPE_DATE, VIEWS.LARGE, 220), defineProperty(_TYPE_DATE, VIEWS.MEDIUM, 140), defineProperty(_TYPE_DATE, VIEWS.SMALL, 120), _TYPE_DATE)), defineProperty(_DEFAULT_WIDTHS, TYPE_ICON, (_TYPE_ICON = {}, defineProperty(_TYPE_ICON, VIEWS.LARGE, 140), defineProperty(_TYPE_ICON, VIEWS.MEDIUM, 100), defineProperty(_TYPE_ICON, VIEWS.SMALL, 60), _TYPE_ICON)), defineProperty(_DEFAULT_WIDTHS, TYPE_IMAGE, (_TYPE_IMAGE = {}, defineProperty(_TYPE_IMAGE, VIEWS.LARGE, 140), defineProperty(_TYPE_IMAGE, VIEWS.MEDIUM, 100), defineProperty(_TYPE_IMAGE, VIEWS.SMALL, 60), _TYPE_IMAGE)), defineProperty(_DEFAULT_WIDTHS, TYPE_NUMERIC, (_TYPE_NUMERIC = {}, defineProperty(_TYPE_NUMERIC, VIEWS.LARGE, 120), defineProperty(_TYPE_NUMERIC, VIEWS.MEDIUM, 100), defineProperty(_TYPE_NUMERIC, VIEWS.SMALL, 80), _TYPE_NUMERIC)), defineProperty(_DEFAULT_WIDTHS, TYPE_RATE, (_TYPE_RATE = {}, defineProperty(_TYPE_RATE, VIEWS.LARGE, 100), defineProperty(_TYPE_RATE, VIEWS.MEDIUM, 90), defineProperty(_TYPE_RATE, VIEWS.SMALL, 80), _TYPE_RATE)), defineProperty(_DEFAULT_WIDTHS, TYPE_SENTINEL, (_TYPE_SENTINEL = {}, defineProperty(_TYPE_SENTINEL, VIEWS.LARGE, 64), defineProperty(_TYPE_SENTINEL, VIEWS.MEDIUM, 64), defineProperty(_TYPE_SENTINEL, VIEWS.SMALL, 64), _TYPE_SENTINEL)), defineProperty(_DEFAULT_WIDTHS, TYPE_SENTINEL_SCORE, (_TYPE_SENTINEL_SCORE = {}, defineProperty(_TYPE_SENTINEL_SCORE, VIEWS.LARGE, 80), defineProperty(_TYPE_SENTINEL_SCORE, VIEWS.MEDIUM, 80), defineProperty(_TYPE_SENTINEL_SCORE, VIEWS.SMALL, 80), _TYPE_SENTINEL_SCORE)), defineProperty(_DEFAULT_WIDTHS, TYPE_STATUS, (_TYPE_STATUS = {}, defineProperty(_TYPE_STATUS, VIEWS.LARGE, 120), defineProperty(_TYPE_STATUS, VIEWS.MEDIUM, 100), defineProperty(_TYPE_STATUS, VIEWS.SMALL, 80), _TYPE_STATUS)), defineProperty(_DEFAULT_WIDTHS, TYPE_TEXT, (_TYPE_TEXT = {}, defineProperty(_TYPE_TEXT, VIEWS.LARGE, 200), defineProperty(_TYPE_TEXT, VIEWS.MEDIUM, 120), defineProperty(_TYPE_TEXT, VIEWS.SMALL, 80), _TYPE_TEXT)), defineProperty(_DEFAULT_WIDTHS, TYPE_THIRD_PARTY_SECURITY, (_TYPE_THIRD_PARTY_SEC = {}, defineProperty(_TYPE_THIRD_PARTY_SEC, VIEWS.LARGE, 40), defineProperty(_TYPE_THIRD_PARTY_SEC, VIEWS.MEDIUM, 40), defineProperty(_TYPE_THIRD_PARTY_SEC, VIEWS.SMALL, 40), _TYPE_THIRD_PARTY_SEC)), _DEFAULT_WIDTHS);
79985
79970
  /**
79986
79971
  * Cell default width for each views
79987
79972
  * @type {{}}
79988
79973
  */
79989
79974
 
79990
- var DEFAULT_VIEWS = (_DEFAULT_VIEWS = {}, defineProperty(_DEFAULT_VIEWS, TYPE_ACCOUNT, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_ACCOUNT_NUMBER, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_ADDRESS, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_CHECKBOX, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_COUNTRY, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_DATE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_ICON, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_IMAGE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_NUMERIC, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_RATE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_SENTINEL, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_STATUS, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_TEXT, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_THIRD_PARTY_SECURITY, VIEWS.LARGE), _DEFAULT_VIEWS);
79975
+ var DEFAULT_VIEWS = (_DEFAULT_VIEWS = {}, defineProperty(_DEFAULT_VIEWS, TYPE_ACCOUNT, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_ACCOUNT_NUMBER, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_ADDRESS, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_CHECKBOX, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_COUNTRY, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_DATE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_ICON, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_IMAGE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_NUMERIC, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_RATE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_SENTINEL, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_SENTINEL_SCORE, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_STATUS, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_TEXT, VIEWS.LARGE), defineProperty(_DEFAULT_VIEWS, TYPE_THIRD_PARTY_SECURITY, VIEWS.LARGE), _DEFAULT_VIEWS);
79991
79976
  /**
79992
79977
  * Cell default side padding (one side) for each views
79993
79978
  * @type {{}}
@@ -79999,7 +79984,7 @@
79999
79984
  * @type {*[]}
80000
79985
  */
80001
79986
 
80002
- var ALIGN_RIGHT_TYPES = [TYPE_NUMERIC, TYPE_RATE, TYPE_SENTINEL];
79987
+ var ALIGN_RIGHT_TYPES = [TYPE_NUMERIC, TYPE_RATE, TYPE_SENTINEL, TYPE_SENTINEL_SCORE];
80003
79988
 
80004
79989
  var styles$c = function styles(theme) {
80005
79990
  return {
@@ -80347,13 +80332,18 @@
80347
80332
 
80348
80333
  case TYPE_SENTINEL:
80349
80334
  return React__default.createElement(CellSentinel, {
80350
- automaticFraudReviewResult: datacell.automaticFraudReviewResult,
80351
- fraudResult: datacell.value,
80352
- hideFraudResult: datacell.hideFraudResult,
80353
- pendingManualAction: datacell.pendingManualAction,
80354
- score: datacell.score,
80355
- smartDecision: datacell.smartDecision,
80356
- view: cell.view ? cell.view : DEFAULT_VIEWS[cell.type]
80335
+ color: datacell.color,
80336
+ label: datacell.label,
80337
+ letter: datacell.label2,
80338
+ active: datacell.active,
80339
+ reviewer: datacell.reviewer,
80340
+ outlined: datacell.outlined
80341
+ });
80342
+
80343
+ case TYPE_SENTINEL_SCORE:
80344
+ return React__default.createElement(CellSentinelScore, {
80345
+ value: datacell.value,
80346
+ result: datacell.result
80357
80347
  });
80358
80348
 
80359
80349
  case TYPE_PIN_TO_ACTION:
@@ -91180,7 +91170,7 @@
91180
91170
  bottom: 0,
91181
91171
  height: 32,
91182
91172
  width: 32,
91183
- margin: '4px 24px'
91173
+ margin: '0px 24px'
91184
91174
  },
91185
91175
  calendarButton: {
91186
91176
  fontWeight: theme.typography.fontWeightMedium
@@ -91473,8 +91463,8 @@
91473
91463
  }(React__default.Component);
91474
91464
 
91475
91465
  YearPickerOverlay.defaultProps = {
91476
- disableFutureDays: false,
91477
- disablePastDays: false,
91466
+ // disableFutureDays: true,
91467
+ // disablePastDays: false,
91478
91468
  minimumDate: new Date(2013, 4, 1),
91479
91469
  // by default 1 May 2013
91480
91470
  translations: {
@@ -91510,7 +91500,7 @@
91510
91500
  /**
91511
91501
  * Date minimale sélectionnable
91512
91502
  */
91513
- minimumDate: propTypes.instanceOf(Date),
91503
+ minimumDate: propTypes.instanceOf(Date).isRequired,
91514
91504
 
91515
91505
  /**
91516
91506
  * Fonction de callback
@@ -91617,7 +91607,8 @@
91617
91607
  button: {
91618
91608
  height: 32,
91619
91609
  width: 32,
91620
- margin: '4px 24px'
91610
+ margin: '4px 24px',
91611
+ padding: 0
91621
91612
  },
91622
91613
  left: {
91623
91614
  float: 'left'
@@ -92175,7 +92166,7 @@
92175
92166
  todayButton: translations.today,
92176
92167
  onTodayButtonClick: this.handleCurrentMonthChange,
92177
92168
  weekdayElement: Weekday$1,
92178
- NavBarElement: function NavBarElement(props2) {
92169
+ navbarElement: function navbarElement(props2) {
92179
92170
  return React__default.createElement(NavBar$1, _extends_1({
92180
92171
  showClockButton: enableTime,
92181
92172
  onClockClick: _this2.handleClockClick
@@ -92484,400 +92475,288 @@
92484
92475
 
92485
92476
  _this = possibleConstructorReturn(this, getPrototypeOf(HiDateRangePicker).call(this));
92486
92477
 
92487
- _this.handleInputChange = function (inputName) {
92488
- return function (event) {
92489
- _this.event = event;
92478
+ _this.handleDayChange = function (name, day) {
92479
+ if (day) {
92480
+ // if time disabled, focus TO input
92481
+ // else focus current input
92482
+ if (!_this.props.enableTime) {
92483
+ if (day instanceof Date) {
92484
+ if (name === 'from' && _this.toInput) {
92485
+ _this.toInput.getInput().focus();
92486
+ }
92487
+ }
92488
+ } else {
92489
+ _this.timeout = setTimeout(function () {
92490
+ if (_this["".concat(name, "Input")].getInput()) {
92491
+ _this["".concat(name, "Input")].getInput().focus();
92492
+ }
92493
+ }, 10);
92494
+ }
92490
92495
 
92491
- _this.props.onChange(inputName, event.target.value);
92492
- };
92496
+ if (_this.props.onChange) {
92497
+ _this.handleChange(name, day);
92498
+ }
92499
+
92500
+ if (_this.props.enableTime) {
92501
+ _this.openPanel('time');
92502
+ }
92503
+ }
92493
92504
  };
92494
92505
 
92495
- _this.handleDayPickerFocus = function (name) {
92496
- return function () {
92497
- _this.setState({
92498
- focusedInput: name
92499
- });
92506
+ _this.handleInputChange = function (inputName) {
92507
+ return function (event) {
92508
+ _this.handleChange(inputName, event.target.value);
92500
92509
  };
92501
92510
  };
92502
92511
 
92503
- _this.handleDayPickerBlur = function (name) {
92504
- return function () {
92505
- _this.setState({
92506
- focusedInput: ''
92507
- });
92512
+ _this.onDayToClick = function (day) {
92513
+ _this.handleDayChange('to', day);
92508
92514
 
92509
- if (_this.props.onBlur) {
92510
- _this.props.onBlur(name);
92511
- }
92512
- };
92515
+ document.activeElement.blur();
92513
92516
  };
92514
92517
 
92515
- _this.state = {
92516
- fromCurrentMonth: props.from ? props.from : new Date(),
92517
- toCurrentMonth: props.to ? props.to : new Date(),
92518
- focusedInput: ''
92519
- };
92520
- _this.handleReset = _this.handleReset.bind(assertThisInitialized(assertThisInitialized(_this)));
92521
- _this.handleDayChange = _this.handleDayChange.bind(assertThisInitialized(assertThisInitialized(_this)));
92522
- _this.handleDayChangeFrom = _this.handleDayChangeFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92523
- _this.handleDayChangeTo = _this.handleDayChangeTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92524
- _this.handleCurrentMonthChange = _this.handleCurrentMonthChange.bind(assertThisInitialized(assertThisInitialized(_this)));
92525
- _this.handleCurrentMonthChangeFrom = _this.handleCurrentMonthChangeFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92526
- _this.handleCurrentMonthChangeTo = _this.handleCurrentMonthChangeTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92527
- _this.handleTimeChange = _this.handleTimeChange.bind(assertThisInitialized(assertThisInitialized(_this)));
92528
- _this.handleCalendarClick = _this.handleCalendarClick.bind(assertThisInitialized(assertThisInitialized(_this)));
92529
- _this.handleCalendarClickFrom = _this.handleCalendarClickFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92530
- _this.handleCalendarClickTo = _this.handleCalendarClickTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92531
- _this.handleClockClick = _this.handleClockClick.bind(assertThisInitialized(assertThisInitialized(_this)));
92532
- _this.handleClockClickFrom = _this.handleClockClickFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92533
- _this.handleClockClickTo = _this.handleClockClickTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92534
- _this.handleMonthClick = _this.handleMonthClick.bind(assertThisInitialized(assertThisInitialized(_this)));
92535
- _this.handleMonthClickFrom = _this.handleMonthClickFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92536
- _this.handleMonthClickTo = _this.handleMonthClickTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92537
- _this.handleYearClick = _this.handleYearClick.bind(assertThisInitialized(assertThisInitialized(_this)));
92538
- _this.handleYearClickFrom = _this.handleYearClickFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92539
- _this.handleYearClickTo = _this.handleYearClickTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92540
- _this.handleDayPickerFocus = _this.handleDayPickerFocus.bind(assertThisInitialized(assertThisInitialized(_this)));
92541
- _this.handleDayPickerBlur = _this.handleDayPickerBlur.bind(assertThisInitialized(assertThisInitialized(_this)));
92542
- _this.handleInputChange = _this.handleInputChange.bind(assertThisInitialized(assertThisInitialized(_this)));
92543
- _this.openPanel = _this.openPanel.bind(assertThisInitialized(assertThisInitialized(_this)));
92544
- _this.renderCaption = _this.renderCaption.bind(assertThisInitialized(assertThisInitialized(_this)));
92545
- _this.renderCaptionFrom = _this.renderCaptionFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92546
- _this.renderCaptionTo = _this.renderCaptionTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92547
- _this.renderNavBar = _this.renderNavBar.bind(assertThisInitialized(assertThisInitialized(_this)));
92548
- _this.renderNavBarFrom = _this.renderNavBarFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92549
- _this.renderNavBarTo = _this.renderNavBarTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92550
- _this.renderOverlay = _this.renderOverlay.bind(assertThisInitialized(assertThisInitialized(_this)));
92551
- _this.renderOverlayFrom = _this.renderOverlayFrom.bind(assertThisInitialized(assertThisInitialized(_this)));
92552
- _this.renderOverlayTo = _this.renderOverlayTo.bind(assertThisInitialized(assertThisInitialized(_this)));
92553
- _this.renderMonthPickerOverlay = _this.renderMonthPickerOverlay.bind(assertThisInitialized(assertThisInitialized(_this)));
92554
- _this.renderTimePickerOverlay = _this.renderTimePickerOverlay.bind(assertThisInitialized(assertThisInitialized(_this)));
92555
- _this.renderYearPickerOverlay = _this.renderYearPickerOverlay.bind(assertThisInitialized(assertThisInitialized(_this)));
92556
- return _this;
92557
- }
92518
+ _this.handleTimeChange = function (name, date, precision) {
92519
+ _this.handleChange(name, date);
92558
92520
 
92559
- createClass(HiDateRangePicker, [{
92560
- key: "componentDidUpdate",
92561
- value: function componentDidUpdate(prevProps) {
92562
- var _this2 = this;
92521
+ if (name === 'from' && precision === 'minute') {
92522
+ _this.fromInput.hideDayPicker();
92563
92523
 
92564
- // Focus From input on enabling
92565
- if (prevProps.disabled === true && this.props.disabled === false) {
92566
- this.timeout = setTimeout(function () {
92567
- if (_this2.fromInput.getInput()) {
92568
- _this2.fromInput.getInput().focus();
92569
- }
92570
- }, 0);
92524
+ _this.toInput.getInput().focus();
92525
+
92526
+ _this.toInput.showDayPicker();
92527
+
92528
+ _this.openPanel('calendar');
92529
+ } else if (name === 'to' && precision === 'minute') {
92530
+ _this.toInput.hideDayPicker();
92531
+
92532
+ document.activeElement.blur();
92571
92533
  }
92572
- }
92573
- }, {
92574
- key: "componentWillUnmount",
92575
- value: function componentWillUnmount() {
92576
- clearTimeout(this.timeout);
92577
- }
92578
- }, {
92579
- key: "handleDayChange",
92580
- value: function handleDayChange(name, day, modifiers) {
92581
- var _this3 = this;
92534
+ };
92582
92535
 
92583
- if (day) {
92584
- // if time disabled, focus TO input
92585
- // else focus current input
92586
- if (!this.props.enableTime) {
92587
- if (day instanceof Date) {
92588
- if (name === 'from' && this.toInput) {
92589
- this.toInput.getInput().focus();
92590
- } else if (name === 'to') {
92591
- if (typeof this.event === 'undefined' || this.event && this.event.type !== 'change') {
92592
- // trigger blur only if user clicks on date into calendar
92593
- // else keep focus to see day selection into calendar
92594
- document.activeElement.blur();
92595
- }
92536
+ _this.handleChange = function (name, day) {
92537
+ var translations = _this.props.translations;
92538
+ var date = undefined;
92539
+ var error = undefined;
92540
+ var now = new Date();
92541
+ var _this$props = _this.props,
92542
+ minimumDate = _this$props.minimumDate,
92543
+ disableFutureDays = _this$props.disableFutureDays,
92544
+ format = _this$props.format;
92596
92545
 
92597
- delete this.event;
92598
- }
92599
- }
92546
+ if (day instanceof Date) {
92547
+ date = day;
92548
+ } else if (day) {
92549
+ var parsedValue = moment(day, _this.props.format, true);
92550
+
92551
+ if (parsedValue.isValid()) {
92552
+ date = parsedValue.toDate();
92600
92553
  } else {
92601
- this.timeout = setTimeout(function () {
92602
- if (_this3["".concat(name, "Input")].getInput()) {
92603
- _this3["".concat(name, "Input")].getInput().focus();
92604
- }
92605
- }, 10);
92554
+ error = translations.invalid_format;
92606
92555
  }
92556
+ }
92607
92557
 
92608
- if (this.props.onChange) {
92609
- // Keep Time if set
92610
- if (this.props.enableTime) {
92611
- if (this.props[name]) {
92612
- day.setHours(this.props[name].getHours(), this.props[name].getMinutes());
92613
- } else {
92614
- day.setHours(0, 0);
92615
- }
92616
- }
92558
+ if (date) {
92559
+ var comparativeDate = name === 'to' ? moment(_this.props.from) : moment(_this.props.to);
92617
92560
 
92618
- this.props.onChange(name, day);
92561
+ if (name === 'to' && comparativeDate > moment(date) || name === 'from' && comparativeDate < moment(date)) {
92562
+ error = translations.to_superior_from;
92563
+ } else if (date < minimumDate) {
92564
+ error = translations.date_inferior_min_date.replace("%s", moment(minimumDate).format(format));
92565
+ } else if (disableFutureDays && date > now) {
92566
+ error = translations.date_superior_max_date.replace("%s", moment().format(format));
92619
92567
  }
92620
92568
 
92621
- if (this.props.enableTime) {
92622
- this.openPanel(name, 'time');
92569
+ if (!_this.props.enableTime) {
92570
+ if (name === 'from') {
92571
+ date.setHours(0, 0);
92572
+ } else {
92573
+ date.setHours(23, 59);
92574
+ }
92623
92575
  }
92624
92576
  }
92625
- }
92626
- }, {
92627
- key: "handleDayChangeFrom",
92628
- value: function handleDayChangeFrom(day, modifiers) {
92629
- this.handleDayChange('from', day, modifiers);
92630
- }
92631
- }, {
92632
- key: "handleDayChangeTo",
92633
- value: function handleDayChangeTo(day, modifiers) {
92634
- this.handleDayChange('to', day, modifiers);
92635
- }
92636
- }, {
92637
- key: "handleCurrentMonthChange",
92638
- value: function handleCurrentMonthChange(name, day) {
92639
- var _this$setState;
92640
92577
 
92641
- this.setState((_this$setState = {}, defineProperty(_this$setState, "".concat(name, "CurrentMonth"), day), defineProperty(_this$setState, "".concat(name, "OpenedPanel"), 'calendar'), _this$setState));
92642
- }
92643
- }, {
92644
- key: "handleCurrentMonthChangeFrom",
92645
- value: function handleCurrentMonthChangeFrom(day) {
92646
- this.handleCurrentMonthChange('from', day);
92647
- }
92648
- }, {
92649
- key: "handleCurrentMonthChangeTo",
92650
- value: function handleCurrentMonthChangeTo(day) {
92651
- this.handleCurrentMonthChange('to', day);
92652
- }
92653
- }, {
92654
- key: "handleCalendarClick",
92655
- value: function handleCalendarClick(name) {
92656
- this.openPanel(name, 'calendar');
92657
- }
92658
- }, {
92659
- key: "handleCalendarClickFrom",
92660
- value: function handleCalendarClickFrom() {
92661
- this.handleCalendarClick('from');
92662
- }
92663
- }, {
92664
- key: "handleCalendarClickTo",
92665
- value: function handleCalendarClickTo() {
92666
- this.handleCalendarClick('to');
92667
- }
92668
- }, {
92669
- key: "handleClockClick",
92670
- value: function handleClockClick(name) {
92671
- this.openPanel(name, 'time');
92672
- }
92673
- }, {
92674
- key: "handleClockClickFrom",
92675
- value: function handleClockClickFrom() {
92676
- this.handleClockClick('from');
92677
- }
92678
- }, {
92679
- key: "handleClockClickTo",
92680
- value: function handleClockClickTo() {
92681
- this.handleClockClick('to');
92682
- }
92683
- }, {
92684
- key: "handleMonthClick",
92685
- value: function handleMonthClick(name) {
92686
- this.openPanel(name, 'months');
92687
- }
92688
- }, {
92689
- key: "handleMonthClickFrom",
92690
- value: function handleMonthClickFrom() {
92691
- this.handleMonthClick('from');
92692
- }
92693
- }, {
92694
- key: "handleMonthClickTo",
92695
- value: function handleMonthClickTo() {
92696
- this.handleMonthClick('to');
92697
- }
92698
- }, {
92699
- key: "handleYearClick",
92700
- value: function handleYearClick(name) {
92701
- this.openPanel(name, 'years');
92702
- }
92703
- }, {
92704
- key: "handleYearClickFrom",
92705
- value: function handleYearClickFrom() {
92706
- this.handleYearClick('from');
92707
- }
92708
- }, {
92709
- key: "handleYearClickTo",
92710
- value: function handleYearClickTo() {
92711
- this.handleYearClick('to');
92712
- }
92713
- }, {
92714
- key: "handleTimeChange",
92715
- value: function handleTimeChange(name, date, precision) {
92716
- this.props.onChange(name, date);
92578
+ _this.props.onChange(name, date);
92717
92579
 
92718
- if (name === 'from' && precision === 'minute') {
92719
- this.fromInput.hideDayPicker();
92720
- this.toInput.getInput().focus();
92721
- this.toInput.showDayPicker();
92722
- } else if (name === 'to' && precision === 'minute') {
92723
- this.toInput.hideDayPicker();
92724
- document.activeElement.blur();
92580
+ _this.props.onChange("".concat(name, "Error"), error);
92581
+ };
92582
+
92583
+ _this.handleCurrentMonthChange = function (day) {
92584
+ _this.setState({
92585
+ currentMonth: day,
92586
+ openedPanel: 'calendar'
92587
+ });
92588
+ };
92589
+
92590
+ _this.handleDayPickerFocus = function (name) {
92591
+ _this.setState({
92592
+ focusedInput: name
92593
+ });
92594
+ };
92595
+
92596
+ _this.handleDayPickerBlur = function (name) {
92597
+ _this.setState({
92598
+ focusedInput: ''
92599
+ });
92600
+
92601
+ if (_this.props.onBlur) {
92602
+ _this.props.onBlur(name);
92725
92603
  }
92726
- }
92727
- }, {
92728
- key: "handleReset",
92729
- value: function handleReset(name) {
92730
- var _this4 = this;
92731
92604
 
92732
- this.handleCurrentMonthChange(name, new Date());
92733
- this.timeout = setTimeout(function () {
92734
- if (_this4.props.onReset) {
92735
- _this4.props.onReset(name);
92605
+ _this.timeout = setTimeout(function () {
92606
+ if (!['from', 'to'].includes(_this.state.focusedInput)) {
92607
+ _this.setState({
92608
+ openedPanel: 'calendar'
92609
+ });
92736
92610
  }
92737
- }, 0);
92738
- }
92739
- }, {
92740
- key: "openPanel",
92741
- value: function openPanel(name, panel) {
92742
- this.setState(defineProperty({}, "".concat(name, "OpenedPanel"), panel));
92743
- }
92744
- }, {
92745
- key: "renderCaption",
92746
- value: function renderCaption(name, propsCaption) {
92611
+ }, 100);
92612
+ };
92613
+
92614
+ _this.handleReset = function (name) {
92615
+ _this.handleChange(name, undefined);
92616
+
92617
+ _this.setState({
92618
+ keyFrom: _this.state.keyFrom === 1 ? 2 : 1,
92619
+ keyTo: _this.state.keyTo === 1 ? 2 : 1
92620
+ });
92621
+ };
92622
+
92623
+ _this.openPanel = function (panel) {
92624
+ _this.setState({
92625
+ openedPanel: panel
92626
+ });
92627
+ };
92628
+
92629
+ _this.renderCaption = function (propsCaption) {
92747
92630
  return React__default.createElement(Caption$2, _extends_1({
92748
- onMonthClick: this["handleMonthClick".concat(capitalize(name))],
92749
- onYearClick: this["handleYearClick".concat(capitalize(name))]
92631
+ onMonthClick: function onMonthClick() {
92632
+ return _this.openPanel('months');
92633
+ },
92634
+ onYearClick: function onYearClick() {
92635
+ return _this.openPanel('years');
92636
+ }
92750
92637
  }, propsCaption));
92751
- }
92752
- }, {
92753
- key: "renderCaptionFrom",
92754
- value: function renderCaptionFrom(propsCaption) {
92755
- return this.renderCaption('from', propsCaption);
92756
- }
92757
- }, {
92758
- key: "renderCaptionTo",
92759
- value: function renderCaptionTo(propsCaption) {
92760
- return this.renderCaption('to', propsCaption);
92761
- }
92762
- }, {
92763
- key: "renderNavBar",
92764
- value: function renderNavBar(name, propsNavBar) {
92638
+ };
92639
+
92640
+ _this.renderNavBar = function (propsNavBar) {
92765
92641
  return React__default.createElement(NavBar$1, _extends_1({
92766
- showClockButton: this.props.enableTime,
92767
- onClockClick: this["handleClockClick".concat(capitalize(name))]
92642
+ showClockButton: _this.props.enableTime,
92643
+ onClockClick: function onClockClick() {
92644
+ return _this.openPanel('time');
92645
+ }
92768
92646
  }, propsNavBar));
92769
- }
92770
- }, {
92771
- key: "renderNavBarFrom",
92772
- value: function renderNavBarFrom(propsNavBar) {
92773
- return this.renderNavBar('from', propsNavBar);
92774
- }
92775
- }, {
92776
- key: "renderNavBarTo",
92777
- value: function renderNavBarTo(propsNavBar) {
92778
- return this.renderNavBar('to', propsNavBar);
92779
- }
92780
- }, {
92781
- key: "renderOverlay",
92782
- value: function renderOverlay(name, propsOverlay, staticPosition) {
92647
+ };
92648
+
92649
+ _this.renderOverlay = function (name, propsOverlay, staticPosition) {
92783
92650
  var rangeOverlayProps = _extends_1({}, propsOverlay, {
92784
92651
  side: name,
92785
92652
  staticPosition: staticPosition
92786
92653
  });
92787
92654
 
92788
- switch (this.state["".concat(name, "OpenedPanel")]) {
92655
+ switch (_this.state['openedPanel']) {
92789
92656
  case 'time':
92790
- return this.renderTimePickerOverlay(name, rangeOverlayProps);
92657
+ return _this.renderTimePickerOverlay(name, rangeOverlayProps);
92791
92658
 
92792
92659
  case 'months':
92793
- return this.renderMonthPickerOverlay(name, rangeOverlayProps);
92660
+ return _this.renderMonthPickerOverlay(name, rangeOverlayProps);
92794
92661
 
92795
92662
  case 'years':
92796
- return this.renderYearPickerOverlay(name, rangeOverlayProps);
92663
+ return _this.renderYearPickerOverlay(name, rangeOverlayProps);
92797
92664
 
92798
92665
  case 'calendar':
92799
- default:
92800
92666
  return React__default.createElement(Overlay$1, rangeOverlayProps);
92801
92667
  }
92802
- }
92803
- }, {
92804
- key: "renderOverlayFrom",
92805
- value: function renderOverlayFrom(propsOverlay) {
92806
- return this.renderOverlay('from', propsOverlay, this.props.staticPosition);
92807
- }
92808
- }, {
92809
- key: "renderOverlayTo",
92810
- value: function renderOverlayTo(propsOverlay) {
92811
- return this.renderOverlay('to', propsOverlay, this.props.staticPosition);
92812
- }
92813
- }, {
92814
- key: "renderMonthPickerOverlay",
92815
- value: function renderMonthPickerOverlay(name, propsOverlay) {
92668
+ };
92669
+
92670
+ _this.renderOverlayFrom = function (propsOverlay) {
92671
+ return _this.renderOverlay('from', propsOverlay, _this.props.staticPosition);
92672
+ };
92673
+
92674
+ _this.renderOverlayTo = function (propsOverlay) {
92675
+ return _this.renderOverlay('to', propsOverlay, _this.props.staticPosition);
92676
+ };
92677
+
92678
+ _this.renderMonthPickerOverlay = function (name, propsOverlay) {
92816
92679
  var monthPickerProps = {
92817
- value: this.state["".concat(name, "CurrentMonth")],
92818
- onChange: this["handleCurrentMonthChange".concat(capitalize(name))]
92680
+ value: _this.state['currentMonth'],
92681
+ onChange: _this.handleCurrentMonthChange
92819
92682
  };
92820
92683
  return React__default.createElement(MonthPickerOverlay, _extends_1({
92821
92684
  key: "".concat(name, "-month-picker-overlay")
92822
92685
  }, monthPickerProps, propsOverlay));
92823
- }
92824
- }, {
92825
- key: "renderTimePickerOverlay",
92826
- value: function renderTimePickerOverlay(name, propsOverlay) {
92827
- var _this5 = this;
92686
+ };
92828
92687
 
92688
+ _this.renderTimePickerOverlay = function (name, propsOverlay) {
92829
92689
  var timePickerProps = {
92830
- value: this.props[name],
92690
+ value: _this.props[name],
92831
92691
  onChange: function onChange(date, precision) {
92832
- return _this5.handleTimeChange(name, date, precision);
92692
+ return _this.handleTimeChange(name, date, precision);
92833
92693
  },
92834
- onCalendarClick: this["handleCalendarClick".concat(capitalize(name))]
92694
+ onCalendarClick: function onCalendarClick() {
92695
+ return _this.openPanel('calendar');
92696
+ }
92835
92697
  };
92836
92698
  return React__default.createElement(TimePickerOverlay$1, _extends_1({
92837
92699
  key: "".concat(name, "-time-picker-overlay")
92838
92700
  }, timePickerProps, propsOverlay));
92839
- }
92840
- }, {
92841
- key: "renderYearPickerOverlay",
92842
- value: function renderYearPickerOverlay(name, propsOverlay) {
92701
+ };
92702
+
92703
+ _this.renderYearPickerOverlay = function (name, propsOverlay) {
92843
92704
  var yearPickerProps = {
92844
- value: this.state["".concat(name, "CurrentMonth")],
92845
- onChange: this["handleCurrentMonthChange".concat(capitalize(name))],
92846
- disabledFutureDays: this.props.disableFutureDays,
92847
- disabledPastDays: this.props.disablePastDays
92705
+ value: _this.state['currentMonth'],
92706
+ onChange: _this.handleCurrentMonthChange,
92707
+ disabledFutureDays: _this.props.disableFutureDays
92848
92708
  };
92849
92709
  return React__default.createElement(YearPickerOverlay, _extends_1({
92850
92710
  key: "".concat(name, "-year-picker-overlay")
92851
92711
  }, yearPickerProps, propsOverlay));
92712
+ };
92713
+
92714
+ _this.state = {
92715
+ currentMonth: new Date(),
92716
+ focusedInput: '',
92717
+ openedPanel: 'calendar',
92718
+ keyFrom: 1,
92719
+ keyTo: 1
92720
+ };
92721
+ return _this;
92722
+ }
92723
+
92724
+ createClass(HiDateRangePicker, [{
92725
+ key: "componentWillUnmount",
92726
+ value: function componentWillUnmount() {
92727
+ clearTimeout(this.timeout);
92852
92728
  }
92853
92729
  }, {
92854
92730
  key: "render",
92855
92731
  value: function render() {
92856
- var _this6 = this,
92732
+ var _this2 = this,
92857
92733
  _classNames;
92858
92734
 
92859
- var _this$props = this.props,
92860
- classes = _this$props.classes,
92861
- disabledDays = _this$props.disabledDays,
92862
- disablePastDays = _this$props.disablePastDays,
92863
- disableFutureDays = _this$props.disableFutureDays,
92864
- enableTime = _this$props.enableTime,
92865
- labelFrom = _this$props.labelFrom,
92866
- labelTo = _this$props.labelTo,
92867
- locale = _this$props.locale,
92868
- format = _this$props.format,
92869
- from = _this$props.from,
92870
- minimumDate = _this$props.minimumDate,
92871
- onReset = _this$props.onReset,
92872
- to = _this$props.to,
92873
- translations = _this$props.translations,
92874
- id = _this$props.id,
92875
- staticPosition = _this$props.staticPosition,
92876
- props = objectWithoutProperties(_this$props, ["classes", "disabledDays", "disablePastDays", "disableFutureDays", "enableTime", "labelFrom", "labelTo", "locale", "format", "from", "minimumDate", "onReset", "to", "translations", "id", "staticPosition"]);
92735
+ var _this$props2 = this.props,
92736
+ classes = _this$props2.classes,
92737
+ disabled = _this$props2.disabled,
92738
+ disabledDays = _this$props2.disabledDays,
92739
+ disableFutureDays = _this$props2.disableFutureDays,
92740
+ enableTime = _this$props2.enableTime,
92741
+ labelFrom = _this$props2.labelFrom,
92742
+ labelTo = _this$props2.labelTo,
92743
+ locale = _this$props2.locale,
92744
+ format = _this$props2.format,
92745
+ from = _this$props2.from,
92746
+ fromError = _this$props2.fromError,
92747
+ minimumDate = _this$props2.minimumDate,
92748
+ onReset = _this$props2.onReset,
92749
+ to = _this$props2.to,
92750
+ toError = _this$props2.toError,
92751
+ translations = _this$props2.translations,
92752
+ id = _this$props2.id,
92753
+ staticPosition = _this$props2.staticPosition,
92754
+ errorText = _this$props2.errorText,
92755
+ hasSelector = _this$props2.hasSelector,
92756
+ helperIcon = _this$props2.helperIcon,
92757
+ helperText = _this$props2.helperText,
92758
+ props = objectWithoutProperties(_this$props2, ["classes", "disabled", "disabledDays", "disableFutureDays", "enableTime", "labelFrom", "labelTo", "locale", "format", "from", "fromError", "minimumDate", "onReset", "to", "toError", "translations", "id", "staticPosition", "errorText", "hasSelector", "helperIcon", "helperText"]);
92877
92759
 
92878
- var _this$state = this.state,
92879
- fromCurrentMonth = _this$state.fromCurrentMonth,
92880
- toCurrentMonth = _this$state.toCurrentMonth;
92881
92760
  var now = new Date();
92882
92761
  var modifiers = {
92883
92762
  start: from,
@@ -92922,99 +92801,81 @@
92922
92801
  selectedDays: selectedDays,
92923
92802
  todayButton: translations.today,
92924
92803
  weekdayElement: Weekday$1
92925
- }, props); // Build Props for the From DatePicker
92926
- // Disable days after 'to' date if define
92927
-
92928
-
92929
- var after;
92930
-
92931
- if (to instanceof Date && disableFutureDays) {
92932
- after = to < now ? now : to;
92933
- } else if (to instanceof Date) {
92934
- after = to;
92935
- } else if (disableFutureDays) {
92936
- after = now;
92937
- }
92938
-
92939
- var disabledDaysFrom = _extends_1({}, disablePastDays && {
92940
- before: now
92941
- }, (to || disableFutureDays) && {
92942
- after: after
92943
- }, disabledDays);
92804
+ }, props);
92944
92805
 
92945
92806
  var fromDayPickerProps = _extends_1({}, dayPickerProps, {
92946
- onTodayButtonClick: this.handleCurrentMonthChangeFrom,
92947
- NavBarElement: this.renderNavBarFrom,
92948
- captionElement: this.renderCaptionFrom,
92949
- disabledDays: disabledDaysFrom,
92950
- month: fromCurrentMonth,
92951
- modifiers: _extends_1({}, modifiers, {
92952
- disabled: disabledDaysFrom
92953
- })
92954
- }); // Build Props for the To DatePicker
92955
- // Disable days before 'from' date if define
92956
-
92957
-
92958
- var before;
92959
-
92960
- if (from instanceof Date && disablePastDays) {
92961
- before = from < now ? now : from;
92962
- } else if (from instanceof Date) {
92963
- before = from;
92964
- } else if (disablePastDays) {
92965
- before = now;
92966
- }
92967
-
92968
- var disabledDaysTo = _extends_1({}, (from || disablePastDays) && {
92969
- before: before
92970
- }, disableFutureDays && {
92971
- after: now
92972
- }, disabledDays);
92807
+ onTodayButtonClick: this.handleCurrentMonthChange,
92808
+ navbarElement: this.renderNavBar,
92809
+ captionElement: this.renderCaption,
92810
+ disabledDays: _extends_1({
92811
+ before: minimumDate
92812
+ }, disableFutureDays && {
92813
+ after: now
92814
+ }, to && {
92815
+ after: to
92816
+ }),
92817
+ month: this.state.currentMonth,
92818
+ modifiers: _extends_1({}, modifiers)
92819
+ });
92973
92820
 
92974
92821
  var toDayPickerProps = _extends_1({}, dayPickerProps, {
92975
- onTodayButtonClick: this.handleCurrentMonthChangeTo,
92976
- NavBarElement: this.renderNavBarTo,
92977
- captionElement: this.renderCaptionTo,
92978
- disabledDays: disabledDaysTo,
92979
- month: toCurrentMonth,
92980
- modifiers: _extends_1({}, modifiers, {
92981
- disabled: disabledDaysTo
92982
- })
92822
+ onTodayButtonClick: this.handleCurrentMonthChange,
92823
+ navbarElement: this.renderNavBar,
92824
+ onDayClick: this.onDayToClick,
92825
+ captionElement: this.renderCaption,
92826
+ disabledDays: _extends_1({
92827
+ before: minimumDate
92828
+ }, disableFutureDays && {
92829
+ after: now
92830
+ }, from && {
92831
+ before: from
92832
+ }),
92833
+ month: this.state.currentMonth,
92834
+ modifiers: _extends_1({}, modifiers)
92983
92835
  }); // From & To InputProps
92984
92836
 
92985
92837
 
92986
92838
  var fromInputProps = _extends_1({}, onReset && {
92987
92839
  onReset: function onReset() {
92988
- return _this6.handleReset('from');
92840
+ return _this2.handleReset('from');
92989
92841
  }
92990
- }, props, labelFrom && {
92842
+ }, props, fromError && {
92843
+ error: true
92844
+ }, labelFrom && {
92991
92845
  label: labelFrom
92992
92846
  }, {
92993
92847
  id: "".concat(id, "-from"),
92994
- onChange: this.handleInputChange('from')
92848
+ onChange: this.handleInputChange('from'),
92849
+ disabled: disabled
92995
92850
  });
92996
92851
 
92997
92852
  var toInputProps = _extends_1({}, onReset && {
92998
92853
  onReset: function onReset() {
92999
- return _this6.handleReset('to');
92854
+ return _this2.handleReset('to');
93000
92855
  }
93001
- }, props, labelTo && {
92856
+ }, props, toError && {
92857
+ error: true
92858
+ }, labelTo && {
93002
92859
  label: labelTo
93003
92860
  }, {
93004
92861
  id: "".concat(id, "-to"),
93005
- onChange: this.handleInputChange('to')
92862
+ onChange: this.handleInputChange('to'),
92863
+ disabled: disabled
93006
92864
  });
93007
92865
 
93008
92866
  var toClass = classnames(classes.toInput, (_classNames = {}, defineProperty(_classNames, classes.absolute, staticPosition === true && this.state.focusedInput === 'from'), defineProperty(_classNames, classes.right4, staticPosition === true && this.state.focusedInput === 'from'), _classNames));
93009
- return React__default.createElement("div", {
92867
+ var content = React__default.createElement("div", {
93010
92868
  className: classnames(classes.root, classes.rangePickerContainer)
93011
92869
  }, React__default.createElement("div", {
93012
92870
  className: classes.fromInput,
93013
- onFocus: this.handleDayPickerFocus('from'),
93014
- onBlur: this.handleDayPickerBlur('from')
92871
+ onFocus: function onFocus() {
92872
+ return _this2.handleDayPickerFocus('from');
92873
+ } // onBlur={() => this.handleDayPickerBlur('from')}
92874
+
93015
92875
  }, React__default.createElement("div", null, React__default.createElement(DayPickerInput_1$1, {
92876
+ key: this.state.keyFrom,
93016
92877
  ref: function ref(el) {
93017
- _this6.fromInput = el;
92878
+ _this2.fromInput = el;
93018
92879
  },
93019
92880
  value: from,
93020
92881
  hideOnDayClick: false,
@@ -93025,15 +92886,22 @@
93025
92886
  format: enableTime ? "".concat(format, " HH:mm") : format,
93026
92887
  formatDate: moment$1.formatDate,
93027
92888
  parseDate: moment$1.parseDate,
93028
- onDayChange: this.handleDayChangeFrom,
92889
+ onDayChange: function onDayChange(day) {
92890
+ return _this2.handleDayChange('from', day);
92891
+ },
93029
92892
  placeholder: ''
93030
92893
  }))), React__default.createElement("div", {
93031
92894
  className: toClass,
93032
- onFocus: this.handleDayPickerFocus('to'),
93033
- onBlur: this.handleDayPickerBlur('to')
92895
+ onFocus: function onFocus() {
92896
+ return _this2.handleDayPickerFocus('to');
92897
+ },
92898
+ onBlur: function onBlur() {
92899
+ return _this2.handleDayPickerBlur('to');
92900
+ }
93034
92901
  }, React__default.createElement(DayPickerInput_1$1, {
92902
+ key: this.state.keyTo,
93035
92903
  ref: function ref(el) {
93036
- _this6.toInput = el;
92904
+ _this2.toInput = el;
93037
92905
  },
93038
92906
  value: to,
93039
92907
  hideOnDayClick: false,
@@ -93043,10 +92911,23 @@
93043
92911
  inputProps: toInputProps,
93044
92912
  format: enableTime ? "".concat(format, " HH:mm") : format,
93045
92913
  formatDate: moment$1.formatDate,
93046
- parseDate: moment$1.parseDate,
93047
- onDayChange: this.handleDayChangeTo,
92914
+ parseDate: moment$1.parseDate //onDayChange={(day) => this.handleDayChange('to', day)}
92915
+ ,
93048
92916
  placeholder: ''
93049
92917
  })));
92918
+
92919
+ if (!hasSelector) {
92920
+ content = React__default.createElement(HiFormControl$1, {
92921
+ disabled: disabled,
92922
+ helperIcon: helperIcon,
92923
+ helperText: helperText,
92924
+ errorText: errorText,
92925
+ error: fromError || toError,
92926
+ label: ' '
92927
+ }, content);
92928
+ }
92929
+
92930
+ return content;
93050
92931
  }
93051
92932
  }]);
93052
92933
 
@@ -93055,22 +92936,26 @@
93055
92936
 
93056
92937
  HiDateRangePicker.defaultProps = {
93057
92938
  disabledDays: [],
93058
- disablePastDays: false,
93059
- disableFutureDays: false,
92939
+ disableFutureDays: true,
93060
92940
  staticPosition: false,
93061
92941
  enableTime: false,
93062
- format: 'YYYY-DD-MM',
92942
+ hasSelector: false,
92943
+ format: 'YYYY-MM-DD',
93063
92944
  labelFrom: 'Start',
93064
92945
  labelTo: 'End',
93065
92946
  locale: 'fr-FR',
93066
- minimumDate: new Date(2013, 4, 1),
93067
- // by default 1 May 2013
93068
92947
  translations: {
93069
92948
  today: 'today',
93070
92949
  hour: 'Hour',
93071
92950
  minute: 'Minute',
93072
92951
  month: 'Month',
93073
- year: 'Year'
92952
+ year: 'Year',
92953
+ invalid_format: 'The date format is not valid',
92954
+ to_superior_from: 'Date from cannot be greater than date to',
92955
+ missing_date_from: 'Missing date from',
92956
+ missing_date_to: 'Missing date to',
92957
+ date_superior_max_date: 'Date from cannot be greater than %s',
92958
+ date_inferior_min_date: 'Date from cannot be before than %s'
93074
92959
  }
93075
92960
  };
93076
92961
  HiDateRangePicker.propTypes = {
@@ -93084,25 +92969,20 @@
93084
92969
  */
93085
92970
  disabled: propTypes.bool,
93086
92971
 
93087
- /**
93088
- * Définie les jours non sélectionnables
93089
- */
93090
- disabledDays: propTypes.oneOfType([propTypes.array, propTypes.object, propTypes.instanceOf(Date)]),
93091
-
93092
92972
  /**
93093
92973
  * Uniquement la sélection de date antérieures à aujourd'hui (inclu)
93094
92974
  */
93095
92975
  disableFutureDays: propTypes.bool,
93096
92976
 
93097
92977
  /**
93098
- * Uniquement la sélection de date postérieures à aujourd'hui (inclu)
92978
+ * Ajoute la gestion de l'heure
93099
92979
  */
93100
- disablePastDays: propTypes.bool,
92980
+ enableTime: propTypes.bool,
93101
92981
 
93102
92982
  /**
93103
- * Ajoute la gestion de l'heure
92983
+ * Texte de l'erreur
93104
92984
  */
93105
- enableTime: propTypes.bool,
92985
+ errorText: propTypes.string,
93106
92986
 
93107
92987
  /**
93108
92988
  * Format des dates affichées
@@ -93112,7 +92992,29 @@
93112
92992
  /**
93113
92993
  * Date de début sélectionnée
93114
92994
  */
93115
- from: propTypes.oneOfType([propTypes.instanceOf(Date), propTypes.string]),
92995
+ from: propTypes.instanceOf(Date),
92996
+ //from: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),
92997
+
92998
+ /**
92999
+ * Erreur sur date from
93000
+ */
93001
+ fromError: propTypes.bool,
93002
+
93003
+ /**
93004
+ * @ignore
93005
+ * Si true, on n'enveloppe pas le composant avec un HiFormControl
93006
+ */
93007
+ hasSelector: propTypes.bool,
93008
+
93009
+ /**
93010
+ * Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
93011
+ */
93012
+ helperIcon: propTypes.bool,
93013
+
93014
+ /**
93015
+ * Texte de l'aide
93016
+ */
93017
+ helperText: propTypes.string,
93116
93018
 
93117
93019
  /**
93118
93020
  * Utilisé pour construire les ids des champs from et to en les suffixant "-from" et "-to"
@@ -93137,7 +93039,7 @@
93137
93039
  /**
93138
93040
  * Date minimale sélectionnable
93139
93041
  */
93140
- minimumDate: propTypes.instanceOf(Date),
93042
+ minimumDate: propTypes.instanceOf(Date).isRequired,
93141
93043
 
93142
93044
  /**
93143
93045
  * Callback à la sélection d'une date
@@ -93150,7 +93052,7 @@
93150
93052
  * @param {string} nom du champs
93151
93053
  * @param {string} nouvelle valeur du champs
93152
93054
  */
93153
- onChange: propTypes.func,
93055
+ onChange: propTypes.func.isRequired,
93154
93056
 
93155
93057
  /**
93156
93058
  * Callback au reset de l'input
@@ -93166,7 +93068,12 @@
93166
93068
  /**
93167
93069
  * Date de fin sélectionnée
93168
93070
  */
93169
- to: propTypes.oneOfType([propTypes.instanceOf(Date), propTypes.string]),
93071
+ to: propTypes.instanceOf(Date),
93072
+
93073
+ /**
93074
+ * Erreur sur date to
93075
+ */
93076
+ toError: propTypes.bool,
93170
93077
 
93171
93078
  /**
93172
93079
  * Traductions
@@ -94067,6 +93974,9 @@
94067
93974
  activeColorNeutral: {
94068
93975
  color: theme.palette.neutral.contrastText,
94069
93976
  backgroundColor: theme.palette.neutral.main
93977
+ },
93978
+ outlined: {
93979
+ border: '1px solid'
94070
93980
  }
94071
93981
  };
94072
93982
  };
@@ -94084,15 +93994,16 @@
94084
93994
  label = props.label,
94085
93995
  color = props.color,
94086
93996
  active = props.active,
93997
+ outlined = props.outlined,
94087
93998
  fontWeight = props.fontWeight,
94088
93999
  style = props.style,
94089
94000
  theme = props.theme,
94090
- other = objectWithoutProperties(props, ["classes", "className", "label", "color", "active", "fontWeight", "style", "theme"]);
94001
+ other = objectWithoutProperties(props, ["classes", "className", "label", "color", "active", "outlined", "fontWeight", "style", "theme"]);
94091
94002
 
94092
94003
  var isHiColor = ['primary', 'secondary', 'positive', 'negative', 'middle', 'neutral'].includes(color);
94093
94004
  var isHexColor = !isHiColor && /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(color);
94094
94005
  return React__default.createElement("div", _extends_1({
94095
- className: classnames(classes.root, (_classNames = {}, defineProperty(_classNames, classes.color, !active), defineProperty(_classNames, classes.activeColor, active), defineProperty(_classNames, classes["activeColor".concat(capitalize(color))], active && isHiColor), defineProperty(_classNames, classes["color".concat(capitalize(color))], !active && isHiColor), _classNames), className),
94006
+ className: classnames(classes.root, (_classNames = {}, defineProperty(_classNames, classes.color, !active), defineProperty(_classNames, classes.activeColor, active), defineProperty(_classNames, classes.outlined, outlined), defineProperty(_classNames, classes["activeColor".concat(capitalize(color))], active && isHiColor), defineProperty(_classNames, classes["color".concat(capitalize(color))], !active && isHiColor), _classNames), className),
94096
94007
  style: _extends_1({}, style, isHexColor && {
94097
94008
  backgroundColor: active ? color : fade(color, 0.08),
94098
94009
  color: active ? theme.palette.getContrastText(color) : color
@@ -94132,11 +94043,17 @@
94132
94043
  /**
94133
94044
  * Label à afficher
94134
94045
  */
94135
- label: propTypes.oneOfType([propTypes.string, propTypes.number, propTypes.node]).isRequired
94046
+ label: propTypes.oneOfType([propTypes.string, propTypes.number, propTypes.node]).isRequired,
94047
+
94048
+ /**
94049
+ * Ajoute une bordure
94050
+ */
94051
+ outlined: propTypes.bool
94136
94052
  };
94137
94053
  HiColoredLabel.defaultProps = {
94138
94054
  active: false,
94139
- color: 'primary'
94055
+ color: 'primary',
94056
+ outlined: false
94140
94057
  };
94141
94058
  var HiColoredLabel$1 = withStyles(styles$o, {
94142
94059
  hiComponent: true,
@@ -98845,6 +98762,31 @@
98845
98762
  name: 'HmuiHiSelectableListHierarchic'
98846
98763
  })(HiSelectableListHierarchic);
98847
98764
 
98765
+ var ArrowDropDown = createCommonjsModule(function (module, exports) {
98766
+
98767
+
98768
+
98769
+ Object.defineProperty(exports, "__esModule", {
98770
+ value: true
98771
+ });
98772
+ exports.default = void 0;
98773
+
98774
+ var _react = interopRequireDefault(React__default);
98775
+
98776
+ var _createSvgIcon = interopRequireDefault(createSvgIcon_1);
98777
+
98778
+ var _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement("path", {
98779
+ d: "M7 10l5 5 5-5z"
98780
+ }), _react.default.createElement("path", {
98781
+ fill: "none",
98782
+ d: "M0 0h24v24H0z"
98783
+ })), 'ArrowDropDown');
98784
+
98785
+ exports.default = _default;
98786
+ });
98787
+
98788
+ var ArrowDropDownIcon = unwrapExports(ArrowDropDown);
98789
+
98848
98790
  var styles$s = function styles(theme) {
98849
98791
  return {
98850
98792
  root: {
@@ -98911,13 +98853,13 @@
98911
98853
  transform: 'scaleX(1)'
98912
98854
  },
98913
98855
  '&$error': {
98914
- border: "1px solid ".concat(theme.palette.negative.normal),
98856
+ border: "1px solid ".concat(theme.palette.negative.main),
98915
98857
  borderRadius: 2
98916
98858
  }
98917
98859
  }
98918
98860
  },
98919
98861
  disabled: {
98920
- color: "".concat(theme.palette.text.disabled),
98862
+ color: theme.palette.text.disabled,
98921
98863
  '&:before': {
98922
98864
  display: 'none'
98923
98865
  }
@@ -98934,13 +98876,17 @@
98934
98876
  display: 'inline-flex',
98935
98877
  width: '100%'
98936
98878
  }),
98879
+ placeholder: {
98880
+ color: theme.palette.grey[400]
98881
+ },
98937
98882
  icon: {
98938
98883
  transition: theme.transitions.create(['opacity', 'transform'], {
98939
98884
  duration: theme.transitions.duration.shorter
98940
98885
  })
98941
98886
  },
98942
98887
  iconOpen: {
98943
- transform: 'rotate(90deg)'
98888
+ transform: 'rotate(90deg)',
98889
+ color: theme.palette.primary.main
98944
98890
  },
98945
98891
  iconClose: {
98946
98892
  transform: 'rotate(0deg)'
@@ -98951,24 +98897,26 @@
98951
98897
  * @ignore - internal component.
98952
98898
  */
98953
98899
 
98954
- var SelectInput =
98900
+ var _ref$5 = React__default.createElement(ArrowDropDownIcon, null);
98901
+
98902
+ var HiSelectInput =
98955
98903
  /*#__PURE__*/
98956
98904
  function (_React$PureComponent) {
98957
- inherits(SelectInput, _React$PureComponent);
98905
+ inherits(HiSelectInput, _React$PureComponent);
98958
98906
 
98959
- function SelectInput(props) {
98907
+ function HiSelectInput(props) {
98960
98908
  var _this;
98961
98909
 
98962
- classCallCheck(this, SelectInput);
98910
+ classCallCheck(this, HiSelectInput);
98963
98911
 
98964
- _this = possibleConstructorReturn(this, getPrototypeOf(SelectInput).call(this, props));
98912
+ _this = possibleConstructorReturn(this, getPrototypeOf(HiSelectInput).call(this, props));
98965
98913
 
98966
98914
  _this.handleKeyDown = function (event) {
98967
98915
  var key = keycode(event);
98968
98916
 
98969
- if (['up', 'down', 'space'].includes(key)) {
98970
- event.preventDefault();
98971
-
98917
+ if (_this.props.onKeyDown) {
98918
+ _this.props.onKeyDown(event);
98919
+ } else if (key === 'down' || key === 'up') {
98972
98920
  _this.props.onClick();
98973
98921
  } else if (key === 'enter' && _this.props.onSubmit) {
98974
98922
  event.preventDefault();
@@ -98977,18 +98925,58 @@
98977
98925
  }
98978
98926
  };
98979
98927
 
98928
+ _this.handleKeyDownReset = function (event) {
98929
+ var key = keycode(event);
98930
+
98931
+ if (key === 'enter' || key === 'space') {
98932
+ _this.handleReset(event);
98933
+
98934
+ event.stopPropagation();
98935
+ event.preventDefault();
98936
+ }
98937
+ };
98938
+
98980
98939
  _this.handleClick = function (event) {
98981
98940
  if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
98982
98941
  _this.props.onClick(event);
98983
98942
  }
98984
98943
  };
98985
98944
 
98945
+ _this.handleReset = function (event) {
98946
+ _this.props.onReset(event);
98947
+
98948
+ if (_this.input) {
98949
+ _this.input.focus();
98950
+ }
98951
+ };
98952
+
98953
+ _this.handleBlur = function (event) {
98954
+ if ((!_this.input || !_this.input.contains(event.relatedTarget)) && _this.props.onBlur) {
98955
+ _this.props.onBlur(event);
98956
+ } else {
98957
+ if (_this.input && (!_this.resetIcon || !_this.resetIcon.contains(event.relatedTarget))) {
98958
+ _this.input.focus();
98959
+ }
98960
+ }
98961
+ };
98962
+
98963
+ _this.handleRef = function (el) {
98964
+ _this.input = el;
98965
+
98966
+ if (_this.props.refElement) {
98967
+ _this.props.refElement(el);
98968
+ }
98969
+ };
98970
+
98986
98971
  _this.handleKeyDown = _this.handleKeyDown.bind(assertThisInitialized(assertThisInitialized(_this)));
98987
98972
  _this.handleClick = _this.handleClick.bind(assertThisInitialized(assertThisInitialized(_this)));
98973
+ _this.handleBlur = _this.handleBlur.bind(assertThisInitialized(assertThisInitialized(_this)));
98974
+ _this.handleRef = _this.handleRef.bind(assertThisInitialized(assertThisInitialized(_this)));
98975
+ _this.handleReset = _this.handleReset.bind(assertThisInitialized(assertThisInitialized(_this)));
98988
98976
  return _this;
98989
98977
  }
98990
98978
 
98991
- createClass(SelectInput, [{
98979
+ createClass(HiSelectInput, [{
98992
98980
  key: "render",
98993
98981
  value: function render() {
98994
98982
  var _classNames,
@@ -99006,16 +98994,14 @@
99006
98994
  focused = _this$props.focused,
99007
98995
  error = _this$props.error,
99008
98996
  id = _this$props.id,
99009
- refElement = _this$props.refElement,
99010
- theme = _this$props.theme; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
98997
+ placeholder = _this$props.placeholder; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
99011
98998
 
99012
98999
  var rootClass = classnames(classes.root, classes.inkbar, classes.underline, (_classNames = {}, defineProperty(_classNames, classes.disabled, disabled), defineProperty(_classNames, classes.focused, focused), defineProperty(_classNames, classes.error, error && !focused), _classNames));
99013
99000
  var iconClass = classnames(classes.icon, (_classNames2 = {}, defineProperty(_classNames2, classes.iconOpen, open), defineProperty(_classNames2, classes.iconClose, !open), _classNames2));
99014
- var render = noButton ? React__default.createElement("div", {
99001
+ return noButton ? React__default.createElement("div", {
99015
99002
  id: id,
99016
99003
  className: rootClass,
99017
99004
  onClick: onClick,
99018
- disabled: disabled,
99019
99005
  onMouseEnter: this.props.onMouseEnter,
99020
99006
  onMouseLeave: this.props.onMouseLeave,
99021
99007
  onKeyDown: this.handleKeyDown,
@@ -99023,59 +99009,54 @@
99023
99009
  onBlur: this.props.onBlur,
99024
99010
  role: "button",
99025
99011
  tabIndex: "0",
99026
- ref: function ref(el) {
99027
- if (refElement) refElement(el);
99028
- }
99012
+ ref: this.handleRef
99029
99013
  }, React__default.createElement("span", {
99030
- className: classes.label
99031
- }, value), React__default.createElement(HiIcon$1, {
99032
- className: iconClass,
99033
- icon: "arrow_drop_down"
99014
+ className: classnames(classes.label, defineProperty({}, classes.placeholder, value === undefined))
99015
+ }, value || placeholder), React__default.createElement(ArrowDropDownIcon, {
99016
+ className: iconClass
99034
99017
  })) : React__default.createElement(ButtonBase$2, {
99035
99018
  id: id,
99036
- classes: {
99037
- root: rootClass
99038
- },
99019
+ className: rootClass,
99039
99020
  onClick: this.handleClick,
99040
99021
  disabled: disabled,
99041
99022
  onMouseEnter: this.props.onMouseEnter,
99042
99023
  onMouseLeave: this.props.onMouseLeave,
99043
99024
  onKeyDown: this.handleKeyDown,
99044
99025
  onFocus: this.props.onFocus,
99045
- onBlur: this.props.onBlur,
99046
- buttonRef: function buttonRef(el) {
99047
- if (refElement) refElement(el);
99048
- }
99026
+ onBlur: this.handleBlur,
99027
+ buttonRef: this.handleRef
99049
99028
  }, React__default.createElement("span", {
99050
- className: classes.label
99051
- }, value), onReset && focused && React__default.createElement("div", {
99029
+ className: classnames(classes.label, defineProperty({}, classes.placeholder, value === undefined))
99030
+ }, value || placeholder), onReset && focused && React__default.createElement("div", {
99052
99031
  ref: function ref(el) {
99053
99032
  _this2.resetIcon = el;
99054
99033
  }
99055
99034
  }, React__default.createElement(HiIcon$1, {
99056
99035
  icon: "close",
99057
- size: 24,
99058
- color: theme.palette.neutral.main,
99059
- onClick: onReset
99060
- })), React__default.createElement(HiIcon$1, {
99061
- className: iconClass,
99062
- icon: "arrow_drop_down"
99063
- }));
99064
- return render;
99036
+ size: 20,
99037
+ color: "neutral",
99038
+ onClick: this.handleReset,
99039
+ onKeyDown: this.handleKeyDownReset,
99040
+ tabIndex: 0
99041
+ })), React__default.createElement(Icon$2, {
99042
+ classes: {
99043
+ root: iconClass
99044
+ }
99045
+ }, _ref$5));
99065
99046
  }
99066
99047
  }]);
99067
99048
 
99068
- return SelectInput;
99049
+ return HiSelectInput;
99069
99050
  }(React__default.PureComponent);
99070
99051
 
99071
- SelectInput.defaultProps = {
99052
+ HiSelectInput.defaultProps = {
99072
99053
  disabled: false,
99073
99054
  open: false,
99074
99055
  focused: false,
99075
99056
  noButton: false,
99076
99057
  error: false
99077
99058
  };
99078
- SelectInput.propTypes = {
99059
+ HiSelectInput.propTypes = {
99079
99060
  /**
99080
99061
  * Useful to extend the style applied to components.
99081
99062
  */
@@ -99123,12 +99104,17 @@
99123
99104
  onFocus: propTypes.func,
99124
99105
 
99125
99106
  /**
99126
- * Fonction de callback appelée lorsqu'on survole le champs
99107
+ * Fonction de callback à la pression de touche
99108
+ */
99109
+ onKeyDown: propTypes.func,
99110
+
99111
+ /**
99112
+ * Fonction de callback au survol de l'input
99127
99113
  */
99128
99114
  onMouseEnter: propTypes.func,
99129
99115
 
99130
99116
  /**
99131
- * Fonction de callback appelée lorsque le curseur quitte le champs
99117
+ * Fonction de callback à la sortie du survol de l'input
99132
99118
  */
99133
99119
  onMouseLeave: propTypes.func,
99134
99120
 
@@ -99147,6 +99133,11 @@
99147
99133
  */
99148
99134
  open: propTypes.bool,
99149
99135
 
99136
+ /**
99137
+ * Placeholder
99138
+ */
99139
+ placeholder: propTypes.string,
99140
+
99150
99141
  /**
99151
99142
  * Use that property to pass a ref callback to the native component.
99152
99143
  */
@@ -99157,11 +99148,10 @@
99157
99148
  */
99158
99149
  value: propTypes.oneOfType([propTypes.string, propTypes.number, propTypes.node])
99159
99150
  };
99160
- var SelectInput$1 = withStyles(styles$s, {
99151
+ var HiSelectInput$1 = withStyles(styles$s, {
99161
99152
  hiComponent: true,
99162
- name: 'HmuiSelectInput',
99163
- withTheme: true
99164
- })(SelectInput);
99153
+ name: 'HmuiHiSelectInput'
99154
+ })(HiSelectInput);
99165
99155
 
99166
99156
  var styles$t = function styles(theme) {
99167
99157
  return {
@@ -99177,14 +99167,24 @@
99177
99167
  popperWidth: {
99178
99168
  width: '100% !important'
99179
99169
  },
99170
+ popperRightAlign: {
99171
+ right: 0,
99172
+ left: 'unset!important'
99173
+ },
99180
99174
  paper: {
99181
99175
  borderRadius: '0px 2px',
99182
- maxHeight: 440,
99176
+ maxHeight: 480,
99183
99177
  transition: 'none !important'
99184
99178
  },
99185
99179
  labelIcon: {
99186
99180
  marginRight: 10
99187
99181
  },
99182
+ labelImg: {
99183
+ height: 18,
99184
+ width: 'auto',
99185
+ margin: '0 4px',
99186
+ verticalAlign: 'middle'
99187
+ },
99188
99188
  selectIconLabel: _extends_1({
99189
99189
  whiteSpace: 'nowrap',
99190
99190
  overflow: 'hidden',
@@ -99193,6 +99193,15 @@
99193
99193
  }, theme.typography.b1, {
99194
99194
  display: 'inline-flex',
99195
99195
  width: '100%'
99196
+ }),
99197
+ selectImgLabel: _extends_1({
99198
+ whiteSpace: 'nowrap',
99199
+ overflow: 'hidden',
99200
+ textOverflow: 'ellipsis',
99201
+ paddingRight: 16
99202
+ }, theme.typography.b1, {
99203
+ display: 'inline-flex',
99204
+ width: '100%'
99196
99205
  })
99197
99206
  };
99198
99207
  };
@@ -99206,9 +99215,8 @@
99206
99215
  * - prise en compte du type des éléments (text, image, icon, ...)
99207
99216
  *
99208
99217
  * Ce composant réuni les sous-composants
99209
- * - SelectInput : affiche l'élément dans le formulaire
99210
- * - HiSearchField : intègre une barre de recherche dans le Popper,
99211
- * il filtre la liste des suggestions
99218
+ * - HiSelectInput : affiche l'élément dans le formulaire
99219
+ * - HiSearchField : intègre une barre de recherche dans le Popper, il filtre la liste des suggestions
99212
99220
  * - HiSelectableList : affiche la liste des suggestions selon le type des éléments
99213
99221
  */
99214
99222
 
@@ -99217,12 +99225,12 @@
99217
99225
  function (_React$PureComponent) {
99218
99226
  inherits(HiSelect, _React$PureComponent);
99219
99227
 
99220
- function HiSelect(_props) {
99228
+ function HiSelect(props) {
99221
99229
  var _this;
99222
99230
 
99223
99231
  classCallCheck(this, HiSelect);
99224
99232
 
99225
- _this = possibleConstructorReturn(this, getPrototypeOf(HiSelect).call(this, _props));
99233
+ _this = possibleConstructorReturn(this, getPrototypeOf(HiSelect).call(this, props));
99226
99234
 
99227
99235
  _this.handleClick = function () {
99228
99236
  if (_this.state.open) {
@@ -99232,101 +99240,51 @@
99232
99240
  open: true
99233
99241
  });
99234
99242
 
99235
- var options = _this.props.options.slice();
99236
-
99237
- _this.handleSuggestions(options);
99238
-
99239
- if (_this.props.onClick) {
99240
- _this.props.onClick();
99241
- } // Gestion du focus
99243
+ _this.handleSuggestions(_this.props.options);
99242
99244
 
99245
+ if (_this.props.onClick) _this.props.onClick(); // Gestion du focus
99243
99246
 
99244
99247
  if (!_this.props.searchable) {
99245
- // sinon focus sur le dernier élément selectionné
99246
- _this.focusOnSelectedItem();
99248
+ // sinon focus sur le premier élément de la liste
99249
+ _this.focusOnFirstItem();
99247
99250
  }
99248
99251
  }
99249
99252
  };
99250
99253
 
99251
- _this.buildHierarchyTrees = function (props) {
99252
- // Construct two associative arrays
99253
- // hierarchy[parentId] => children
99254
- // hierarchySelected[parentId] => selected children
99255
- var hierarchy = {};
99256
- var hierarchySelected = {};
99257
- var value = props.value || [];
99258
- if (!Array.isArray(value)) value = [props.value];
99259
- props.options.forEach(function (option) {
99260
- if (option.hasChildren === true && !hierarchy.hasOwnProperty(option.id)) {
99261
- hierarchy[option.id] = [];
99262
- hierarchySelected[option.id] = [];
99263
- } else if (option.hasOwnProperty('parentId')) {
99264
- hierarchy[option.parentId].push(option.id);
99265
-
99266
- if (value.includes(option.id)) {
99267
- hierarchySelected[option.parentId].push(option.id);
99268
- }
99269
- }
99270
- });
99271
- return {
99272
- hierarchy: hierarchy,
99273
- hierarchySelected: hierarchySelected
99274
- };
99275
- };
99276
-
99277
- _this.focusOnSelectedItem = function () {
99278
- // On récupère la div parent "overlay"
99254
+ _this.focusOnFirstItem = function () {
99279
99255
  var overlay = require$$11.findDOMNode(_this.overlay);
99280
- var multiple = _this.props.multiple;
99281
- var value = _this.props.value;
99282
- var selectedIdList = Array.isArray(value) ? value : [value];
99283
99256
  setTimeout(function () {
99284
- var focused = false; // Si un ou plusieurs items sont selectionnés, on focus sur le dernier
99285
-
99286
- if (selectedIdList.length > 0) {
99287
- var itemSelected = overlay.querySelector("[data-id=\"".concat(selectedIdList[selectedIdList.length - 1], "\"]"));
99288
-
99289
- if (itemSelected && itemSelected.parentElement.tagName === 'LI') {
99290
- itemSelected.parentElement.focus();
99291
- focused = true;
99292
- }
99293
- } // Si pas d'item selectionné, ou pas visible (en cas de recherche), focus sur le premier
99294
-
99295
-
99296
- if (selectedIdList.length === 0 || !focused) {
99297
- // On recupère tous les items
99298
- var items = overlay.getElementsByTagName('li');
99299
- var itemToFocus = items[0]; // Si select multiple, et qu'au moins un selectionné, focus sur le 2e item
99300
-
99301
- if (multiple && selectedIdList.length > 0) {
99302
- itemToFocus = items[1];
99303
- }
99304
-
99305
- if (itemToFocus) {
99306
- itemToFocus.focus();
99307
- }
99308
- }
99257
+ var item = overlay.getElementsByTagName('li')[0];
99258
+ item.focus();
99309
99259
  }, 1);
99310
99260
  };
99311
99261
 
99312
99262
  _this.handleKeyDown = function (event) {
99313
99263
  var nextItem;
99264
+ var key = keycode(event);
99314
99265
 
99315
- if (event.key === 'ArrowDown') {
99266
+ if (key === 'down') {
99267
+ event.preventDefault();
99316
99268
  nextItem = getNextItemSelectable(document.activeElement, 'down');
99317
- } else if (event.key === 'ArrowUp') {
99269
+ } else if (key === 'up') {
99270
+ event.preventDefault();
99318
99271
  nextItem = getNextItemSelectable(document.activeElement, 'up');
99319
- } else if (event.key === 'Tab') {
99320
- /* if (!this.props.staticPosition) {
99321
- document.body.style.overflow = 'auto';
99322
- } */
99272
+ } else if (key === 'tab' || key === 'esc') {
99323
99273
  _this.setState({
99324
99274
  open: false
99325
99275
  });
99326
- } else if (event.key === 'Escape') {
99327
- _this.setState({
99328
- open: false
99276
+ } else if (key === 'space' || key === 'enter' && !_this.props.multiple) {
99277
+ event.preventDefault();
99278
+
99279
+ var item = _this.props.options.find(function (elem) {
99280
+ return String(elem.id) === event.target.id;
99329
99281
  });
99282
+
99283
+ _this.handleSelect(null, item);
99284
+ } else if (key === 'enter' && _this.props.multiple) {
99285
+ event.preventDefault();
99286
+
99287
+ _this.handleClose();
99330
99288
  }
99331
99289
 
99332
99290
  if (nextItem) {
@@ -99335,10 +99293,14 @@
99335
99293
  };
99336
99294
 
99337
99295
  _this.handleKeyDownSearch = function (event) {
99338
- if (_this.overlay && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
99339
- _this.focusOnSelectedItem();
99340
- } else if (event.key === 'Enter' && _this.props.onSubmit) {
99341
- _this.props.onSubmit(event);
99296
+ var key = keycode(event);
99297
+
99298
+ if (_this.overlay && (key === 'down' || key === 'up')) {
99299
+ _this.focusOnFirstItem();
99300
+ } else if (_this.overlay && key === 'esc' || key === 'enter') {
99301
+ event.preventDefault();
99302
+
99303
+ _this.handleClose();
99342
99304
  }
99343
99305
  };
99344
99306
 
@@ -99355,426 +99317,273 @@
99355
99317
  };
99356
99318
 
99357
99319
  _this.handleClose = function () {
99320
+ _this.setState({
99321
+ open: false
99322
+ });
99323
+
99358
99324
  if (_this.props.onClose) {
99359
99325
  _this.props.onClose();
99360
99326
  }
99361
99327
 
99362
- if (_this.selectInputElement) {
99363
- _this.selectInputElement.focus();
99328
+ if (_this.inputEl) {
99329
+ _this.inputEl.focus();
99364
99330
  }
99365
-
99366
- _this.setState({
99367
- open: false
99368
- });
99369
99331
  };
99370
99332
 
99371
99333
  _this.handleClickAway = function (event) {
99372
99334
  // Au clic sur le bouton, on laisse le handleClick fermer le select
99373
- if (!_this.selectInputElement.contains(event.target)) {
99335
+ if (!_this.inputEl.contains(event.target)) {
99374
99336
  _this.handleClose(event);
99375
99337
  }
99376
99338
  };
99377
99339
 
99378
99340
  _this.handleSelect = function (event, item) {
99379
99341
  var _this$props = _this.props,
99342
+ hasAll = _this$props.hasAll,
99380
99343
  multiple = _this$props.multiple,
99381
- value = _this$props.value,
99382
99344
  onChange = _this$props.onChange,
99383
99345
  options = _this$props.options,
99384
- hierarchic = _this$props.hierarchic,
99385
- pinnedItem = _this$props.pinnedItem;
99386
- var _this$state = _this.state,
99387
- hierarchySelected = _this$state.hierarchySelected,
99388
- hierarchy = _this$state.hierarchy,
99389
- nbOptions = _this$state.nbOptions;
99390
-
99391
- var hiSelected = _extends_1({}, hierarchySelected);
99392
-
99393
- if (multiple) {
99394
- var valueList = value;
99346
+ value = _this$props.value;
99395
99347
 
99396
- if (item.id === '_all') {
99397
- if (valueList.length === nbOptions) {
99398
- valueList = [];
99399
-
99400
- if (hierarchic) {
99401
- // if hierarchic select => empty associative array of selected children
99402
- Object.keys(hiSelected).forEach(function (key) {
99403
- hiSelected[key] = [];
99404
- });
99405
- }
99406
- } else {
99407
- options.forEach(function (option) {
99408
- if (option.hasChildren !== true && !valueList.includes(option.id) && option.id !== '_all') {
99409
- valueList.push(option.id);
99410
- } else if (option.hasChildren === true) {
99411
- // if hierarchic select => fill associative array of selected children
99412
- hiSelected[option.id] = hierarchy[option.id];
99413
- }
99414
- });
99415
- }
99416
- } else if (valueList.includes(item.id) || item.hasChildren === true && hierarchySelected[item.id].length === hierarchy[item.id].length) {
99417
- // item déjà sélectionné => on le déselectionne
99418
- if (item.hasChildren !== true) {
99419
- valueList = valueList.filter(function (val) {
99420
- return val !== item.id;
99421
- });
99422
- }
99348
+ if (!multiple) {
99349
+ // single value
99350
+ _this.handleClose();
99423
99351
 
99424
- if (item.hasChildren === true) {
99425
- // remove all children
99426
- valueList = valueList.filter(function (val) {
99427
- return !_this.state.hierarchy[item.id].includes(val);
99428
- });
99429
- hiSelected[item.id] = [];
99430
- } else if (item.hasOwnProperty('parentId')) {
99431
- // Si item est un enfant on l'enlève du tableau associatif des
99432
- // elmts sélectionnés
99433
- hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
99434
- }
99352
+ onChange(event, item.id, item);
99353
+ } else if (hasAll && item.id === '_all') {
99354
+ if (value.length === options.length) {
99355
+ // unselect _all options
99356
+ onChange(event, [], item);
99435
99357
  } else {
99436
- if (pinnedItem && item.id === pinnedItem.id) {
99437
- Object.keys(hiSelected).map(function (parentItemId) {
99438
- hiSelected[parentItemId] = [];
99439
- return true;
99440
- });
99441
- valueList = [item.id];
99442
- } else {
99443
- // item non sélectionné => on le sélectionne
99444
- if (item.hasChildren !== true) valueList.push(item.id);
99445
-
99446
- if (pinnedItem && valueList.includes(pinnedItem.id)) {
99447
- valueList.splice(valueList.indexOf(pinnedItem.id), 1);
99448
- }
99449
- }
99450
-
99451
- if (item.hasChildren === true) {
99452
- // Si item parent => on ajoute tous les enfants
99453
- // Ou on les supprime s'ils sont déjà tous sélectionnés (dans une liste filtrée)
99454
- var idsInSuggestions = [];
99455
-
99456
- _this.state.suggestions.forEach(function (suggestion) {
99457
- if (_this.state.hierarchy[item.id].includes(suggestion.id)) {
99458
- idsInSuggestions.push(suggestion.id);
99459
- }
99460
- }); // if(hierarchySelected[item.id].length > 0) {}
99461
-
99462
-
99463
- var allChildrenSuggestionsSelected = true;
99464
- idsInSuggestions.forEach(function (id) {
99465
- if (!hierarchySelected[item.id].includes(id)) {
99466
- allChildrenSuggestionsSelected = false;
99467
- }
99468
- });
99469
-
99470
- if (allChildrenSuggestionsSelected === true) {
99471
- // On supprime les enfants car déjà tous sélectionnés
99472
- idsInSuggestions.forEach(function (id) {
99473
- valueList.splice(valueList.indexOf(id), 1);
99474
- hiSelected[item.id].splice(hiSelected[item.id].indexOf(id), 1);
99475
- });
99476
- } else {
99477
- // On ajoute tous les enfants filtrés au éléments sélectionnés
99478
- valueList = arrayUnique(valueList.concat(idsInSuggestions));
99479
- hiSelected[item.id] = arrayUnique(hiSelected[item.id].concat(idsInSuggestions));
99480
- }
99481
-
99482
- _this.setState({
99483
- hierarchySelected: hiSelected
99484
- });
99485
- } else if (item.hasOwnProperty('parentId')) {
99486
- // Si item est un enfant on l'ajoute du tableau associatif des
99487
- // elmts sélectionnés
99488
- hiSelected[item.parentId].push(item.id);
99489
- }
99358
+ // select _all options
99359
+ onChange(event, options.map(function (option) {
99360
+ return option.id;
99361
+ }), item);
99490
99362
  }
99491
-
99492
- _this.setState({
99493
- hierarchySelected: hiSelected
99494
- });
99495
-
99496
- onChange(event, valueList, item);
99363
+ } else if (value.includes(item.id)) {
99364
+ // unselect item
99365
+ onChange(event, value.filter(function (id) {
99366
+ return id !== item.id;
99367
+ }), item);
99497
99368
  } else {
99498
- onChange(event, item.id, item);
99499
-
99500
- _this.handleClose();
99369
+ onChange(event, toConsumableArray(value).concat([item.id]), item);
99501
99370
  }
99502
99371
  };
99503
99372
 
99504
99373
  _this.handleSuggestions = function (suggestions) {
99505
99374
  var _this$props2 = _this.props,
99506
- options = _this$props2.options,
99507
99375
  hasAll = _this$props2.hasAll,
99508
99376
  iconAll = _this$props2.iconAll,
99509
- translations = _this$props2.translations,
99510
- multiple = _this$props2.multiple;
99377
+ translations = _this$props2.translations;
99511
99378
 
99512
99379
  if (suggestions.length === 0) {
99513
- // Handle No Result
99514
- // FIX to remove all item
99515
- suggestions = [];
99516
- suggestions.push({
99517
- id: '_no_result',
99518
- type: 'text',
99519
- disabled: true,
99520
- centered: true,
99521
- checkbox: false,
99522
- label: translations.no_result_match
99380
+ // Add '_no_result' suggestion
99381
+ _this.setState(function (prevState) {
99382
+ return _extends_1({}, prevState, {
99383
+ suggestions: [{
99384
+ id: '_no_result',
99385
+ type: 'text',
99386
+ disabled: true,
99387
+ centered: true,
99388
+ hideCheckbox: true,
99389
+ label: translations.no_result_match
99390
+ }]
99391
+ });
99523
99392
  });
99524
- } else if (hasAll && suggestions.length > 0 && suggestions.length === options.length && multiple === true) {
99525
- // Handle 'All'
99526
- if (suggestions.filter(function (suggestion) {
99527
- return suggestion.id === '_all';
99528
- }).length === 0) {
99529
- var allItem = {
99393
+ } else {
99394
+ _this.setState({
99395
+ suggestions: toConsumableArray(hasAll ? [_extends_1({
99530
99396
  id: '_all',
99531
- icon: iconAll,
99532
99397
  label: translations.all
99533
- };
99534
-
99535
- if (iconAll !== false) {
99536
- allItem.type = 'icon';
99537
- }
99538
-
99539
- suggestions.unshift(allItem);
99540
- }
99398
+ }, iconAll && {
99399
+ type: 'icon',
99400
+ icon: iconAll
99401
+ })] : []).concat(toConsumableArray(suggestions))
99402
+ });
99541
99403
  }
99542
-
99543
- _this.setState({
99544
- suggestions: suggestions
99545
- });
99546
99404
  };
99547
99405
 
99548
- _this.handleRequestDelete = function (evt) {
99549
- evt.stopPropagation();
99550
-
99551
- _this.props.onChange(_this.props.name, []);
99406
+ _this.handleScroll = function (e) {
99407
+ if (e.target.scrollHeight - e.target.clientHeight - e.target.scrollTop < 15) {
99408
+ _this.props.onScrollReachBottom();
99409
+ }
99552
99410
  };
99553
99411
 
99554
- _this.handleScroll = function (event) {
99555
- if (!_this.props.loadingMoreResults && _this.props.hasMore && event.target.scrollHeight - event.target.clientHeight - event.target.scrollTop < 15) {
99556
- _this.props.loadMoreResults(_this.state.resultsPageNumber + 1);
99412
+ _this.handleSearch = function (e, inputValue) {
99413
+ var searchValue = inputValue && e.target.value ? inputValue : e.target.value;
99557
99414
 
99558
- _this.setState(function (prevState) {
99559
- return {
99560
- resultsPageNumber: prevState.resultsPageNumber + 1
99561
- };
99415
+ if (_this.props.onSearch) {
99416
+ _this.props.onSearch(e, searchValue);
99417
+ } else {
99418
+ _this.setState({
99419
+ searchValue: searchValue
99562
99420
  });
99563
99421
  }
99564
99422
  };
99565
99423
 
99566
- _this.state = {
99567
- open: false,
99568
- focused: false,
99569
- suggestions: [],
99570
- hierarchySelected: {},
99571
- hierarchy: {},
99572
- nbOptions: 0,
99573
- dynamic: _props.dynamic || false,
99574
- resultsPageNumber: 1
99575
- }; // Check if value is in options
99576
-
99577
- var valueInOptions = false;
99578
- var _val = _props.value; // No options provided.
99579
-
99580
- if (!_props.options.length || !_val || !_val.length) {
99581
- valueInOptions = true;
99582
- } else {
99583
- // Check if an option match value prop.
99584
- _props.options.forEach(function (item) {
99585
- if (!valueInOptions && _val.indexOf(item.id) !== -1) {
99586
- valueInOptions = true;
99587
- }
99588
- });
99589
-
99590
- if (!valueInOptions && _props.pinnedItem) {
99591
- if (_props.value.indexOf(_props.pinnedItem.id) >= 0) {
99592
- valueInOptions = true;
99424
+ _this.handleSearchReset = function () {
99425
+ _this.handleSearch({
99426
+ target: {
99427
+ value: ''
99593
99428
  }
99594
- }
99595
- }
99596
-
99597
- if (!valueInOptions) {
99598
- throw new Error('prop value provided does not match any option.');
99599
- }
99429
+ }, '');
99430
+ };
99600
99431
 
99601
- if (_props.hierarchic === true && _props.options.length > 1) {
99602
- var hierarchyTrees = _this.buildHierarchyTrees(_props);
99432
+ _this.buildSelectProps = function (options) {
99433
+ var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
99434
+ var search = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
99435
+ var loading = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
99436
+
99437
+ // build item list
99438
+ var itemList = toConsumableArray(loading ? [{
99439
+ id: '_loading',
99440
+ type: 'loader',
99441
+ disabled: true,
99442
+ centered: true,
99443
+ hideCheckbox: true,
99444
+ label: 'loading'
99445
+ }] : []).concat(toConsumableArray(search !== '' ? toConsumableArray(options.filter(function (item) {
99446
+ return item.label && foldAccents(item.label.toString().toLowerCase()).search(foldAccents(search.toLowerCase())) !== -1;
99447
+ })) : toConsumableArray(_this.props.hasAll ? [_extends_1({
99448
+ id: '_all',
99449
+ label: _this.props.translations.all
99450
+ }, _this.props.iconAll && {
99451
+ type: 'icon',
99452
+ icon: _this.props.iconAll
99453
+ })] : []).concat(toConsumableArray(options))));
99603
99454
 
99604
- _this.state.hierarchy = hierarchyTrees.hierarchy;
99605
- _this.state.hierarchySelected = hierarchyTrees.hierarchySelected;
99606
- }
99455
+ return {
99456
+ itemList: itemList,
99457
+ inputValue: _this.buildInputValue(options, value, loading)
99458
+ };
99459
+ };
99607
99460
 
99608
- if (_props.options.length > 0) {
99609
- // Get real options number (parent & _all are not real options)
99610
- var optionsLength = 0;
99461
+ _this.buildInputValue = function (options) {
99462
+ var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
99463
+ var loading = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
99464
+ var _this$props3 = _this.props,
99465
+ classes = _this$props3.classes,
99466
+ hasAll = _this$props3.hasAll,
99467
+ translations = _this$props3.translations,
99468
+ type = _this$props3.type; // build input value
99469
+
99470
+ var inputValue;
99471
+
99472
+ if (loading && value.length === 1) {
99473
+ inputValue = translations.one_item_selected;
99474
+ } else if (hasAll && options.length === value.length) {
99475
+ inputValue = translations.all;
99476
+ value.unshift('_all');
99477
+ } else if (value.length > 1) {
99478
+ inputValue = translations.n_items_selected.replace('%s', value.length);
99479
+ } else if (value.length === 1) {
99480
+ var item = options.find(function (o) {
99481
+ return o.id === value[0];
99482
+ });
99611
99483
 
99612
- _props.options.forEach(function (option) {
99613
- if (option.hasChildren !== true && option.id !== '_all') {
99614
- optionsLength += 1;
99484
+ if (item === undefined) {
99485
+ inputValue = translations.one_item_selected;
99486
+ } else if (type === 'icon' || item.type === 'icon') {
99487
+ inputValue = React__default.createElement("span", {
99488
+ className: classes.selectIconLabel
99489
+ }, React__default.createElement(HiIcon$1, {
99490
+ className: classes.labelIcon,
99491
+ icon: item.icon
99492
+ }), item.label);
99493
+ } else if (type === 'image' || item.type === 'image') {
99494
+ inputValue = React__default.createElement("span", {
99495
+ className: classes.selectIconLabel
99496
+ }, React__default.createElement("img", {
99497
+ className: classes.labelImg,
99498
+ src: item.img,
99499
+ alt: item.label
99500
+ }), item.label);
99501
+ } else {
99502
+ inputValue = item.label;
99615
99503
  }
99616
- });
99504
+ }
99617
99505
 
99618
- _this.state.nbOptions = optionsLength;
99619
- } else if (!_props.dynamic) {
99620
- _this.state.dynamic = true;
99621
- }
99506
+ return inputValue;
99507
+ };
99622
99508
 
99623
- _this.handleSelect = _this.handleSelect.bind(assertThisInitialized(assertThisInitialized(_this)));
99509
+ _this.state = {
99510
+ open: false,
99511
+ focused: false,
99512
+ searchValue: props.searchValue ? undefined : '',
99513
+ suggestions: props.options
99514
+ };
99624
99515
  _this.handleClick = _this.handleClick.bind(assertThisInitialized(assertThisInitialized(_this)));
99625
99516
  _this.handleClose = _this.handleClose.bind(assertThisInitialized(assertThisInitialized(_this)));
99626
99517
  _this.handleClickAway = _this.handleClickAway.bind(assertThisInitialized(assertThisInitialized(_this)));
99627
- _this.handleRequestDelete = _this.handleRequestDelete.bind(assertThisInitialized(assertThisInitialized(_this)));
99628
- _this.handleSuggestions = _this.handleSuggestions.bind(assertThisInitialized(assertThisInitialized(_this)));
99629
99518
  _this.handleFocus = _this.handleFocus.bind(assertThisInitialized(assertThisInitialized(_this)));
99630
99519
  _this.handleBlur = _this.handleBlur.bind(assertThisInitialized(assertThisInitialized(_this)));
99631
- _this.handleScroll = _this.handleScroll.bind(assertThisInitialized(assertThisInitialized(_this)));
99520
+ _this.handleSearch = _this.handleSearch.bind(assertThisInitialized(assertThisInitialized(_this)));
99521
+ _this.handleSearchReset = _this.handleSearchReset.bind(assertThisInitialized(assertThisInitialized(_this)));
99522
+ _this.handleSelect = _this.handleSelect.bind(assertThisInitialized(assertThisInitialized(_this)));
99523
+ _this.handleSuggestions = _this.handleSuggestions.bind(assertThisInitialized(assertThisInitialized(_this)));
99524
+ _this.getInputElement = _this.getInputElement.bind(assertThisInitialized(assertThisInitialized(_this)));
99632
99525
  return _this;
99633
99526
  }
99634
99527
 
99635
99528
  createClass(HiSelect, [{
99636
- key: "componentWillReceiveProps",
99637
- value: function componentWillReceiveProps(nextProps) {
99638
- if (typeof this.props.onSearch !== 'undefined' && this.props.options && this.props.options.length > 0) {
99639
- this.handleSuggestions(nextProps.options);
99640
- var optionsLength = 0;
99641
- nextProps.options.forEach(function (option) {
99642
- if (option.hasChildren !== true && option.id !== '_all') {
99643
- optionsLength += 1;
99644
- }
99645
- });
99646
- this.setState({
99647
- nbOptions: optionsLength
99648
- });
99649
- }
99529
+ key: "getInputElement",
99530
+ value: function getInputElement(el) {
99531
+ this.searchField = el;
99650
99532
 
99651
- if (nextProps.hierarchic === true && nextProps.options.length > 1) {
99652
- var hierarchyTrees = this.buildHierarchyTrees(nextProps);
99653
- this.setState({
99654
- hierarchy: hierarchyTrees.hierarchy,
99655
- hierarchySelected: hierarchyTrees.hierarchySelected
99656
- });
99657
- }
99658
- }
99659
- }, {
99660
- key: "handleReset",
99661
- value: function handleReset(event) {
99662
- if (this.props.onReset) {
99663
- event.stopPropagation();
99664
- this.props.onReset(event);
99533
+ if (this.props.inputRef) {
99534
+ this.props.inputRef(this.searchField);
99665
99535
  }
99666
99536
  }
99667
99537
  }, {
99668
99538
  key: "render",
99669
99539
  value: function render() {
99670
- var _this2 = this;
99671
-
99672
- var _this$props3 = this.props,
99673
- classes = _this$props3.classes,
99674
- disabled = _this$props3.disabled,
99675
- error = _this$props3.error,
99676
- loading = _this$props3.loading,
99677
- options = _this$props3.options,
99678
- searchable = _this$props3.searchable,
99679
- displayAsChip = _this$props3.displayAsChip,
99680
- type = _this$props3.type,
99681
- value = _this$props3.value,
99682
- translations = _this$props3.translations,
99683
- parentItemSelectable = _this$props3.parentItemSelectable,
99684
- icon = _this$props3.icon,
99685
- parentIcon = _this$props3.parentIcon,
99686
- hoverIcon = _this$props3.hoverIcon,
99687
- checkedIcon = _this$props3.checkedIcon,
99688
- id = _this$props3.id,
99689
- placeholder = _this$props3.placeholder,
99690
- staticPosition = _this$props3.staticPosition,
99691
- pinnedItem = _this$props3.pinnedItem,
99692
- hasAll = _this$props3.hasAll,
99693
- infiniteScroll = _this$props3.infiniteScroll,
99694
- loadingMoreResults = _this$props3.loadingMoreResults,
99695
- multiple = _this$props3.multiple,
99696
- other = objectWithoutProperties(_this$props3, ["classes", "disabled", "error", "loading", "options", "searchable", "displayAsChip", "type", "value", "translations", "parentItemSelectable", "icon", "parentIcon", "hoverIcon", "checkedIcon", "id", "placeholder", "staticPosition", "pinnedItem", "hasAll", "infiniteScroll", "loadingMoreResults", "multiple"]);
99697
-
99698
- var _this$state2 = this.state,
99699
- open = _this$state2.open,
99700
- stateSuggestions = _this$state2.suggestions,
99701
- focused = _this$state2.focused,
99702
- dynamic = _this$state2.dynamic;
99703
- var display = '';
99704
- var selectedIdList;
99705
-
99706
- if (Array.isArray(value)) {
99707
- selectedIdList = value;
99708
- } else if (value) {
99709
- selectedIdList = [value];
99710
- } else {
99711
- selectedIdList = [];
99712
- }
99713
-
99714
- var suggestions = toConsumableArray(stateSuggestions);
99715
-
99716
- if (pinnedItem) {
99717
- suggestions.unshift(pinnedItem);
99718
- } // If loading
99719
-
99720
-
99721
- if (loading && !loadingMoreResults) {
99722
- suggestions.unshift({
99723
- id: '_loading',
99724
- type: 'loader',
99725
- disabled: true,
99726
- centered: true,
99727
- checkbox: false,
99728
- label: 'loading'
99729
- });
99730
- }
99731
-
99732
- if ((dynamic || loading) && selectedIdList.length === 1) {
99733
- display = translations.one_item_selected;
99734
- } else if ((this.state.nbOptions !== selectedIdList.length || !hasAll) && selectedIdList.length > 1) {
99735
- display = translations.n_items_selected.replace('%s', selectedIdList.length);
99736
- } else if (this.state.nbOptions === selectedIdList.length && this.state.nbOptions > 1) {
99737
- display = translations.all;
99738
- } else if (selectedIdList.length === 1) {
99739
- var item = options.find(function (o) {
99740
- return o.id === selectedIdList[0];
99741
- });
99540
+ var _classNames,
99541
+ _this2 = this;
99742
99542
 
99743
- if (item === undefined) {
99744
- display = translations.one_item_selected;
99745
- } else if (type !== 'icon') {
99746
- if (pinnedItem) {
99747
- item = pinnedItem;
99748
- }
99543
+ var _this$props4 = this.props,
99544
+ classes = _this$props4.classes,
99545
+ disabled = _this$props4.disabled,
99546
+ error = _this$props4.error,
99547
+ loading = _this$props4.loading,
99548
+ options = _this$props4.options,
99549
+ searchable = _this$props4.searchable,
99550
+ displayAsChip = _this$props4.displayAsChip,
99551
+ type = _this$props4.type,
99552
+ value = _this$props4.value,
99553
+ multiple = _this$props4.multiple,
99554
+ translations = _this$props4.translations,
99555
+ hiSelectableListProps = _this$props4.hiSelectableListProps,
99556
+ hiSelectInputProps = _this$props4.hiSelectInputProps,
99557
+ id = _this$props4.id,
99558
+ onScrollReachBottom = _this$props4.onScrollReachBottom,
99559
+ onSubmit = _this$props4.onSubmit,
99560
+ placeholder = _this$props4.placeholder,
99561
+ startAdornment = _this$props4.startAdornment,
99562
+ staticPosition = _this$props4.staticPosition,
99563
+ _this$props4$searchVa = _this$props4.searchValue,
99564
+ searchValue = _this$props4$searchVa === void 0 ? this.state.searchValue : _this$props4$searchVa,
99565
+ _this$props4$buildSel = _this$props4.buildSelectProps,
99566
+ buildSelectProps = _this$props4$buildSel === void 0 ? this.buildSelectProps : _this$props4$buildSel;
99567
+ var _this$state = this.state,
99568
+ open = _this$state.open,
99569
+ focused = _this$state.focused;
99749
99570
 
99750
- display = item.label;
99751
- } else {
99752
- display = React__default.createElement("span", {
99753
- className: classes.selectIconLabel
99754
- }, React__default.createElement(HiIcon$1, {
99755
- icon: item.icon,
99756
- className: classes.labelIcon
99757
- }), item.label);
99571
+ if (multiple) {
99572
+ if (!Array.isArray(value)) {
99573
+ throw new Error('HiPay Material-UI: the `value` property must be an array ' + 'when using the `HiSelect` component with `multiple`.');
99758
99574
  }
99759
99575
  }
99760
99576
 
99761
- if (displayAsChip) {
99762
- var chipFilter = React__default.createElement(HiChip$1, {
99763
- label: placeholder || display,
99764
- onDelete: this.handleRequestDelete
99765
- });
99577
+ var selectedItemIdList = [];
99766
99578
 
99767
- if (display) {
99768
- display = chipFilter;
99769
- }
99579
+ if (value) {
99580
+ selectedItemIdList = multiple ? toConsumableArray(value) : [value];
99770
99581
  }
99771
99582
 
99772
- var popperClass = classnames(classes.popper, defineProperty({}, classes.popperWidth, !this.props.containerWidth));
99773
- var allSelected = false;
99774
-
99775
- if (selectedIdList.length === this.state.nbOptions) {
99776
- allSelected = true;
99777
- }
99583
+ var _buildSelectProps = buildSelectProps(options, selectedItemIdList, searchValue, loading),
99584
+ itemList = _buildSelectProps.itemList,
99585
+ _buildSelectProps$inp = _buildSelectProps.inputValue,
99586
+ inputValue = _buildSelectProps$inp === void 0 ? this.buildInputValue(options, selectedItemIdList, loading) : _buildSelectProps$inp;
99778
99587
 
99779
99588
  var popperStyle = {};
99780
99589
 
@@ -99788,17 +99597,7 @@
99788
99597
  }
99789
99598
  }
99790
99599
 
99791
- if (infiniteScroll && loadingMoreResults) {
99792
- suggestions.push({
99793
- id: '_loading',
99794
- type: 'loader',
99795
- disabled: true,
99796
- centered: true,
99797
- checkbox: false,
99798
- label: 'loading'
99799
- });
99800
- }
99801
-
99600
+ var popperClass = classnames(classes.popper, (_classNames = {}, defineProperty(_classNames, classes.popperWidth, !this.props.containerWidth), defineProperty(_classNames, classes.popperRightAlign, this.props.containerWidth && this.props.align === 'right'), _classNames));
99802
99601
  var content = React__default.createElement(ClickAwayListener$2, {
99803
99602
  onClickAway: this.handleClickAway
99804
99603
  }, React__default.createElement(Grow$2, {
@@ -99809,48 +99608,41 @@
99809
99608
  }
99810
99609
  }, React__default.createElement(Paper$2, {
99811
99610
  className: classes.paper
99812
- }, !!searchable && React__default.createElement(HiSearchField, {
99813
- itemList: options,
99814
- onFilteredList: this.handleSuggestions,
99815
- filterPropertyList: ['label'],
99816
- placeholder: translations.search,
99611
+ }, !!searchable && React__default.createElement(HiInput$1, {
99612
+ value: searchValue,
99817
99613
  autoFocus: true,
99818
- onSearch: this.props.onSearch,
99819
- inputRef: function inputRef(el) {
99820
- _this2.searchField = el;
99821
- },
99822
- onKeyDown: this.handleKeyDownSearch
99823
- }), React__default.createElement(Scrollbars, {
99614
+ inputRef: this.getInputElement,
99615
+ onKeyDown: this.handleKeyDownSearch,
99616
+ onChange: this.handleSearch,
99617
+ onReset: this.handleSearchReset,
99618
+ placeholder: translations.search,
99619
+ startAdornment: 'search',
99620
+ tabIndex: 0
99621
+ }), startAdornment, React__default.createElement(Scrollbars, _extends_1({
99824
99622
  ref: function ref(contentEl) {
99825
99623
  _this2.optionsContent = contentEl;
99826
99624
  },
99827
99625
  autoHeight: true,
99828
- autoHeightMax: 400,
99626
+ autoHeightMax: 400 // TODO ?
99627
+
99628
+ }, onScrollReachBottom && {
99829
99629
  onScroll: this.handleScroll
99830
- }, React__default.createElement(HiSelectableList$1, _extends_1({
99630
+ }), React__default.createElement(HiSelectableList$1, _extends_1({
99831
99631
  type: type,
99832
- parentItemSelectable: parentItemSelectable,
99833
- itemList: suggestions,
99632
+ itemList: itemList,
99633
+ onKeyDown: this.handleKeyDown,
99834
99634
  onSelect: this.handleSelect,
99835
- selectedItemIdList: selectedIdList,
99836
- hideCheckbox: !multiple,
99837
- translations: translations,
99838
- icon: icon,
99839
- parentIcon: parentIcon,
99840
- hoverIcon: hoverIcon,
99841
- checkedIcon: checkedIcon,
99842
- allSelected: allSelected,
99843
- value: value,
99844
- onKeyDown: this.handleKeyDown
99845
- }, other))))));
99635
+ selectedItemIdList: selectedItemIdList,
99636
+ fallbackImage: this.props.fallbackImage
99637
+ }, hiSelectableListProps))))));
99846
99638
  return React__default.createElement("div", {
99847
99639
  className: classes.root,
99848
99640
  ref: function ref(el) {
99849
99641
  _this2.overlay = el;
99850
99642
  }
99851
- }, React__default.createElement(SelectInput$1, {
99643
+ }, React__default.createElement(HiSelectInput$1, _extends_1({
99852
99644
  id: id,
99853
- value: placeholder || display,
99645
+ value: inputValue,
99854
99646
  open: open,
99855
99647
  focused: focused,
99856
99648
  type: type,
@@ -99860,43 +99652,55 @@
99860
99652
  onClick: this.handleClick,
99861
99653
  onFocus: this.handleFocus,
99862
99654
  onBlur: this.handleBlur,
99655
+ onSubmit: onSubmit,
99863
99656
  onMouseEnter: this.props.onMouseEnter,
99864
99657
  onMouseLeave: this.props.onMouseLeave,
99658
+ onReset: this.props.onReset,
99659
+ placeholder: placeholder
99660
+ }, hiSelectInputProps, {
99865
99661
  refElement: function refElement(el) {
99866
- _this2.selectInputElement = el;
99867
- },
99868
- onReset: this.props.onReset
99869
- }), open && staticPosition ? React__default.createElement("div", {
99870
- style: popperStyle
99662
+ _this2.inputEl = el;
99663
+ }
99664
+ })), open && staticPosition ? React__default.createElement("div", {
99665
+ style: popperStyle,
99666
+ className: popperClass
99871
99667
  }, content) : React__default.createElement(Popper$3, {
99872
99668
  anchorEl: this.inputEl,
99873
99669
  placement: "bottom-start",
99874
99670
  open: open,
99875
99671
  className: popperClass,
99876
- style: popperStyle,
99877
- disablePortal: true
99672
+ disablePortal: true,
99673
+ style: popperStyle
99878
99674
  }, content));
99879
99675
  }
99676
+ }], [{
99677
+ key: "getDerivedStateFromProps",
99678
+ value: function getDerivedStateFromProps(nextProps, prevState) {
99679
+ if (nextProps.options !== prevState.suggestions) {
99680
+ return _extends_1({}, prevState, {
99681
+ suggestions: nextProps.options
99682
+ });
99683
+ }
99684
+
99685
+ return null;
99686
+ }
99880
99687
  }]);
99881
99688
 
99882
99689
  return HiSelect;
99883
99690
  }(React__default.PureComponent);
99884
99691
 
99885
99692
  HiSelect.defaultProps = {
99886
- containerWidth: 0,
99693
+ align: 'left',
99887
99694
  disabled: false,
99888
99695
  displayAsChip: false,
99889
- dynamic: false,
99890
99696
  error: false,
99891
99697
  hasAll: false,
99892
- hasMore: false,
99893
- hierarchic: false,
99894
- iconAll: false,
99895
- infiniteScroll: false,
99896
- loadingMoreResults: false,
99698
+ hiSelectableListProps: {},
99699
+ hiSelectInputProps: {},
99897
99700
  multiple: false,
99898
- parentItemSelectable: false,
99899
- type: 'text',
99701
+ placeholder: '',
99702
+ searchable: false,
99703
+ staticPosition: false,
99900
99704
  translations: {
99901
99705
  all: 'All',
99902
99706
  no_result_match: 'No result match',
@@ -99906,14 +99710,10 @@
99906
99710
  n_children: '%s items',
99907
99711
  one_child: '%s item'
99908
99712
  },
99909
- searchable: false,
99910
- staticPosition: false
99713
+ type: 'text'
99911
99714
  };
99912
99715
  HiSelect.propTypes = {
99913
- /**
99914
- * Icon affiché lorsque l'item est sélectionné
99915
- */
99916
- checkedIcon: propTypes.node,
99716
+ align: propTypes.oneOf(['left', 'right']),
99917
99717
 
99918
99718
  /**
99919
99719
  * Useful to extend the style applied to components.
@@ -99935,77 +99735,46 @@
99935
99735
  */
99936
99736
  displayAsChip: propTypes.bool,
99937
99737
 
99938
- /**
99939
- * Option permettant de définir si les options du select sont dynamiques.
99940
- * Si les options du select sont initialisées à vide, alors ce sera mis à true
99941
- * automatiquement.
99942
- */
99943
- dynamic: propTypes.bool,
99944
-
99945
99738
  /**
99946
99739
  * Applique le style error
99947
99740
  */
99948
99741
  error: propTypes.bool,
99949
99742
 
99950
99743
  /**
99951
- * Affiche l'élément 'All'
99952
- */
99953
- hasAll: propTypes.bool,
99954
-
99955
- /**
99956
- * Indique si l'infinite scroll doit rechercher de nouveaux résultats
99744
+ * Chemin vers l'image à afficher par défaut si une image n'est pas trouvée
99957
99745
  */
99958
- hasMore: propTypes.bool,
99746
+ fallbackImage: propTypes.string,
99959
99747
 
99960
99748
  /**
99961
- * Les items sont hiérarchisés
99749
+ * Affiche l'élément 'All'
99962
99750
  */
99963
- hierarchic: propTypes.bool,
99751
+ hasAll: propTypes.bool,
99964
99752
 
99965
99753
  /**
99966
- * Icon affiché lorsque l'item n'est pas sélectionné et qu'on le survole
99754
+ * Override HiSelectableList props (
99967
99755
  */
99968
- hoverIcon: propTypes.node,
99756
+ hiSelectableListProps: propTypes.object,
99969
99757
 
99970
99758
  /**
99971
- * Icon affiché lorsque l'item n'est pas sélectionné
99759
+ * Override HiSelectInput props
99972
99760
  */
99973
- icon: propTypes.node,
99761
+ hiSelectInputProps: propTypes.object,
99974
99762
 
99975
99763
  /**
99976
99764
  * Nom de l'icône
99977
99765
  */
99978
- iconAll: propTypes.oneOfType([propTypes.string, propTypes.bool]),
99766
+ iconAll: propTypes.string,
99979
99767
 
99980
99768
  /**
99981
99769
  * id du select
99982
99770
  */
99983
99771
  id: propTypes.string,
99984
99772
 
99985
- /**
99986
- * Infinite scroll dans le select dans le cas où il y a beaucoup de résultats à afficher
99987
- * afin d'éviter un lag du navigateur
99988
- */
99989
- infiniteScroll: propTypes.bool,
99990
-
99991
99773
  /**
99992
99774
  * Ajoute un loader
99993
99775
  */
99994
99776
  loading: propTypes.bool,
99995
99777
 
99996
- /**
99997
- * Ajoute un loader en bas pour l'infiniteScroll
99998
- */
99999
- loadingMoreResults: propTypes.bool,
100000
-
100001
- /**
100002
- * Fonction de callback appelée lorsque l'utilisateur arrive en bas de la liste des options
100003
- * afin de charger les nouvelles options
100004
- *
100005
- * @param {int} pageNumber
100006
- */
100007
- loadMoreResults: propTypes.func,
100008
-
100009
99778
  /**
100010
99779
  * Autorise la sélection de plusieurs valeurs
100011
99780
  */
@@ -100024,11 +99793,6 @@
100024
99793
  */
100025
99794
  onChange: propTypes.func.isRequired,
100026
99795
 
100027
- /**
100028
- * Fonction de callback appelée click dans l'input
100029
- */
100030
- onClick: propTypes.func,
100031
-
100032
99796
  /**
100033
99797
  * Fonction de callback appelée lorsqu'on ferme le select
100034
99798
  */
@@ -100050,18 +99814,14 @@
100050
99814
  onReset: propTypes.func,
100051
99815
 
100052
99816
  /**
100053
- * Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
100054
- * A utiliser pour les selects avec des données dynamiques
100055
- *
100056
- * @param {object} event
100057
- * @param {string} value
99817
+ * Fonction de callback appelée lorsque le scroll atteint le bas de la liste
100058
99818
  */
100059
- onSearch: propTypes.func,
99819
+ onScrollReachBottom: propTypes.func,
100060
99820
 
100061
99821
  /**
100062
- * Fonction de callback à la pression de la touche "Entrée"
99822
+ * Fonction de callback appelée lorsque le champs de recherche est utilisé
100063
99823
  */
100064
- onSubmit: propTypes.func,
99824
+ onSearch: propTypes.func,
100065
99825
 
100066
99826
  /**
100067
99827
  * Listes des options du select
@@ -100069,23 +99829,7 @@
100069
99829
  options: propTypes.array.isRequired,
100070
99830
 
100071
99831
  /**
100072
- * Icon affiché lorsqu'un item parent n'est pas sélectionné
100073
- */
100074
- parentIcon: propTypes.node,
100075
-
100076
- /**
100077
- * Les items parents sont sélectionnables
100078
- */
100079
- parentItemSelectable: propTypes.bool,
100080
-
100081
- /**
100082
- * Item épinglé en début de liste
100083
- */
100084
- pinnedItem: propTypes.object,
100085
-
100086
- /**
100087
- * Placeholder affiché lorsque le select est fermé
100088
- * Surcharge le placeholder par défaut
99832
+ * Placeholder affiché lorsque l'input est vide
100089
99833
  */
100090
99834
  placeholder: propTypes.string,
100091
99835
 
@@ -100095,7 +99839,12 @@
100095
99839
  searchable: propTypes.bool,
100096
99840
 
100097
99841
  /**
100098
- * Si true, le contenu du select sera dans une div static plutot que dans une popper absolute
99842
+ * Node qui s'ajoute entre la barre de recherche et la liste de résultats
99843
+ */
99844
+ startAdornment: propTypes.object,
99845
+
99846
+ /**
99847
+ * Si true, le contenu du select sera dans une div static plutôt que dans une popper absolute
100099
99848
  */
100100
99849
  staticPosition: propTypes.bool,
100101
99850
 
@@ -100250,6 +99999,8 @@
100250
99999
  switch (key) {
100251
100000
  case 'custom':
100252
100001
  label = t.custom_period;
100002
+ from = moment().subtract(15, 'day').startOf('day');
100003
+ to = moment().endOf('day');
100253
100004
  type = 'primary-highlight';
100254
100005
  break;
100255
100006
 
@@ -100285,35 +100036,35 @@
100285
100036
  label = t.current_month;
100286
100037
  from = moment().startOf('month');
100287
100038
  to = moment();
100288
- info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days'), " ").concat(t.days);
100039
+ info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
100289
100040
  break;
100290
100041
 
100291
100042
  case 'pm':
100292
100043
  label = t.previous_month;
100293
100044
  from = moment().subtract(1, 'month').startOf('month');
100294
100045
  to = moment().subtract(1, 'month').endOf('month');
100295
- info = "".concat(from.format('YYYY-MM'), ", ").concat(to.diff(from, 'days'), " ").concat(t.days);
100046
+ info = "".concat(from.format(t.yearAndMonth), ", ").concat(from.daysInMonth(), " ").concat(t.days);
100296
100047
  break;
100297
100048
 
100298
100049
  case 'cq':
100299
100050
  label = t.current_quarter;
100300
100051
  from = moment().startOf('quarter');
100301
100052
  to = moment();
100302
- info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days'), " ").concat(t.days);
100053
+ info = "".concat(from.format(t.yearAndQuarter), ", ").concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
100303
100054
  break;
100304
100055
 
100305
100056
  case 'pq':
100306
100057
  label = t.previous_quarter;
100307
100058
  from = moment().subtract(1, 'quarter').startOf('quarter');
100308
100059
  to = moment().subtract(1, 'quarter').endOf('quarter');
100309
- info = "".concat(from.format('YYYY'), "-").concat(t.short_quarter).concat(from.format('Q'), ", ").concat(to.diff(from, 'days'), " ").concat(t.days);
100060
+ info = "".concat(from.format(t.yearAndQuarter), ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
100310
100061
  break;
100311
100062
 
100312
100063
  case 'cy':
100313
100064
  label = t.current_year;
100314
100065
  from = moment().startOf('year');
100315
100066
  to = moment();
100316
- info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days'), " ").concat(t.days);
100067
+ info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
100317
100068
  break;
100318
100069
 
100319
100070
  default:
@@ -100361,25 +100112,30 @@
100361
100112
  _this = possibleConstructorReturn(this, getPrototypeOf(HiDateRangeSelector).call(this));
100362
100113
  _this.options = [];
100363
100114
 
100115
+ _this.onBlur = function (event) {
100116
+ if (event instanceof Object && _this.props.onblur) {
100117
+ _this.props.onBlur(event);
100118
+ }
100119
+ };
100120
+
100364
100121
  _this.handleSelectChange = function (name) {
100365
100122
  return function (event, value) {
100366
- _this.setState(defineProperty({}, name, value));
100123
+ var _this$setState;
100367
100124
 
100368
- if (value !== 'custom') {
100369
- var selectedOption = _this.options.find(function (option) {
100370
- return option.id === value;
100371
- });
100125
+ _this.setState((_this$setState = {}, defineProperty(_this$setState, name, value), defineProperty(_this$setState, "key", _this.state.key === 1 ? 2 : 1), _this$setState));
100372
100126
 
100373
- if (selectedOption) {
100374
- _this.props.onChange('from', selectedOption.from.toDate());
100127
+ var selectedOption = _this.options.find(function (option) {
100128
+ return option.id === value;
100129
+ });
100375
100130
 
100376
- _this.props.onChange('to', selectedOption.to.toDate());
100377
- }
100378
- } else {
100379
- _this.setState({
100380
- defaultFrom: undefined,
100381
- defaultTo: undefined
100382
- });
100131
+ if (selectedOption) {
100132
+ _this.props.onChange('from', selectedOption.from.toDate());
100133
+
100134
+ _this.props.onChange('to', selectedOption.to.toDate());
100135
+
100136
+ _this.props.onChange('fromError', false);
100137
+
100138
+ _this.props.onChange('toError', false);
100383
100139
  }
100384
100140
 
100385
100141
  if (_this.props.returnSelectValue === true) {
@@ -100393,25 +100149,9 @@
100393
100149
  _this.options = props.availableOptionKeys.map(function (key) {
100394
100150
  return buildDateRangeOptionByKey(key, props.translations, props.format);
100395
100151
  });
100396
- var from;
100397
- var to;
100398
-
100399
- if (props.defaultPreset !== 'custom') {
100400
- var selectedOption = _this.options.find(function (option) {
100401
- return option.id === props.defaultPreset;
100402
- });
100403
-
100404
- if (selectedOption) {
100405
- from = selectedOption.from.toDate();
100406
- to = selectedOption.to.toDate();
100407
- }
100408
- }
100409
-
100410
100152
  _this.state = {
100411
100153
  selectedPreset: props.defaultPreset,
100412
- containerWidth: 0,
100413
- defaultFrom: from,
100414
- defaultTo: to
100154
+ containerWidth: 0
100415
100155
  };
100416
100156
  return _this;
100417
100157
  }
@@ -100421,8 +100161,9 @@
100421
100161
  value: function componentDidMount() {
100422
100162
  if (this.container) {
100423
100163
  this.setState({
100424
- containerWidth: require$$11.findDOMNode(this.container).clientWidth
100164
+ containerWidth: require$$11.findDOMNode(this.container).clientWidth - 5
100425
100165
  });
100166
+ this.handleSelectChange('selectedPreset')(undefined, this.state.selectedPreset);
100426
100167
  }
100427
100168
  }
100428
100169
  }, {
@@ -100434,6 +100175,7 @@
100434
100175
  key: "handleReset",
100435
100176
  value: function handleReset(name) {
100436
100177
  this.props.onChange(name, undefined);
100178
+ this.props.onChange("".concat(name, "Error"), undefined);
100437
100179
  }
100438
100180
  }, {
100439
100181
  key: "render",
@@ -100443,12 +100185,14 @@
100443
100185
  var _this$props = this.props,
100444
100186
  disabled = _this$props.disabled,
100445
100187
  enableTime = _this$props.enableTime,
100446
- error = _this$props.error,
100447
100188
  errorText = _this$props.errorText,
100189
+ fromError = _this$props.fromError,
100190
+ toError = _this$props.toError,
100448
100191
  helperIcon = _this$props.helperIcon,
100449
100192
  helperText = _this$props.helperText,
100450
100193
  idRange = _this$props.idRange,
100451
100194
  idSelect = _this$props.idSelect,
100195
+ minimumDate = _this$props.minimumDate,
100452
100196
  label = _this$props.label,
100453
100197
  from = _this$props.from,
100454
100198
  onChange = _this$props.onChange,
@@ -100458,18 +100202,25 @@
100458
100202
  classes = _this$props.classes,
100459
100203
  selectProps = _this$props.selectProps,
100460
100204
  staticPosition = _this$props.staticPosition,
100461
- props = objectWithoutProperties(_this$props, ["disabled", "enableTime", "error", "errorText", "helperIcon", "helperText", "idRange", "idSelect", "label", "from", "onChange", "required", "to", "translations", "classes", "selectProps", "staticPosition"]);
100205
+ props = objectWithoutProperties(_this$props, ["disabled", "enableTime", "errorText", "fromError", "toError", "helperIcon", "helperText", "idRange", "idSelect", "minimumDate", "label", "from", "onChange", "required", "to", "translations", "classes", "selectProps", "staticPosition"]);
100462
100206
 
100463
- var _this$state = this.state,
100464
- defaultFrom = _this$state.defaultFrom,
100465
- defaultTo = _this$state.defaultTo,
100466
- selectedPreset = _this$state.selectedPreset;
100467
- return React__default.createElement(Grid$4, {
100207
+ var selectedPreset = this.state.selectedPreset;
100208
+ var hiSelectableListProps = {
100209
+ hideCheckbox: true
100210
+ };
100211
+ return React__default.createElement(HiFormControl$1, {
100212
+ disabled: disabled,
100213
+ helperIcon: helperIcon,
100214
+ helperText: helperText,
100215
+ errorText: errorText,
100216
+ error: !!(fromError || toError),
100217
+ label: ' '
100218
+ }, React__default.createElement(Grid$4, {
100468
100219
  container: true,
100469
100220
  spacing: 8,
100470
100221
  className: classes.root,
100471
100222
  ref: function ref(container) {
100472
- _this2.container = container;
100223
+ return _this2.container = container;
100473
100224
  }
100474
100225
  }, React__default.createElement(Grid$4, {
100475
100226
  item: true,
@@ -100480,12 +100231,10 @@
100480
100231
  }
100481
100232
  }, React__default.createElement(HiSelectField, _extends_1({
100482
100233
  disabled: disabled,
100483
- error: error,
100484
- errorText: errorText,
100485
- helperIcon: helperIcon,
100486
- helperText: helperText,
100487
100234
  id: idSelect,
100488
100235
  label: label,
100236
+ hideCheckbox: true,
100237
+ hiSelectableListProps: hiSelectableListProps,
100489
100238
  name: 'selectedPreset',
100490
100239
  options: this.options,
100491
100240
  onChange: this.handleSelectChange('selectedPreset'),
@@ -100505,19 +100254,26 @@
100505
100254
  'grid-sm-8': classes.smRangePicker
100506
100255
  }
100507
100256
  }, React__default.createElement(HiDateRangePicker$1, _extends_1({
100257
+ key: this.state.key,
100508
100258
  classes: {
100509
100259
  root: classes.dateRangePicker
100510
100260
  },
100511
100261
  id: idRange,
100512
- from: from || defaultFrom,
100513
- to: to || defaultTo,
100262
+ from: from,
100263
+ to: to,
100514
100264
  enableTime: enableTime,
100515
100265
  onChange: onChange,
100266
+ toError: toError,
100267
+ fromError: fromError,
100268
+ minimumDate: minimumDate,
100269
+ errorText: null,
100516
100270
  onReset: this.handleReset,
100517
100271
  disabled: disabled || selectedPreset !== 'custom',
100518
100272
  translations: translations,
100519
- staticPosition: staticPosition
100520
- }, props))));
100273
+ staticPosition: staticPosition,
100274
+ onBlur: this.onBlur,
100275
+ hasSelector: true
100276
+ }, props)))));
100521
100277
  }
100522
100278
  }], [{
100523
100279
  key: "getDerivedStateFromProps",
@@ -100551,7 +100307,8 @@
100551
100307
  quarter: 'Quarter',
100552
100308
  week: 'Week',
100553
100309
  short_week: 'W',
100554
- short_quarter: 'Q',
100310
+ yearAndMonth: 'YYYY[-]MM',
100311
+ yearAndQuarter: 'YYYY[-Q]Q',
100555
100312
  year: 'Year',
100556
100313
  days: 'days',
100557
100314
  custom_period: 'Custom Period',
@@ -100564,7 +100321,13 @@
100564
100321
  previous_month: 'Previous Month',
100565
100322
  current_quarter: 'Current Quarter',
100566
100323
  previous_quarter: 'Previous Quarter',
100567
- current_year: 'Current Year'
100324
+ current_year: 'Current Year',
100325
+ invalid_format: 'The date format is not valid',
100326
+ to_superior_from: 'Date from cannot be greater than date to',
100327
+ date_superior_max_date: 'Date from cannot be greater than %s',
100328
+ date_inferior_min_date: 'Date from cannot be before than %s',
100329
+ missing_date_from: 'Missing date from',
100330
+ missing_date_to: 'Missing date to'
100568
100331
  }
100569
100332
  };
100570
100333
  HiDateRangeSelector.propTypes = {
@@ -100601,7 +100364,7 @@
100601
100364
  /**
100602
100365
  * Texte de l'erreur
100603
100366
  */
100604
- errorText: propTypes.string,
100367
+ errorText: propTypes.oneOfType([propTypes.string, propTypes.bool]),
100605
100368
 
100606
100369
  /**
100607
100370
  * Format de date utilisé
@@ -100643,6 +100406,11 @@
100643
100406
  */
100644
100407
  locale: propTypes.string,
100645
100408
 
100409
+ /**
100410
+ * Date minimale sélectionnable
100411
+ */
100412
+ minimumDate: propTypes.instanceOf(Date).isRequired,
100413
+
100646
100414
  /**
100647
100415
  * Callback à la sélection d'une date
100648
100416
  */