@hipay/hipay-material-ui 1.0.0-beta.13 → 1.0.0-beta.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. package/HiBreadcrumb/HiBreadcrumb.js +28 -22
  2. package/HiBreadcrumb/HiStep.js +96 -60
  3. package/HiBreadcrumb/HiStepConnector.js +91 -26
  4. package/HiBreadcrumb/HiStepContent.js +122 -0
  5. package/HiBreadcrumb/HiStepIcon.js +86 -29
  6. package/HiBreadcrumb/HiStepLabel.js +128 -62
  7. package/HiBreadcrumb/HiStepper.js +5 -24
  8. package/HiDatePicker/HiDateRangePicker.js +69 -28
  9. package/HiDatePicker/HiDateRangeSelector.js +14 -6
  10. package/HiDatePicker/Overlays/CustomOverlayLayout.js +3 -1
  11. package/HiDatePicker/Overlays/Overlay.js +22 -4
  12. package/HiDatePicker/stylesheet.js +7 -0
  13. package/HiForm/HiInput.js +24 -11
  14. package/HiForm/HiSlider.js +399 -0
  15. package/HiForm/index.js +9 -0
  16. package/HiSelect/HiSelect.js +1 -1
  17. package/HiTable/BodyCellBuilder.js +3 -0
  18. package/HiTable/BodyCells/CellIcon.js +26 -19
  19. package/HiTable/BodyCells/CellImage.js +17 -13
  20. package/HiTable/BodyCells/CellNumeric.js +7 -2
  21. package/HiTable/BodyCells/CellSentinel.js +14 -13
  22. package/HiTable/BodyCells/CellThirdPartySecurity.js +43 -19
  23. package/HiTable/HeaderCell.js +3 -2
  24. package/es/HiBreadcrumb/HiBreadcrumb.js +27 -19
  25. package/es/HiBreadcrumb/HiStep.js +55 -54
  26. package/es/HiBreadcrumb/HiStepConnector.js +86 -26
  27. package/es/HiBreadcrumb/HiStepContent.js +63 -0
  28. package/es/HiBreadcrumb/HiStepIcon.js +103 -35
  29. package/es/HiBreadcrumb/HiStepLabel.js +106 -63
  30. package/es/HiBreadcrumb/HiStepper.js +5 -21
  31. package/es/HiDatePicker/HiDateRangePicker.js +65 -27
  32. package/es/HiDatePicker/HiDateRangeSelector.js +15 -7
  33. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +3 -1
  34. package/es/HiDatePicker/Overlays/Overlay.js +18 -4
  35. package/es/HiDatePicker/stylesheet.js +7 -0
  36. package/es/HiForm/HiInput.js +19 -10
  37. package/es/HiForm/HiSlider.js +309 -0
  38. package/es/HiForm/index.js +1 -0
  39. package/es/HiSelect/HiSelect.js +1 -1
  40. package/es/HiTable/BodyCellBuilder.js +3 -0
  41. package/es/HiTable/BodyCells/CellIcon.js +15 -8
  42. package/es/HiTable/BodyCells/CellImage.js +16 -14
  43. package/es/HiTable/BodyCells/CellNumeric.js +6 -2
  44. package/es/HiTable/BodyCells/CellSentinel.js +8 -5
  45. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +40 -15
  46. package/es/HiTable/HeaderCell.js +3 -2
  47. package/es/utils/hiHelpers.js +4 -3
  48. package/index.es.js +1 -1
  49. package/index.js +1 -1
  50. package/package.json +43 -43
  51. package/umd/hipay-material-ui.development.js +7680 -7171
  52. package/umd/hipay-material-ui.production.min.js +5 -5
  53. package/utils/hiHelpers.js +4 -2
@@ -55,6 +55,56 @@ var styles = exports.styles = function styles(theme) {
55
55
  marginLeft: 6,
56
56
  display: 'inline-block'
57
57
  },
