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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  */