@hipay/hipay-material-ui 2.0.0-beta.75 → 2.0.0-beta.76

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.
@@ -106,6 +106,8 @@ function HiChip(props) {
106
106
  id,
107
107
  img,
108
108
  label,
109
+ onClick,
110
+ onKeyDown,
109
111
  onPrevious,
110
112
  onNext,
111
113
  onDelete,
@@ -120,13 +122,17 @@ function HiChip(props) {
120
122
  } = props;
121
123
  return React.createElement("div", {
122
124
  id: id,
125
+ role: 'button',
123
126
  className: classNames(classes.root, className, {
124
127
  [classes.leftNavigation]: onPrevious,
125
128
  [classes.rightNavigation]: onNext,
126
129
  [classes.deletable]: onDelete,
127
130
  [classes.leftIcon]: icon
128
131
  }),
129
- title: title
132
+ title: title,
133
+ onClick: onClick,
134
+ onKeyDown: onKeyDown,
135
+ tabIndex: "0"
130
136
  }, icon && React.createElement(HiIcon, {
131
137
  className: classNames(classes.icon, {
132
138
  [classes.iconClickable]: onIconClick
@@ -223,6 +229,11 @@ HiChip.propTypes = process.env.NODE_ENV !== "production" ? {
223
229
  */
224
230
  label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
225
231
 
232
+ /**
233
+ * Fonction de callback au clic sur la chip
234
+ */
235
+ onClick: PropTypes.func,
236
+
226
237
  /**
227
238
  * Fonction de callback au clic sur l'icon close si cancelable = true
228
239
  */
@@ -233,6 +244,11 @@ HiChip.propTypes = process.env.NODE_ENV !== "production" ? {
233
244
  */
234
245
  onIconClick: PropTypes.func,
235
246
 
247
+ /**
248
+ * Fonction de callback à l'appui sur une touche du clavier
249
+ */
250
+ onKeyDown: PropTypes.func,
251
+
236
252
  /**
237
253
  * Fonction de callback au clic sur l'icon next
238
254
  */
@@ -17,11 +17,19 @@ import NavBar from './NavBar';
17
17
  import Weekday from './Weekday';
18
18
  import HiTextField from '../HiForm/HiTextField';
19
19
  import styles from './stylesheet';
20
+ import { isMobile } from 'react-device-detect';
21
+ import classNames from 'classnames';
22
+ import HiFormControl from '../HiForm/HiFormControl';
23
+ import HiDatePickerMobile from './HiDatePickerMobile';
20
24
 
21
25
  class HiDatePicker extends React.Component {
22
26
  constructor(props) {
23
27
  super();
24
28
 
29
+ this.handleInputChange = event => {
30
+ this.props.onChange(event.target.value);
31
+ };
32
+
25
33
  this.handleKeyDown = name => event => {
26
34
  if (event.key === 'Escape' && !event.shiftKey) {
27
35
  this.datePickerInput.hideDayPicker();
@@ -29,164 +37,155 @@ class HiDatePicker extends React.Component {
29
37
  }
30
38
  };
31
39
 
32
- const today = moment().tz(props.timezoneName);
33
- this.state = {
34
- openedPanel: 'calendar',
35
- currentMonth: props.value ? props.value : new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds())
36
- }; // this.formatDate = this.formatDate.bind(this);
37
-
38
- this.handleCalendarClick = this.handleCalendarClick.bind(this);
39
- this.handleClockClick = this.handleClockClick.bind(this);
40
- this.handleMonthClick = this.handleMonthClick.bind(this);
41
- this.handleYearClick = this.handleYearClick.bind(this);
42
- this.handleDayChange = this.handleDayChange.bind(this);
43
- this.handleCurrentMonthChange = this.handleCurrentMonthChange.bind(this);
44
- this.handleReset = this.handleReset.bind(this);
45
- this.handleTimeChange = this.handleTimeChange.bind(this);
46
- this.openPanel = this.openPanel.bind(this);
47
- this.renderCaption = this.renderCaption.bind(this);
48
- this.renderOverlay = this.renderOverlay.bind(this);
49
- this.renderMonthPickerOverlay = this.renderMonthPickerOverlay.bind(this);
50
- this.renderTimePickerOverlay = this.renderTimePickerOverlay.bind(this);
51
- this.renderYearPickerOverlay = this.renderYearPickerOverlay.bind(this);
52
- this.handleInputChange = this.handleInputChange.bind(this);
53
- }
54
-
55
- componentWillUnmount() {
56
- clearTimeout(this.timeout);
57
- }
58
-
59
- handleInputChange(event) {
60
- this.props.onChange(event.target.value);
61
- }
62
-
63
- handleReset() {
64
- const today = moment().tz(this.props.timezoneName);
65
- this.handleCurrentMonthChange(new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds()));
66
- this.props.onReset();
67
- }
40
+ this.handleReset = () => {
41
+ const today = moment().tz(this.props.timezoneName);
42
+ this.handleCurrentMonthChange(new Date(today.year(), today.month(), today.date(), today.hours(), today.minutes(), today.seconds(), today.milliseconds()));
43
+ this.props.onReset();
44
+ };
68
45
 
69
- handleDayChange(day, modifiers) {
70
- if (day) {
71
- if (modifiers.selected) {
72
- // Deselect day
73
- this.props.onChange(undefined);
74
- } else {
75
- // Keep Time if set
76
- if (this.props.enableTime && day !== undefined) {
77
- if (this.props.value) {
78
- day.setHours(this.props.value.getHours(), this.props.value.getMinutes());
79
- } else {
80
- day.setHours(0, 0);
46
+ this.handleDayChange = (day, modifiers) => {
47
+ if (day) {
48
+ if (modifiers.selected) {
49
+ // Deselect day
50
+ this.props.onChange(undefined);
51
+ } else {
52
+ // Keep Time if set
53
+ if (this.props.enableTime && day !== undefined) {
54
+ if (this.props.value) {
55
+ day.setHours(this.props.value.getHours(), this.props.value.getMinutes());
56
+ } else {
57
+ day.setHours(0, 0);
58
+ }
81
59
  }
60
+
61
+ this.props.onChange(day);
82
62
  }
83
63
 
84
- this.props.onChange(day);
64
+ if (day instanceof Date && !this.props.enableTime && modifiers.selected !== true) {
65
+ // Hide overlay & remove focus on input
66
+ document.activeElement.blur();
67
+ } else if (day instanceof Date && this.props.enableTime && modifiers.selected !== true) {
68
+ // Open Time panel after date selection
69
+ this.openPanel('time');
70
+ }
85
71
  }
72
+ };
86
73
 
87
- if (day instanceof Date && !this.props.enableTime && modifiers.selected !== true) {
88
- // Hide overlay & remove focus on input
89
- document.activeElement.blur();
90
- } else if (day instanceof Date && this.props.enableTime && modifiers.selected !== true) {
91
- // Open Time panel after date selection
92
- this.openPanel('time');
74
+ this.handleChangeMobile = event => {
75
+ let date;
76
+
77
+ if (event.target.value) {
78
+ date = new Date(event.target.value);
93
79
  }
94
- }
95
- }
96
80
 
97
- handleCalendarClick() {
98
- this.openPanel('calendar');
99
- }
81
+ this.props.onChange(date);
82
+ };
100
83
 
101
- handleClockClick() {
102
- this.openPanel('time');
103
- }
84
+ this.handleCalendarClick = () => {
85
+ this.openPanel('calendar');
86
+ };
104
87
 
105
- handleMonthClick() {
106
- this.openPanel('months');
107
- }
88
+ this.handleClockClick = () => {
89
+ this.openPanel('time');
90
+ };
108
91
 
109
- handleYearClick() {
110
- this.openPanel('years');
111
- }
92
+ this.handleMonthClick = () => {
93
+ this.openPanel('months');
94
+ };
112
95
 
113
- handleCurrentMonthChange(day) {
114
- this.setState({
115
- // Current Month can't be anterior to minimumDate
116
- currentMonth: day < this.props.minimumDate ? this.props.minimumDate : day,
117
- openedPanel: 'calendar'
118
- });
119
- }
96
+ this.handleYearClick = () => {
97
+ this.openPanel('years');
98
+ };
120
99
 
121
- handleTimeChange(date, precision) {
122
- this.props.onChange(date);
100
+ this.handleCurrentMonthChange = day => {
101
+ this.setState({
102
+ // Current Month can't be anterior to minimumDate
103
+ currentMonth: day < this.props.minimumDate ? this.props.minimumDate : day,
104
+ openedPanel: 'calendar'
105
+ });
106
+ };
123
107
 
124
- if (date instanceof Date && precision === 'minute') {
125
- document.activeElement.blur();
126
- }
127
- }
108
+ this.handleTimeChange = (date, precision) => {
109
+ this.props.onChange(date);
128
110
 
129
- openPanel(panel) {
130
- this.setState({
131
- openedPanel: panel
132
- });
133
- }
111
+ if (date instanceof Date && precision === 'minute') {
112
+ document.activeElement.blur();
113
+ }
114
+ };
134
115
 
135
- renderCaption(propsCaption) {
136
- return React.createElement(Caption, _extends({
137
- onMonthClick: this.handleMonthClick,
138
- onYearClick: this.handleYearClick
139
- }, propsCaption));
140
- }
116
+ this.openPanel = panel => {
117
+ this.setState({
118
+ openedPanel: panel
119
+ });
120
+ };
141
121
 
142
- renderOverlay(propsOverlay) {
143
- switch (this.state.openedPanel) {
144
- case 'time':
145
- return this.renderTimePickerOverlay(propsOverlay);
122
+ this.renderCaption = propsCaption => {
123
+ return React.createElement(Caption, _extends({
124
+ onMonthClick: this.handleMonthClick,
125
+ onYearClick: this.handleYearClick
126
+ }, propsCaption));
127
+ };
146
128
 
147
- case 'months':
148
- return this.renderMonthPickerOverlay(propsOverlay);
129
+ this.renderOverlay = propsOverlay => {
130
+ switch (this.state.openedPanel) {
131
+ case 'time':
132
+ return this.renderTimePickerOverlay(propsOverlay);
149
133
 
150
- case 'years':
151
- return this.renderYearPickerOverlay(propsOverlay);
134
+ case 'months':
135
+ return this.renderMonthPickerOverlay(propsOverlay);
152
136
 
153
- case 'calendar':
154
- default:
155
- return React.createElement(Overlay, propsOverlay);
156
- }
157
- }
137
+ case 'years':
138
+ return this.renderYearPickerOverlay(propsOverlay);
158
139
 
159
- renderMonthPickerOverlay(propsOverlay) {
160
- const monthPickerProps = {
161
- value: this.state.currentMonth,
162
- onChange: this.handleCurrentMonthChange
140
+ case 'calendar':
141
+ default:
142
+ return React.createElement(Overlay, propsOverlay);
143
+ }
163
144
  };
164
- return React.createElement(MonthPickerOverlay, _extends({
165
- key: 'month-picker-overlay'
166
- }, monthPickerProps, propsOverlay));
167
- }
168
145
 
169
- renderTimePickerOverlay(propsOverlay) {
170
- const timePickerProps = {
171
- value: this.props.value,
172
- onChange: this.handleTimeChange,
173
- onCalendarClick: this.handleCalendarClick
146
+ this.renderMonthPickerOverlay = propsOverlay => {
147
+ const monthPickerProps = {
148
+ value: this.state.currentMonth,
149
+ onChange: this.handleCurrentMonthChange
150
+ };
151
+ return React.createElement(MonthPickerOverlay, _extends({
152
+ key: 'month-picker-overlay'
153
+ }, monthPickerProps, propsOverlay));
174
154
  };
175
- return React.createElement(TimePickerOverlay, _extends({
176
- key: 'time-picker-overlay'
177
- }, timePickerProps, propsOverlay));
178
- }
179
155
 
180
- renderYearPickerOverlay(propsOverlay) {
181
- const yearPickerProps = {
182
- value: this.state.currentMonth,
183
- onChange: this.handleCurrentMonthChange,
184
- disableFutureDays: this.props.disableFutureDays,
185
- minimumDate: this.props.minimumDate
156
+ this.renderTimePickerOverlay = propsOverlay => {
157
+ const timePickerProps = {
158
+ value: this.props.value,
159
+ onChange: this.handleTimeChange,
160
+ onCalendarClick: this.handleCalendarClick
161
+ };
162
+ return React.createElement(TimePickerOverlay, _extends({
163
+ key: 'time-picker-overlay'
164
+ }, timePickerProps, propsOverlay));
165
+ };
166
+
167
+ this.renderYearPickerOverlay = propsOverlay => {
168
+ const yearPickerProps = {
169
+ value: this.state.currentMonth,
170
+ onChange: this.handleCurrentMonthChange,
171
+ disableFutureDays: this.props.disableFutureDays,
172
+ minimumDate: this.props.minimumDate
173
+ };
174
+ return React.createElement(YearPickerOverlay, _extends({
175
+ key: 'year-picker-overlay'
176
+ }, yearPickerProps, propsOverlay));
177
+ };
178
+
179
+ const _today = moment().tz(props.timezoneName);
180
+
181
+ this.state = {
182
+ openedPanel: 'calendar',
183
+ currentMonth: props.value ? props.value : new Date(_today.year(), _today.month(), _today.date(), _today.hours(), _today.minutes(), _today.seconds(), _today.milliseconds())
186
184
  };
187
- return React.createElement(YearPickerOverlay, _extends({
188
- key: 'year-picker-overlay'
189
- }, yearPickerProps, propsOverlay));
185
+ }
186
+
187
+ componentWillUnmount() {
188
+ clearTimeout(this.timeout);
190
189
  }
191
190
 
192
191
  render() {
@@ -264,7 +263,7 @@ class HiDatePicker extends React.Component {
264
263
  return React.createElement("div", {
265
264
  className: classes.root,
266
265
  onKeyDown: this.handleKeyDown()
267
- }, React.createElement(DayPickerInput, {
266
+ }, !isMobile ? React.createElement(DayPickerInput, {
268
267
  ref: el => {
269
268
  this.datePickerInput = el;
270
269
  },
@@ -279,6 +278,23 @@ class HiDatePicker extends React.Component {
279
278
  formatDate: MomentLocaleUtils.formatDate,
280
279
  parseDate: MomentLocaleUtils.parseDate,
281
280
  onDayChange: this.handleDayChange
281
+ }) : React.createElement(HiDatePickerMobile, {
282
+ id: this.props.id,
283
+ label: this.props.label,
284
+ required: this.props.required,
285
+ disabled: this.props.disabled,
286
+ error: this.props.error,
287
+ errorText: this.props.errorText,
288
+ helperText: this.props.helperText,
289
+ helperIcon: this.props.helperIcon,
290
+ enableTime: enableTime,
291
+ value: value,
292
+ onChange: this.handleChangeMobile,
293
+ disablePastDays: disablePastDays,
294
+ disableFutureDays: disableFutureDays,
295
+ today: today,
296
+ minimumDate: minimumDate,
297
+ format: enableTime ? `${format} HH:mm` : format
282
298
  }));
283
299
  }
284
300
 
@@ -0,0 +1,89 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectSpread from "@babel/runtime/helpers/objectSpread";
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import HiFormControl from '../HiForm/HiFormControl';
6
+ import moment from 'moment-timezone';
7
+ import styles from './stylesheet';
8
+ import classNames from 'classnames';
9
+ import withStyles from '../styles/withStyles';
10
+ import HiInput from '../HiForm/HiInput';
11
+
12
+ class HiDatePickerMobile extends React.Component {
13
+ render() {
14
+ const {
15
+ classes,
16
+ id,
17
+ label,
18
+ required,
19
+ disabled,
20
+ error,
21
+ errorText,
22
+ helperIcon,
23
+ helperText,
24
+ enableTime,
25
+ value,
26
+ disablePastDays,
27
+ disableFutureDays,
28
+ minimumDate,
29
+ today,
30
+ range,
31
+ format
32
+ } = this.props;
33
+
34
+ const addtionalProps = _objectSpread({}, this.props.disabled && {
35
+ disabled: "disabled"
36
+ });
37
+
38
+ return React.createElement(HiFormControl, {
39
+ id: id,
40
+ label: label,
41
+ required: required,
42
+ disabled: disabled,
43
+ error: error,
44
+ errorText: errorText,
45
+ helperText: helperText,
46
+ helperIcon: helperIcon
47
+ }, React.createElement(HiInput, {
48
+ inputId: id,
49
+ name: id,
50
+ type: "text",
51
+ placeholder: this.props.placeholder,
52
+ value: !value ? '' : moment(value).format(format),
53
+ disabled: disabled
54
+ }), React.createElement("input", _extends({
55
+ className: classNames(classes.root, classes.rootMobile, {
56
+ [classes.mobileRangeRoot]: range
57
+ }),
58
+ id: id,
59
+ type: enableTime ? "datetime-local" : "date",
60
+ value: !value ? '' : enableTime ? moment(value).format('YYYY-MM-DDTHH:mm') : moment(value).format('YYYY-MM-DD'),
61
+ onChange: this.props.onChange,
62
+ min: disablePastDays ? today.format('YYYY-MM-DD') : minimumDate ? moment(minimumDate).format('YYYY-MM-DD') : '',
63
+ max: disableFutureDays ? today.format('YYYY-MM-DD') : ''
64
+ }, addtionalProps)));
65
+ }
66
+
67
+ }
68
+
69
+ HiDatePickerMobile.propTypes = process.env.NODE_ENV !== "production" ? {
70
+ classes: PropTypes.object,
71
+ disabled: PropTypes.bool,
72
+ disableFutureDays: PropTypes.bool,
73
+ disablePastDays: PropTypes.bool,
74
+ enableTime: PropTypes.bool,
75
+ error: PropTypes.bool,
76
+ errorText: PropTypes.string,
77
+ format: PropTypes.string,
78
+ helperIcon: PropTypes.string,
79
+ helperText: PropTypes.string,
80
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
81
+ label: PropTypes.string,
82
+ minimumDate: PropTypes.any,
83
+ onChange: PropTypes.func,
84
+ range: PropTypes.bool,
85
+ required: PropTypes.bool,
86
+ today: PropTypes.any,
87
+ value: PropTypes.any
88
+ } : {};
89
+ export default withStyles(styles)(HiDatePickerMobile);
@@ -19,6 +19,8 @@ import Weekday from './Weekday';
19
19
  import { HiTextField } from '../HiForm';
20
20
  import styles from './stylesheet';
21
21
  import HiFormControl from '../HiForm/HiFormControl';
22
+ import { isMobile } from 'react-device-detect';
23
+ import HiDatePickerMobile from './HiDatePickerMobile';
22
24
 
23
25
  class HiDateRangePicker extends React.Component {
24
26
  constructor(props) {
@@ -136,6 +138,16 @@ class HiDateRangePicker extends React.Component {
136
138
  this.props.onChange(`${name}Error`, error);
137
139
  };
138
140
 
141
+ this.handleChangeMobile = inputName => event => {
142
+ let date;
143
+
144
+ if (event.target.value) {
145
+ date = new Date(event.target.value);
146
+ }
147
+
148
+ this.props.onChange(inputName, date);
149
+ };
150
+
139
151
  this.handleCurrentMonthChange = day => {
140
152
  this.setState({
141
153
  currentMonth: day,
@@ -441,16 +453,16 @@ class HiDateRangePicker extends React.Component {
441
453
  });
442
454
 
443
455
  const toClass = classNames(classes.toInput, {
444
- [classes.absolute]: staticPosition === true && this.state.focusedInput === 'from',
445
- [classes.right4]: staticPosition === true && this.state.focusedInput === 'from'
456
+ [classes.absolute]: !isMobile && staticPosition === true && this.state.focusedInput === 'from',
457
+ [classes.right4]: !isMobile && staticPosition === true && this.state.focusedInput === 'from'
446
458
  });
447
459
  let content = React.createElement("div", {
448
460
  className: classNames(classes.root, classes.rangePickerContainer)
449
461
  }, React.createElement("div", {
450
462
  className: classes.fromInput,
451
- onFocus: () => this.handleDayPickerFocus('from'),
452
- onKeyDown: this.handleKeyDown('from')
453
- }, React.createElement("div", null, React.createElement(DayPickerInput, {
463
+ onFocus: !isMobile ? () => this.handleDayPickerFocus('from') : undefined,
464
+ onKeyDown: !isMobile ? this.handleKeyDown('from') : undefined
465
+ }, React.createElement("div", null, !isMobile ? React.createElement(DayPickerInput, {
454
466
  key: '1',
455
467
  ref: el => {
456
468
  this.fromInput = el;
@@ -466,12 +478,25 @@ class HiDateRangePicker extends React.Component {
466
478
  parseDate: MomentLocaleUtils.parseDate,
467
479
  onDayChange: day => this.handleDayChange('from', day),
468
480
  placeholder: ''
481
+ }) : React.createElement(HiDatePickerMobile, {
482
+ id: this.props.id,
483
+ label: labelFrom,
484
+ range: true,
485
+ required: this.props.required,
486
+ enableTime: enableTime,
487
+ value: from,
488
+ onChange: this.handleChangeMobile('from'),
489
+ disablePastDays: this.props.disablePastDays,
490
+ disableFutureDays: disableFutureDays,
491
+ today: today,
492
+ minimumDate: minimumDate,
493
+ format: enableTime ? `${format} HH:mm` : format
469
494
  }))), React.createElement("div", {
470
495
  className: toClass,
471
- onFocus: () => this.handleDayPickerFocus('to'),
472
- onBlur: () => this.handleDayPickerBlur('to'),
473
- onKeyDown: this.handleKeyDown('to')
474
- }, React.createElement(DayPickerInput, {
496
+ onFocus: !isMobile ? () => this.handleDayPickerFocus('to') : undefined,
497
+ onBlur: !isMobile ? () => this.handleDayPickerBlur('to') : undefined,
498
+ onKeyDown: !isMobile ? this.handleKeyDown('to') : undefined
499
+ }, !isMobile ? React.createElement(DayPickerInput, {
475
500
  key: '1',
476
501
  ref: el => {
477
502
  this.toInput = el;
@@ -486,6 +511,19 @@ class HiDateRangePicker extends React.Component {
486
511
  formatDate: MomentLocaleUtils.formatDate,
487
512
  parseDate: MomentLocaleUtils.parseDate,
488
513
  placeholder: ''
514
+ }) : React.createElement(HiDatePickerMobile, {
515
+ id: this.props.id,
516
+ label: labelTo,
517
+ range: true,
518
+ required: this.props.required,
519
+ enableTime: enableTime,
520
+ value: to,
521
+ onChange: this.handleChangeMobile('to'),
522
+ disablePastDays: this.props.disablePastDays,
523
+ disableFutureDays: disableFutureDays,
524
+ today: today,
525
+ minimumDate: minimumDate,
526
+ format: enableTime ? `${format} HH:mm` : format
489
527
  })));
490
528
 
491
529
  if (!hasSelector) {
@@ -9,6 +9,7 @@ import withStyles from '../styles/withStyles';
9
9
  import HiSelectField from '../HiSelect/HiSelectField';
10
10
  import HiDateRangePicker from './HiDateRangePicker';
11
11
  import HiFormControl from '../HiForm/HiFormControl';
12
+ import { isMobile } from 'react-device-detect';
12
13
  export function findSeparator(format) {
13
14
  let str = '';
14
15
 
@@ -311,7 +312,7 @@ class HiDateRangeSelector extends React.Component {
311
312
  },
312
313
  staticPosition: staticPosition,
313
314
  onSubmit: this.props.onSubmit
314
- }, selectProps))), React.createElement(Grid, {
315
+ }, selectProps))), (isMobile && selectedPreset === 'custom' || !isMobile) && React.createElement(Grid, {
315
316
  item: true,
316
317
  xs: 12,
317
318
  sm: 8,
@@ -8,6 +8,22 @@ export default (theme => ({
8
8
  minWidth: 252,
9
9
  maxWidth: 500
10
10
  },
11
+ rootMobile: _objectSpread({}, theme.typography.b1, {
12
+ backgroundColor: theme.palette.background2,
13
+ borderBottom: '1px solid #E0E0E0',
14
+ borderLeft: 'none',
15
+ borderRight: 'none',
16
+ borderTop: 'none',
17
+ height: 40,
18
+ paddingLeft: 8,
19
+ paddingTop: 10,
20
+ position: 'absolute',
21
+ marginTop: -40,
22
+ opacity: 0
23
+ }),
24
+ mobileRangeRoot: {
25
+ minWidth: '100%'
26
+ },
11
27
  fromInput: {
12
28
  position: 'relative',
13
29
  display: 'inline-block',