58
+ dotAround: {
59
+ border: '2px solid ' + theme.palette.neutral.normal,
60
+ backgroundColor: 'transparent',
61
+ borderRadius: '100%',
62
+ width: 16,
63
+ height: 16,
64
+ marginLeft: 6,
65
+ '&:hover': {
66
+ transform: 'scale(1.2)'
67
+ }
68
+ },
69
+ dot: {
70
+ backgroundColor: theme.palette.neutral.normal,
71
+ borderRadius: '100%',
72
+ width: 6,
73
+ height: 6,
74
+ '&:hover': {
75
+ transform: 'scale(1.2)'
76
+ },
77
+ marginLeft: 8
78
+ },
79
+ activeStep: {
80
+ marginTop: 3,
81
+ marginLeft: 3,
82
+ width: 6,
83
+ height: 6,
84
+ '&:hover': {
85
+ transform: 'scale(1)'
86
+ }
87
+ },
88
+ dotValidated: {
89
+ backgroundColor: theme.palette.status[116],
90
+ border: '2px solid ' + theme.palette.status[116]
91
+ },
92
+ dotRefused: {
93
+ backgroundColor: theme.palette.error.main,
94
+ border: '2px solid ' + theme.palette.error.main
95
+ },
96
+ dotWarning: {
97
+ backgroundColor: theme.palette.middle.normal,
98
+ border: '2px solid ' + theme.palette.middle.normal
99
+ },
100
+ dotActive: {
101
+ backgroundColor: '#00ADE9',
102
+ border: '2px solid ' + '#00ADE9'
103
+ },
104
+ dotLight: {
105
+ backgroundColor: '#FFFFFF',
106
+ border: '2px solid ' + '#FFFFFF'
107
+ },
58
108
  validated: {
59
109
  border: 'solid 2px ' + theme.palette.status[116]
60
110
  },
@@ -65,22 +115,10 @@ var styles = exports.styles = function styles(theme) {
65
115
  border: 'solid 2px ' + theme.palette.middle.normal
66
116
  },
67
117
  active: {
68
- border: '5px solid rgba(255, 0, 0, 0)',
69
- backgroundClip: 'padding-box',
70
- boxShadow: '0 0 0 1px ' + theme.palette.neutral.normal,
71
- backgroundColor: theme.palette.neutral.normal
72
- },
73
- activeValidated: {
74
- boxShadow: '0 0 0 1px ' + theme.palette.status[116],
75
- backgroundColor: theme.palette.status[116]
76
- },
77
- activeRefused: {
78
- boxShadow: '0 0 0 1px ' + theme.palette.negative.normal,
79
- backgroundColor: theme.palette.negative.normal
118
+ border: 'solid 2px #00ADE9'
80
119
  },
81
- activeWarning: {
82
- boxShadow: '0 0 0 1px ' + theme.palette.middle.normal,
83
- backgroundColor: theme.palette.middle.normal
120
+ light: {
121
+ border: 'solid 2px ' + '#FFFFFF'
84
122
  }
85
123
  };
86
124
  };
@@ -96,22 +134,42 @@ var HiStepIcon = function (_React$PureComponent) {
96
134
  (0, _createClass3.default)(HiStepIcon, [{
97
135
  key: 'render',
98
136
  value: function render() {
99
- var _classNames;
137
+ var _classNames, _classNames2, _classNames3;
100
138
 
101
139
  var _props = this.props,
102
140
  active = _props.active,
103
141
  classes = _props.classes,
104
- status = _props.status;
142
+ status = _props.status,
143
+ type = _props.type;
105
144
 
106
145
 
107
- return _react2.default.createElement('div', {
108
- className: (0, _classnames2.default)(classes.circle, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.activeRefused, status === 'refused' && active), (0, _defineProperty3.default)(_classNames, classes.activeValidated, status === 'validated' && active), (0, _defineProperty3.default)(_classNames, classes.activeWarning, status === 'warning' && active), (0, _defineProperty3.default)(_classNames, classes.active, active), (0, _defineProperty3.default)(_classNames, classes.refused, status === 'refused'), (0, _defineProperty3.default)(_classNames, classes.validated, status === 'validated'), (0, _defineProperty3.default)(_classNames, classes.warning, status === 'warning'), _classNames))
109
- });
146
+ var dotAroundClass = (0, _classnames2.default)(classes.dotAround, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.validated, status === 'validated'), (0, _defineProperty3.default)(_classNames, classes.refused, status === 'refused'), (0, _defineProperty3.default)(_classNames, classes.warning, status === 'warning'), (0, _defineProperty3.default)(_classNames, classes.active, status === 'active'), (0, _defineProperty3.default)(_classNames, classes.light, type === 'front-light'), _classNames));
147
+
148
+ var innerDotClass = (0, _classnames2.default)(classes.dot, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.activeStep, active), (0, _defineProperty3.default)(_classNames2, classes.dotValidated, status === 'validated'), (0, _defineProperty3.default)(_classNames2, classes.dotRefused, status === 'refused'), (0, _defineProperty3.default)(_classNames2, classes.dotWarning, status === 'warning'), (0, _defineProperty3.default)(_classNames2, classes.dotActive, status === 'active'), (0, _defineProperty3.default)(_classNames2, classes.dotLight, type === 'front-light'), _classNames2));
149
+
150
+ var dotClassName = (0, _classnames2.default)(classes.circle, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.refused, status === 'refused'), (0, _defineProperty3.default)(_classNames3, classes.validated, status === 'validated'), (0, _defineProperty3.default)(_classNames3, classes.warning, status === 'warning'), (0, _defineProperty3.default)(_classNames3, classes.active, status === 'active'), (0, _defineProperty3.default)(_classNames3, classes.light, type === 'front-light'), _classNames3));
151
+
152
+ return _react2.default.createElement(
153
+ 'div',
154
+ null,
155
+ active && _react2.default.createElement(
156
+ 'div',
157
+ { className: dotAroundClass },
158
+ _react2.default.createElement('div', { className: innerDotClass })
159
+ ),
160
+ !active && _react2.default.createElement('div', { className: dotClassName })
161
+ );
110
162
  }
111
163
  }]);
112
164
  return HiStepIcon;
113
165
  }(_react2.default.PureComponent);
114
166
 
167
+ HiStepIcon.defaultProps = {
168
+ active: false,
169
+ status: 'unreviewed',
170
+ type: 'back',
171
+ classes: {}
172
+ };
115
173
  HiStepIcon.propTypes = process.env.NODE_ENV !== "production" ? {
116
174
  /**
117
175
  * Whether this step is active.
@@ -121,14 +179,13 @@ HiStepIcon.propTypes = process.env.NODE_ENV !== "production" ? {
121
179
  * Useful to extend the style applied to components.
122
180
  */
123
181
  classes: _propTypes2.default.object.isRequired,
124
-
125
- status: _propTypes2.default.oneOf(['refused', 'validated', 'warning', 'unreviewed'])
182
+ /**
183
+ * The type of Breadcrumb used
184
+ */
185
+ type: _propTypes2.default.oneOf(['back', 'front-light', 'front-dark']),
186
+ /**
187
+ * The status of the step in case of back or front-dark type Breadcrumb
188
+ */
189
+ status: _propTypes2.default.oneOf(['refused', 'validated', 'warning', 'unreviewed', 'active'])
126
190
  } : {};
127
-
128
- HiStepIcon.defaultProps = {
129
- active: false,
130
- status: 'unreviewed',
131
- classes: {}
132
- };
133
-
134
191
  exports.default = (0, _styles.withStyles)(styles, { name: 'MuiHiStepIcon' })(HiStepIcon);
@@ -13,6 +13,26 @@ var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProp
13
13
 
14
14
  var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
15
15
 
16
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
19
+
20
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
21
+
22
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23
+
24
+ var _createClass2 = require('babel-runtime/helpers/createClass');
25
+
26
+ var _createClass3 = _interopRequireDefault(_createClass2);
27
+
28
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
29
+
30
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
31
+
32
+ var _inherits2 = require('babel-runtime/helpers/inherits');
33
+
34
+ var _inherits3 = _interopRequireDefault(_inherits2);
35
+
16
36
  var _extends2 = require('babel-runtime/helpers/extends');
17
37
 
18
38
  var _extends3 = _interopRequireDefault(_extends2);
@@ -45,26 +65,45 @@ var styles = exports.styles = function styles(theme) {
45
65
  return {
46
66
  root: {
47
67
  display: 'flex',
48
- alignItems: 'center'
68
+ alignItems: 'center',
69
+ marginTop: -11,
70
+ marginBottom: -5
49
71
  },
50
- test: {
51
- marginLeft: '0 '
72
+ frontRoot: {
73
+ marginTop: -12,
74
+ marginBottom: -7
52
75
  },
53
- vertical: {
54
- marginTop: -10,
76
+ frontDarkRoot: {
77
+ marginTop: -13,
55
78
  marginBottom: -6
56
79
  },
80
+ hipin: {
81
+ marginLeft: 0
82
+ },
57
83
  label: (0, _extends3.default)({
58
84
  display: 'inline-block',
59
85
  marginLeft: 4,
60
86
  fontWeight: theme.typography.fontWeightRegular,
61
87
  color: theme.palette.neutral.normal,
62
- marginBottom: -4
88
+ marginBottom: -4,
89
+ '&:hover': {
90
+ cursor: 'pointer'
91
+ }
63
92
  }, theme.typography.body3),
64
93
  labelContainer: {
65
- marginBottom: 4,
94
+ marginBottom: 4
95
+ },
96
+ largeLabelContainer: {
97
+ maxWidth: 300
98
+ },
99
+ shortLabelContainer: {
66
100
  maxWidth: 160
67
101
  },
102
+ frontLabel: {
103
+ fontSize: 18,
104
+ fontWeight: theme.typography.fontWeightLight,
105
+ marginLeft: 11
106
+ },
68
107
  validated: {
69
108
  color: theme.palette.status[116]
70
109
  },
@@ -72,11 +111,17 @@ var styles = exports.styles = function styles(theme) {
72
111
  color: theme.palette.negative.normal
73
112
  },
74
113
  active: {
114
+ color: '#00ADE9'
115
+ },
116
+ activeStep: {
75
117
  fontWeight: theme.typography.fontWeightMedium
76
118
  },
77
119
  warning: {
78
120
  color: theme.palette.middle.normal
79
121
  },
122
+ light: {
123
+ color: '#FFFFFF'
124
+ },
80
125
  pin: {
81
126
  marginLeft: 4
82
127
  },
@@ -97,56 +142,78 @@ var styles = exports.styles = function styles(theme) {
97
142
  };
98
143
  };
99
144
 
100
- function HiStepLabel(props) {
101
- var _classNames2;
102
-
103
- var active = props.active,
104
- children = props.children,
105
- classes = props.classes,
106
- classNameProp = props.className,
107
- icon = props.icon,
108
- notificationNumber = props.notificationNumber,
109
- orientation = props.orientation,
110
- status = props.status,
111
- other = (0, _objectWithoutProperties3.default)(props, ['active', 'children', 'classes', 'className', 'icon', 'notificationNumber', 'orientation', 'status']);
112
-
113
-
114
- return _react2.default.createElement(
115
- 'span',
116
- (0, _extends3.default)({
117
- className: (0, _classnames2.default)(classes.root, (0, _defineProperty3.default)({}, classes.vertical, orientation === 'vertical'), classNameProp)
118
- }, other),
119
- icon && _react2.default.createElement(
120
- 'span',
121
- { className: classes.iconContainer },
122
- _react2.default.createElement(_HiStepIcon2.default, { active: active, status: status })
123
- ),
124
- _react2.default.createElement(
125
- 'span',
126
- { className: classes.labelContainer },
127
- _react2.default.createElement(
128
- 'div',
129
- {
130
- className: (0, _classnames2.default)(classes.label, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.validated, status === 'validated'), (0, _defineProperty3.default)(_classNames2, classes.refused, status === 'refused'), (0, _defineProperty3.default)(_classNames2, classes.warning, status === 'warning'), (0, _defineProperty3.default)(_classNames2, classes.active, active), (0, _defineProperty3.default)(_classNames2, classes.shortEllipsis, notificationNumber > 0), (0, _defineProperty3.default)(_classNames2, classes.longEllipsis, notificationNumber === 0), _classNames2))
131
- },
132
- children
133
- ),
134
- notificationNumber > 0 && _react2.default.createElement(
145
+ var HiStepLabel = function (_React$PureComponent) {
146
+ (0, _inherits3.default)(HiStepLabel, _React$PureComponent);
147
+
148
+ function HiStepLabel() {
149
+ (0, _classCallCheck3.default)(this, HiStepLabel);
150
+ return (0, _possibleConstructorReturn3.default)(this, (HiStepLabel.__proto__ || (0, _getPrototypeOf2.default)(HiStepLabel)).apply(this, arguments));
151
+ }
152
+
153
+ (0, _createClass3.default)(HiStepLabel, [{
154
+ key: 'render',
155
+ value: function render() {
156
+ var _classNames, _classNames2, _classNames3;
157
+
158
+ var _props = this.props,
159
+ active = _props.active,
160
+ children = _props.children,
161
+ classes = _props.classes,
162
+ classNameProp = _props.className,
163
+ notificationNumber = _props.notificationNumber,
164
+ status = _props.status,
165
+ type = _props.type,
166
+ other = (0, _objectWithoutProperties3.default)(_props, ['active', 'children', 'classes', 'className', 'notificationNumber', 'status', 'type']);
167
+
168
+
169
+ return _react2.default.createElement(
135
170
  'span',
136
- { className: classes.pin },
171
+ (0, _extends3.default)({
172
+ className: (0, _classnames2.default)(classes.root, classNameProp, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.frontRoot, type === 'front-light'), (0, _defineProperty3.default)(_classNames, classes.frontDarkRoot, type === 'front-dark'), _classNames))
173
+ }, other),
174
+ _react2.default.createElement(
175
+ 'span',
176
+ { className: classes.iconContainer },
177
+ _react2.default.createElement(_HiStepIcon2.default, { active: active, status: status, type: type })
178
+ ),
137
179
  _react2.default.createElement(
138
- _HiPins2.default,
180
+ 'span',
139
181
  {
140
- color: props.theme.palette.business.primary.normal,
141
- className: classes.test
182
+ className: (0, _classnames2.default)(classes.labelContainer, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.largeLabelContainer, type !== 'back'), (0, _defineProperty3.default)(_classNames2, classes.shortLabelContainer, type === 'back'), _classNames2))
142
183
  },
143
- notificationNumber
184
+ _react2.default.createElement(
185
+ 'div',
186
+ {
187
+ className: (0, _classnames2.default)(classes.label, (_classNames3 = {}, (0, _defineProperty3.default)(_classNames3, classes.validated, status === 'validated'), (0, _defineProperty3.default)(_classNames3, classes.refused, status === 'refused'), (0, _defineProperty3.default)(_classNames3, classes.warning, status === 'warning'), (0, _defineProperty3.default)(_classNames3, classes.active, status === 'active'), (0, _defineProperty3.default)(_classNames3, classes.light, type === 'front-light'), (0, _defineProperty3.default)(_classNames3, classes.activeStep, active), (0, _defineProperty3.default)(_classNames3, classes.frontLabel, type !== 'back'), (0, _defineProperty3.default)(_classNames3, classes.shortEllipsis, notificationNumber > 0), (0, _defineProperty3.default)(_classNames3, classes.longEllipsis, notificationNumber === 0 && type === 'back'), _classNames3))
188
+ },
189
+ children
190
+ ),
191
+ notificationNumber > 0 && _react2.default.createElement(
192
+ 'span',
193
+ { className: classes.pin },
194
+ _react2.default.createElement(
195
+ _HiPins2.default,
196
+ {
197
+ color: this.props.theme.palette.business.primary.normal,
198
+ className: classes.hipin
199
+ },
200
+ notificationNumber
201
+ )
202
+ )
144
203
  )
145
- )
146
- )
147
- );
148
- }
204
+ );
205
+ }
206
+ }]);
207
+ return HiStepLabel;
208
+ }(_react2.default.PureComponent);
149
209
 
210
+ HiStepLabel.defaultProps = {
211
+ active: false,
212
+ children: '',
213
+ notificationNumber: 0,
214
+ status: 'unreviewed',
215
+ type: 'back'
216
+ };
150
217
  HiStepLabel.propTypes = process.env.NODE_ENV !== "production" ? {
151
218
  /**
152
219
  * @ignore
@@ -166,17 +233,16 @@ HiStepLabel.propTypes = process.env.NODE_ENV !== "production" ? {
166
233
  */
167
234
  className: _propTypes2.default.string,
168
235
  /**
169
- * @ignore
236
+ * The value to be displayed in the HiPin on the right of the label
170
237
  */
171
- orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']),
172
-
173
- status: _propTypes2.default.oneOf(['unreviewed', 'refused', 'validated', 'warning'])
238
+ notificationNumber: _propTypes2.default.number,
239
+ /**
240
+ * 'Unreviewed', 'refused', 'validated' et 'warning' sont les statuts pour tous les types de breadcrumb. 'active' est spécifique au Front dark
241
+ */
242
+ status: _propTypes2.default.oneOf(['unreviewed', 'refused', 'validated', 'warning', 'active']),
243
+ /**
244
+ * The Breadcrumb type
245
+ */
246
+ type: _propTypes2.default.oneOf(['back', 'front-light', 'front-dark'])
174
247
  } : {};
175
-
176
- HiStepLabel.defaultProps = {
177
- active: false,
178
- status: 'unreviewed',
179
- orientation: 'vertical'
180
- };
181
-
182
248
  exports.default = (0, _styles.withStyles)(styles, { name: 'MuiHiStepLabel', withTheme: true })(HiStepLabel);
@@ -9,10 +9,6 @@ var _extends2 = require('babel-runtime/helpers/extends');
9
9
 
10
10
  var _extends3 = _interopRequireDefault(_extends2);
11
11
 
12
- var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
13
-
14
- var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
15
-
16
12
  var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
17
13
 
18
14
  var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
@@ -56,10 +52,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
56
52
  var styles = exports.styles = function styles(theme) {
57
53
  return {
58
54
  root: {
59
- display: 'flex',
60
- padding: theme.spacing.unit * 3,
61
- maxWidth: 160,
62
- flexDirection: 'column'
55
+ width: 340
63
56
  }
64
57
  };
65
58
  };
@@ -78,13 +71,9 @@ var HiStepper = function (_React$PureComponent) {
78
71
  var _props = this.props,
79
72
  activeStep = _props.activeStep,
80
73
  children = _props.children,
81
- classes = _props.classes,
82
- classNameProp = _props.className,
83
- other = (0, _objectWithoutProperties3.default)(_props, ['activeStep', 'children', 'classes', 'className']);
74
+ classes = _props.classes;
84
75
 
85
76
 
86
- var className = (0, _classnames2.default)(classes.root, classNameProp);
87
-
88
77
  var childrenArray = _react2.default.Children.toArray(children.props.children);
89
78
 
90
79
  var steps = childrenArray.map(function (step, index) {
@@ -92,8 +81,8 @@ var HiStepper = function (_React$PureComponent) {
92
81
  });
93
82
 
94
83
  return _react2.default.createElement(
95
- _Paper2.default,
96
- (0, _extends3.default)({ square: true, elevation: 0, className: className }, other),
84
+ 'div',
85
+ { className: classes.root },
97
86
  steps
98
87
  );
99
88
  }
@@ -112,14 +101,6 @@ HiStepper.propTypes = process.env.NODE_ENV !== "production" ? {
112
101
  /**
113
102
  * Two or more `<Step />` components.
114
103
  */
115
- children: _propTypes2.default.node.isRequired,
116
- /**
117
- * Useful to extend the style applied to components.
118
- */
119
- classes: _propTypes2.default.object.isRequired,
120
- /**
121
- * @ignore
122
- */
123
- className: _propTypes2.default.string
104
+ children: _propTypes2.default.node.isRequired
124
105
  } : {};
125
106
  exports.default = (0, _styles.withStyles)(styles, { name: 'MuiHiStepper' })(HiStepper);
@@ -50,6 +50,10 @@ var _DayPickerInput = require('react-day-picker/DayPickerInput');
50
50
 
51
51
  var _DayPickerInput2 = _interopRequireDefault(_DayPickerInput);
52
52
 
53
+ var _classnames = require('classnames');
54
+
55
+ var _classnames2 = _interopRequireDefault(_classnames);
56
+
53
57
  var _withStyles = require('../styles/withStyles');
54
58
 
55
59
  var _withStyles2 = _interopRequireDefault(_withStyles);
@@ -92,6 +96,8 @@ var _stylesheet2 = _interopRequireDefault(_stylesheet);
92
96
 
93
97
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
94
98
 
99
+ // weak
100
+
95
101
  var HiDateRangePicker = function (_React$Component) {
96
102
  (0, _inherits3.default)(HiDateRangePicker, _React$Component);
97
103
 
@@ -100,11 +106,16 @@ var HiDateRangePicker = function (_React$Component) {
100
106
 
101
107
  var _this = (0, _possibleConstructorReturn3.default)(this, (HiDateRangePicker.__proto__ || (0, _getPrototypeOf2.default)(HiDateRangePicker)).call(this));
102
108
 
109
+ _this.handleDayPickerFocus = function (name) {
110
+ return function () {
111
+ _this.setState({ focusedInput: name });
112
+ };
113
+ };
114
+
103
115
  _this.state = {
104
- fromOpenedPanel: 'calendar',
105
116
  fromCurrentMonth: props.from ? props.from : new Date(),
106
- toOpenedPanel: 'calendar',
107
- toCurrentMonth: props.to ? props.to : new Date()
117
+ toCurrentMonth: props.to ? props.to : new Date(),
118
+ focusedInput: ''
108
119
  };
109
120
 
110
121
  _this.handleReset = _this.handleReset.bind(_this);
@@ -128,6 +139,8 @@ var HiDateRangePicker = function (_React$Component) {
128
139
  _this.handleYearClick = _this.handleYearClick.bind(_this);
129
140
  _this.handleYearClickFrom = _this.handleYearClickFrom.bind(_this);
130
141
  _this.handleYearClickTo = _this.handleYearClickTo.bind(_this);
142
+ _this.handleDayPickerFocus = _this.handleDayPickerFocus.bind(_this);
143
+ _this.handleDayPickerBlur = _this.handleDayPickerBlur.bind(_this);
131
144
 
132
145
  _this.openPanel = _this.openPanel.bind(_this);
133
146
 
@@ -324,6 +337,11 @@ var HiDateRangePicker = function (_React$Component) {
324
337
  document.activeElement.blur();
325
338
  }
326
339
  }
340
+ }, {
341
+ key: 'handleDayPickerBlur',
342
+ value: function handleDayPickerBlur() {
343
+ this.setState({ focusedInput: '' });
344
+ }
327
345
  }, {
328
346
  key: 'openPanel',
329
347
  value: function openPanel(name, panel) {
@@ -367,9 +385,10 @@ var HiDateRangePicker = function (_React$Component) {
367
385
  }
368
386
  }, {
369
387
  key: 'renderOverlay',
370
- value: function renderOverlay(name, propsOverlay) {
388
+ value: function renderOverlay(name, propsOverlay, staticPosition) {
371
389
  var rangeOverlayProps = (0, _extends3.default)({}, propsOverlay, {
372
- side: name
390
+ side: name,
391
+ staticPosition: staticPosition
373
392
  });
374
393
 
375
394
  switch (this.state[name + 'OpenedPanel']) {
@@ -387,12 +406,12 @@ var HiDateRangePicker = function (_React$Component) {
387
406
  }, {
388
407
  key: 'renderOverlayFrom',
389
408
  value: function renderOverlayFrom(propsOverlay) {
390
- return this.renderOverlay('from', propsOverlay);
409
+ return this.renderOverlay('from', propsOverlay, this.props.staticPosition);
391
410
  }
392
411
  }, {
393
412
  key: 'renderOverlayTo',
394
413
  value: function renderOverlayTo(propsOverlay) {
395
- return this.renderOverlay('to', propsOverlay);
414
+ return this.renderOverlay('to', propsOverlay, this.props.staticPosition);
396
415
  }
397
416
  }, {
398
417
  key: 'renderMonthPickerOverlay',
@@ -439,7 +458,8 @@ var HiDateRangePicker = function (_React$Component) {
439
458
  }, {
440
459
  key: 'render',
441
460
  value: function render() {
442
- var _this6 = this;
461
+ var _this6 = this,
462
+ _classNames;
443
463
 
444
464
  var _props = this.props,
445
465
  classes = _props.classes,
@@ -457,7 +477,8 @@ var HiDateRangePicker = function (_React$Component) {
457
477
  to = _props.to,
458
478
  translations = _props.translations,
459
479
  id = _props.id,
460
- props = (0, _objectWithoutProperties3.default)(_props, ['classes', 'disabledDays', 'disablePastDays', 'disableFutureDays', 'enableTime', 'labelFrom', 'labelTo', 'locale', 'format', 'from', 'minimumDate', 'onReset', 'to', 'translations', 'id']);
480
+ staticPosition = _props.staticPosition,
481
+ props = (0, _objectWithoutProperties3.default)(_props, ['classes', 'disabledDays', 'disablePastDays', 'disableFutureDays', 'enableTime', 'labelFrom', 'labelTo', 'locale', 'format', 'from', 'minimumDate', 'onReset', 'to', 'translations', 'id', 'staticPosition']);
461
482
  var _state = this.state,
462
483
  fromCurrentMonth = _state.fromCurrentMonth,
463
484
  toCurrentMonth = _state.toCurrentMonth;
@@ -575,32 +596,47 @@ var HiDateRangePicker = function (_React$Component) {
575
596
  id: id + '-to'
576
597
  });
577
598
 
599
+ var fromClass = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.absolute, staticPosition === true && this.state.focusedInput === 'to'), (0, _defineProperty3.default)(_classNames, classes.dayPickerMargin, staticPosition === true && this.state.focusedInput === 'to'), _classNames));
600
+ var toClass = (0, _classnames2.default)(classes.toInput, (0, _defineProperty3.default)({}, classes.absolute, staticPosition === true && this.state.focusedInput === 'from'));
601
+
578
602
  return _react2.default.createElement(
579
603
  'div',
580
604
  { className: classes.root },
581
605
  _react2.default.createElement(
582
606
  'div',
583
- { className: classes.fromInput },
584
- _react2.default.createElement(_DayPickerInput2.default, {
585
- ref: function ref(el) {
586
- _this6.fromInput = el;
587
- },
588
- value: from,
589
- hideOnDayClick: false,
590
- overlayComponent: this.renderOverlayFrom,
591
- dayPickerProps: fromDayPickerProps,
592
- component: _HiForm.HiTextField,
593
- inputProps: fromInputProps,
594
- format: enableTime ? format + ' HH:mm' : format,
595
- formatDate: _moment.formatDate,
596
- parseDate: _moment.parseDate,
597
- onDayChange: this.handleDayChangeFrom,
598
- placeholder: ''
599
- })
607
+ {
608
+ className: classes.fromInput,
609
+ onFocus: this.handleDayPickerFocus('from'),
610
+ onBlur: this.handleDayPickerBlur
611
+ },
612
+ _react2.default.createElement(
613
+ 'div',
614
+ { className: fromClass },
615
+ _react2.default.createElement(_DayPickerInput2.default, {
616
+ ref: function ref(el) {
617
+ _this6.fromInput = el;
618
+ },
619
+ value: from,
620
+ hideOnDayClick: false,
621
+ overlayComponent: this.renderOverlayFrom,
622
+ dayPickerProps: fromDayPickerProps,
623
+ component: _HiForm.HiTextField,
624
+ inputProps: fromInputProps,
625
+ format: enableTime ? format + ' HH:mm' : format,
626
+ formatDate: _moment.formatDate,
627
+ parseDate: _moment.parseDate,
628
+ onDayChange: this.handleDayChangeFrom,
629
+ placeholder: ''
630
+ })
631
+ )
600
632
  ),
601
633
  _react2.default.createElement(
602
634
  'div',
603
- { className: classes.toInput },
635
+ {
636
+ className: toClass,
637
+ onFocus: this.handleDayPickerFocus('to'),
638
+ onBlur: this.handleDayPickerBlur
639
+ },
604
640
  _react2.default.createElement(_DayPickerInput2.default, {
605
641
  ref: function ref(el) {
606
642
  _this6.toInput = el;
@@ -622,12 +658,13 @@ var HiDateRangePicker = function (_React$Component) {
622
658
  }
623
659
  }]);
624
660
  return HiDateRangePicker;
625
- }(_react2.default.Component); // weak
661
+ }(_react2.default.Component);
626
662
 
627
663
  HiDateRangePicker.defaultProps = {
628
664
  disabledDays: [],
629
665
  disablePastDays: false,
630
666
  disableFutureDays: false,
667
+ staticPosition: false,
631
668
  enableTime: false,
632
669
  format: 'YYYY-DD-MM',
633
670
  labelFrom: 'Start',
@@ -703,6 +740,10 @@ HiDateRangePicker.propTypes = process.env.NODE_ENV !== "production" ? {
703
740
  * Callback au reset de l'input
704
741
  */
705
742
  onReset: _propTypes2.default.func,
743
+ /**
744
+ * Si true, le calendrier sera dans une div static plutot que dans une popper absolute
745
+ */
746
+ staticPosition: _propTypes2.default.bool,
706
747
  /**
707
748
  * Date de fin sélectionnée
708
749
  */