@hipay/hipay-material-ui 2.0.0-beta.55 → 2.0.0-beta.57

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/HiBreadcrumb/HiBreadcrumb.js +14 -4
  3. package/HiBreadcrumb/HiStep.js +4 -1
  4. package/HiBreadcrumb/HiStepContent.js +0 -1
  5. package/HiBreadcrumb/HiStepLabel.js +12 -4
  6. package/HiBreadcrumb/HiStepper.js +1 -1
  7. package/HiButton/HiButton.js +7 -1
  8. package/HiCell/CellIcon.js +4 -4
  9. package/HiCell/CellImage.js +13 -1
  10. package/HiCell/CellRate.js +6 -3
  11. package/HiCell/CellSentinel.js +7 -10
  12. package/HiCell/CellTextStyled.js +29 -1
  13. package/HiColoredLabel/HiColoredLabel.js +1 -1
  14. package/HiDatePicker/Caption.js +16 -10
  15. package/HiDatePicker/HiDatePicker.js +9 -3
  16. package/HiDatePicker/HiDateRangePicker.js +36 -22
  17. package/HiDatePicker/HiDateRangeSelector.js +75 -21
  18. package/HiDatePicker/NavBar.js +8 -1
  19. package/HiDatePicker/Overlays/CustomOverlayLayout.js +26 -17
  20. package/HiDatePicker/Overlays/CustomOverlayLayoutWithoutFooter.js +123 -0
  21. package/HiDatePicker/Overlays/MonthPickerOverlay.js +4 -4
  22. package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +1 -0
  23. package/HiDatePicker/Overlays/Overlay.js +15 -8
  24. package/HiDatePicker/Overlays/Overlay.spec.js +1 -0
  25. package/HiDatePicker/Overlays/TimePickerOverlay.js +2 -2
  26. package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +1 -0
  27. package/HiDatePicker/Overlays/YearPickerOverlay.js +4 -6
  28. package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +1 -0
  29. package/HiDatePicker/hiLocaleUtils.js +144 -0
  30. package/HiDatePicker/stylesheet.js +33 -7
  31. package/HiDotsStepper/HiDot.js +108 -0
  32. package/HiDotsStepper/HiDotsStepper.js +121 -0
  33. package/HiExpansionPanel/HiExpansionPanel.js +1 -1
  34. package/HiForm/HiAddressField.js +176 -0
  35. package/HiForm/HiFormControl.js +2 -0
  36. package/HiForm/HiInput.js +3 -3
  37. package/HiForm/HiSlider.js +352 -0
  38. package/HiForm/HiUpload.js +204 -0
  39. package/HiForm/HiUploadField.js +182 -0
  40. package/HiForm/HiUploadInput.js +459 -0
  41. package/HiForm/index.js +16 -0
  42. package/HiMap/HiMap.js +345 -0
  43. package/HiMap/HiMapExpand.js +210 -0
  44. package/HiMap/index.js +23 -0
  45. package/HiNotice/HiKPI.js +238 -0
  46. package/HiNotice/HiKPINotice.js +96 -0
  47. package/HiNotice/index.js +23 -0
  48. package/HiPdfReader/HiPdfReader.js +269 -0
  49. package/HiPdfReader/index.js +15 -0
  50. package/HiPin/HiPin.js +1 -1
  51. package/HiRadio/HiRadio.js +74 -0
  52. package/HiRadio/index.js +15 -0
  53. package/HiSelect/HiSelect.js +73 -84
  54. package/HiSelect/HiSuggestSelect.js +35 -4
  55. package/HiSelect/SelectInput.js +9 -1
  56. package/HiSelectNew/HiNestedSelectContent.js +5 -1
  57. package/HiSelectNew/HiSelect.js +260 -179
  58. package/HiSelectNew/HiSelectContent.js +0 -8
  59. package/HiSelectNew/HiSelectInput.js +8 -9
  60. package/HiSelectableList/HiSelectableList.js +39 -4
  61. package/HiSelectableList/HiSelectableListItem.js +81 -38
  62. package/HiTable/HiCellBuilder.js +25 -12
  63. package/HiTable/HiTableHeader.js +16 -17
  64. package/HiTable/constants.js +3 -1
  65. package/README.md +248 -98
  66. package/es/HiBreadcrumb/HiBreadcrumb.js +14 -4
  67. package/es/HiBreadcrumb/HiStep.js +4 -1
  68. package/es/HiBreadcrumb/HiStepContent.js +0 -1
  69. package/es/HiBreadcrumb/HiStepLabel.js +13 -4
  70. package/es/HiBreadcrumb/HiStepper.js +1 -1
  71. package/es/HiButton/HiButton.js +7 -0
  72. package/es/HiCell/CellIcon.js +5 -5
  73. package/es/HiCell/CellImage.js +13 -1
  74. package/es/HiCell/CellRate.js +6 -3
  75. package/es/HiCell/CellSentinel.js +7 -10
  76. package/es/HiCell/CellTextStyled.js +28 -1
  77. package/es/HiColoredLabel/HiColoredLabel.js +1 -1
  78. package/es/HiDatePicker/Caption.js +14 -10
  79. package/es/HiDatePicker/HiDatePicker.js +8 -3
  80. package/es/HiDatePicker/HiDateRangePicker.js +40 -28
  81. package/es/HiDatePicker/HiDateRangeSelector.js +69 -21
  82. package/es/HiDatePicker/ListPicker.js +1 -1
  83. package/es/HiDatePicker/NavBar.js +7 -1
  84. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +30 -19
  85. package/es/HiDatePicker/Overlays/CustomOverlayLayoutWithoutFooter.js +106 -0
  86. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +5 -5
  87. package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +1 -0
  88. package/es/HiDatePicker/Overlays/Overlay.js +16 -9
  89. package/es/HiDatePicker/Overlays/Overlay.spec.js +1 -0
  90. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +2 -2
  91. package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +1 -0
  92. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +4 -6
  93. package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +1 -0
  94. package/es/HiDatePicker/hiLocaleUtils.js +131 -0
  95. package/es/HiDatePicker/stylesheet.js +32 -7
  96. package/es/HiDotsStepper/HiDot.js +66 -0
  97. package/es/HiDotsStepper/HiDotsStepper.js +73 -0
  98. package/es/HiExpansionPanel/HiExpansionPanel.js +1 -1
  99. package/es/HiForm/HiAddressField.js +134 -0
  100. package/es/HiForm/HiFormControl.js +2 -0
  101. package/es/HiForm/HiInput.js +3 -3
  102. package/es/HiForm/HiSlider.js +302 -0
  103. package/es/HiForm/HiUpload.js +158 -0
  104. package/es/HiForm/HiUploadField.js +140 -0
  105. package/es/HiForm/HiUploadInput.js +411 -0
  106. package/es/HiForm/index.js +2 -0
  107. package/es/HiMap/HiMap.js +290 -0
  108. package/es/HiMap/HiMapExpand.js +162 -0
  109. package/es/HiMap/index.js +2 -0
  110. package/es/HiNotice/HiKPI.js +196 -0
  111. package/es/HiNotice/HiKPINotice.js +78 -0
  112. package/es/HiNotice/index.js +2 -0
  113. package/es/HiPdfReader/HiPdfReader.js +214 -0
  114. package/es/HiPdfReader/index.js +1 -0
  115. package/es/HiPin/HiPin.js +1 -1
  116. package/es/HiRadio/HiRadio.js +55 -0
  117. package/es/HiRadio/index.js +1 -0
  118. package/es/HiSelect/HiSelect.js +68 -78
  119. package/es/HiSelect/HiSuggestSelect.js +30 -4
  120. package/es/HiSelect/SelectInput.js +9 -1
  121. package/es/HiSelectNew/HiNestedSelectContent.js +5 -1
  122. package/es/HiSelectNew/HiSelect.js +246 -162
  123. package/es/HiSelectNew/HiSelectContent.js +0 -7
  124. package/es/HiSelectNew/HiSelectInput.js +8 -9
  125. package/es/HiSelectableList/HiSelectableList.js +34 -6
  126. package/es/HiSelectableList/HiSelectableListItem.js +92 -40
  127. package/es/HiTable/HiCellBuilder.js +130 -123
  128. package/es/HiTable/HiTableHeader.js +14 -12
  129. package/es/HiTable/constants.js +1 -0
  130. package/es/index.js +9 -1
  131. package/es/utils/helpers.js +1 -1
  132. package/index.es.js +9 -1
  133. package/index.js +66 -2
  134. package/package.json +5 -2
  135. package/umd/hipay-material-ui.development.js +44450 -40930
  136. package/umd/hipay-material-ui.production.min.js +2 -2
  137. package/utils/helpers.js +1 -1
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
24
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _HiSuggestSelectField = _interopRequireDefault(require("../HiSelect/HiSuggestSelectField"));
31
+
32
+ // @inheritedComponent HiSuggestSelectField
33
+ // OpenStreeMap API url
34
+ var API_URL = 'https://nominatim.openstreetmap.org/search?q=';
35
+ /**
36
+ * Champs input adresse pour formulaire
37
+ */
38
+
39
+ var HiAddressField =
40
+ /*#__PURE__*/
41
+ function (_React$Component) {
42
+ (0, _inherits2.default)(HiAddressField, _React$Component);
43
+
44
+ function HiAddressField(props) {
45
+ var _this;
46
+
47
+ (0, _classCallCheck2.default)(this, HiAddressField);
48
+ _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiAddressField).call(this, props));
49
+
50
+ _this.displaySuggestions = function (predictions) {
51
+ var options = [];
52
+ var isExact = false;
53
+ predictions.forEach(function (prediction) {
54
+ // Si le texte saisi est identique à une des propositions, on estime que la valeur de l'adresse est exacte.
55
+ isExact = prediction.display_name === _this.state.inputValue ? true : isExact;
56
+ options.push({
57
+ id: prediction.place_id,
58
+ label: prediction.display_name,
59
+ labelHighlight: prediction.display_name.replace(new RegExp(_this.value, 'gi'), '<strong>$&</strong>'),
60
+ // Liste des types d'adresse : https://github.com/openstreetmap/Nominatim/blob/80df4d3b560f5b1fd550dcf8cdc09a992b69fee0/settings/partitionedtags.def
61
+ icon: ['amenity', 'building'].includes(prediction.category) ? 'domain' : 'place',
62
+ type: 'icon',
63
+ key: prediction.id
64
+ });
65
+ }, (0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
66
+
67
+ _this.setState({
68
+ options: options,
69
+ isExact: isExact
70
+ });
71
+ };
72
+
73
+ _this.state = {
74
+ inputValue: null,
75
+ options: [],
76
+ isExact: false
77
+ };
78
+ _this.handleSearch = _this.handleSearch.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
79
+ _this.handleSelect = _this.handleSelect.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
80
+ _this.handleReset = _this.handleReset.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
81
+ _this.displaySuggestions = _this.displaySuggestions.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
82
+ return _this;
83
+ }
84
+
85
+ (0, _createClass2.default)(HiAddressField, [{
86
+ key: "handleSearch",
87
+ value: function handleSearch(event) {
88
+ var _this2 = this;
89
+
90
+ if (event.target.value) {
91
+ this.setState({
92
+ inputValue: event.target.value
93
+ });
94
+ fetch("".concat(API_URL, " + ").concat(this.state.inputValue, " + &format=jsonv2&limit=5&bounded=1&dedupe=1&namedetails=1")).then(function (result) {
95
+ return result.json();
96
+ }).then(function (data) {
97
+ _this2.displaySuggestions(data, 'OK');
98
+ });
99
+ } else {
100
+ this.setState({
101
+ options: []
102
+ });
103
+ }
104
+
105
+ this.props.onSearch(event);
106
+ }
107
+ }, {
108
+ key: "handleReset",
109
+ value: function handleReset() {
110
+ this.props.onReset();
111
+ this.setState({
112
+ options: [],
113
+ isExact: false
114
+ });
115
+ }
116
+ }, {
117
+ key: "handleSelect",
118
+ value: function handleSelect(event, value) {
119
+ // Mise à jour de la valeur du champ + la valeur de l'adresse est exacte
120
+ this.setState({
121
+ options: [],
122
+ isExact: true
123
+ });
124
+ this.props.onSelect(event, value.label);
125
+ }
126
+ }, {
127
+ key: "render",
128
+ value: function render() {
129
+ var _this$props = this.props,
130
+ exactOnly = _this$props.exactOnly,
131
+ onSearch = _this$props.onSearch,
132
+ onReset = _this$props.onReset,
133
+ onSelect = _this$props.onSelect,
134
+ otherProps = (0, _objectWithoutProperties2.default)(_this$props, ["exactOnly", "onSearch", "onReset", "onSelect"]);
135
+ var _this$state = this.state,
136
+ options = _this$state.options,
137
+ isExact = _this$state.isExact; // On met le champ en erreur si une adresse exacte est éxigée
138
+ // et si l'adresse courante n'est pas complète
139
+
140
+ var showError = exactOnly && !isExact;
141
+ return _react.default.createElement(_HiSuggestSelectField.default, (0, _extends2.default)({
142
+ error: showError,
143
+ options: options,
144
+ onSearch: this.handleSearch,
145
+ onSelect: this.handleSelect,
146
+ onReset: this.handleReset,
147
+ isExact: isExact
148
+ }, otherProps));
149
+ }
150
+ }]);
151
+ return HiAddressField;
152
+ }(_react.default.Component);
153
+
154
+ HiAddressField.propTypes = process.env.NODE_ENV !== "production" ? {
155
+ /**
156
+ * Est-ce qu'on n'accepte que les adresses trouvées par GMaps
157
+ */
158
+ exactOnly: _propTypes.default.bool,
159
+
160
+ /**
161
+ * Callback function called to empty the field.
162
+ */
163
+ onReset: _propTypes.default.func,
164
+
165
+ /**
166
+ * Callback function called when we write in the input.
167
+ */
168
+ onSearch: _propTypes.default.func,
169
+
170
+ /**
171
+ * Callback function called when a suggestion is selected.
172
+ */
173
+ onSelect: _propTypes.default.func
174
+ } : {};
175
+ var _default = HiAddressField;
176
+ exports.default = _default;
@@ -64,6 +64,8 @@ var styles = function styles(theme) {
64
64
  cursor: 'pointer',
65
65
  zIndex: 1,
66
66
  top: '-5px',
67
+ height: 24,
68
+ width: 24,
67
69
  '&$iconButtonError': {
68
70
  color: theme.palette.negative.main
69
71
  },
package/HiForm/HiInput.js CHANGED
@@ -121,10 +121,10 @@ var styles = function styles(theme) {
121
121
  padding: 0
122
122
  }),
123
123
  inputText: {
124
- height: 39
124
+ height: 40
125
125
  },
126
126
  inputTextArea: {
127
- minHeight: 39,
127
+ minHeight: 40,
128
128
  paddingTop: 8
129
129
  },
130
130
  iconPointer: {
@@ -132,7 +132,7 @@ var styles = function styles(theme) {
132
132
  cursor: 'pointer'
133
133
  },
134
134
  eraseButton: {
135
- height: 39,
135
+ height: 40,
136
136
  width: 40,
137
137
  display: 'inline-block'
138
138
  },
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.styles = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
27
+
28
+ var _HiFormControl = _interopRequireDefault(require("./HiFormControl"));
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _HiIcon = _interopRequireDefault(require("../HiIcon/HiIcon"));
33
+
34
+ var _classnames = _interopRequireDefault(require("classnames"));
35
+
36
+ var styles = function styles(theme) {
37
+ return {
38
+ barContainer: {
39
+ width: '100%',
40
+ position: 'relative',
41
+ margin: '0 7px'
42
+ },
43
+ barHidden: {
44
+ width: '100%',
45
+ opacity: 0,
46
+ position: 'absolute',
47
+ top: '7px',
48
+ zIndex: '2',
49
+ cursor: 'pointer'
50
+ },
51
+ mainContainer: (0, _extends2.default)({}, theme.typography.body1, {
52
+ display: 'flex',
53
+ flexWrap: 'nowrap',
54
+ alignItems: 'center'
55
+ }),
56
+ topContainer: {
57
+ display: 'flex',
58
+ flexWrap: 'nowrap',
59
+ height: '18px'
60
+ },
61
+ bottomContainer: {
62
+ display: 'flex',
63
+ flexWrap: 'nowrap',
64
+ height: '18px'
65
+ },
66
+ barValue: {
67
+ display: 'flex',
68
+ width: '100%',
69
+ height: '4px',
70
+ borderRadius: '2px',
71
+ backgroundColor: theme.palette.primary.main,
72
+ position: 'absolute',
73
+ zIndex: '2'
74
+ },
75
+ arrow: {
76
+ position: 'absolute',
77
+ zIndex: '1',
78
+ transform: 'rotate(-90deg) translate(0%,-50%)',
79
+ transition: 'transform 300ms cubic-bezier(0.4, 0, 0.2, 1)',
80
+ transitionProperty: 'transform color',
81
+ fontSize: 20,
82
+ cursor: 'pointer'
83
+ },
84
+ leftLabel: {
85
+ color: theme.palette.primary.main,
86
+ left: '0px',
87
+ position: 'absolute',
88
+ fontSize: '11px',
89
+ alignSelf: 'flex-end'
90
+ },
91
+ rightLabel: {
92
+ color: '#737373',
93
+ right: '0px',
94
+ position: 'absolute',
95
+ fontSize: '11px',
96
+ alignSelf: 'flex-end'
97
+ },
98
+ textValue: {
99
+ position: 'absolute',
100
+ zIndex: '2'
101
+ },
102
+ trackAfter: {
103
+ backgroundColor: 'gray',
104
+ opacity: 0.24
105
+ },
106
+ focused: {
107
+ fontSize: 24,
108
+ color: theme.palette.primary.dark
109
+ }
110
+ };
111
+ };
112
+ /**
113
+ * HiSlider component
114
+ */
115
+
116
+
117
+ exports.styles = styles;
118
+
119
+ var HiSlider =
120
+ /*#__PURE__*/
121
+ function (_React$Component) {
122
+ (0, _inherits2.default)(HiSlider, _React$Component);
123
+
124
+ function HiSlider(props) {
125
+ var _this;
126
+
127
+ (0, _classCallCheck2.default)(this, HiSlider);
128
+ _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiSlider).call(this, props));
129
+
130
+ _this.handleChange = function (event) {
131
+ _this.props.onChange(parseFloat(event.target.value));
132
+
133
+ _this.textValueWidth = _this.textValue.offsetWidth;
134
+ };
135
+
136
+ _this.handleFocus = function (isFocused) {
137
+ return function () {
138
+ _this.setState({
139
+ focused: isFocused
140
+ });
141
+ };
142
+ };
143
+
144
+ _this.state = {
145
+ focused: false
146
+ };
147
+ return _this;
148
+ }
149
+ /**
150
+ * Measures several components once they are mounted.
151
+ * If the value and a label (left or right) are hovered,
152
+ * we hide this label.
153
+ */
154
+
155
+
156
+ (0, _createClass2.default)(HiSlider, [{
157
+ key: "componentDidMount",
158
+ value: function componentDidMount() {
159
+ this.leftLabelWidth = this.leftLabel.offsetWidth;
160
+ this.rightLabelWidth = this.rightLabel.offsetWidth;
161
+ this.textValueWidth = this.textValue.offsetWidth;
162
+ this.barContainerWidth = this.barContainer.offsetWidth;
163
+
164
+ var _this$getHovering = this.getHovering(),
165
+ hoveringLeft = _this$getHovering.hoveringLeft,
166
+ hoveringRight = _this$getHovering.hoveringRight;
167
+
168
+ if (hoveringLeft || hoveringRight) {
169
+ this.forceUpdate();
170
+ }
171
+ }
172
+ /**
173
+ * Calculates if the labels are hovered.
174
+ */
175
+
176
+ }, {
177
+ key: "getHovering",
178
+ value: function getHovering() {
179
+ var ratio = (this.props.value - this.props.min) / (this.props.max - this.props.min);
180
+ var hoveringLeft = this.leftLabelWidth - (ratio * this.barContainerWidth - ratio * this.textValueWidth) > 0;
181
+ var hoveringRight = this.barContainerWidth - ratio * this.barContainerWidth - this.rightLabelWidth - (1 - ratio) * this.textValueWidth < 0;
182
+ return {
183
+ hoveringLeft: hoveringLeft,
184
+ hoveringRight: hoveringRight
185
+ };
186
+ }
187
+ }, {
188
+ key: "render",
189
+ value: function render() {
190
+ var _this2 = this;
191
+
192
+ var _this$props = this.props,
193
+ classes = _this$props.classes,
194
+ className = _this$props.className,
195
+ min = _this$props.min,
196
+ max = _this$props.max,
197
+ leftLabel = _this$props.leftLabel,
198
+ rightLabel = _this$props.rightLabel,
199
+ step = _this$props.step,
200
+ suffix = _this$props.suffix,
201
+ id = _this$props.id,
202
+ label = _this$props.label,
203
+ value = _this$props.value,
204
+ theme = _this$props.theme;
205
+ var focused = this.state.focused;
206
+ var ratio = (value - min) / (max - min);
207
+ var percentage = ratio * 100;
208
+
209
+ var _this$getHovering2 = this.getHovering(),
210
+ hoveringLeft = _this$getHovering2.hoveringLeft,
211
+ hoveringRight = _this$getHovering2.hoveringRight;
212
+
213
+ var barColor = focused ? theme.palette.primary.dark : theme.palette.primary.main;
214
+ return (// HiFormControl pour l'affichage du label
215
+ _react.default.createElement(_HiFormControl.default, {
216
+ id: id,
217
+ label: label,
218
+ className: className,
219
+ onFocus: this.handleFocus(true),
220
+ onBlur: this.handleFocus(false)
221
+ }, _react.default.createElement("div", {
222
+ className: classes.mainContainer
223
+ }, _react.default.createElement("div", null, min, suffix), _react.default.createElement("div", {
224
+ className: classes.barContainer,
225
+ ref: function ref(div) {
226
+ _this2.barContainer = div;
227
+ }
228
+ }, _react.default.createElement("div", {
229
+ className: classes.topContainer
230
+ }, !hoveringLeft && _react.default.createElement("div", {
231
+ className: classes.leftLabel,
232
+ ref: function ref(div) {
233
+ _this2.leftLabel = div;
234
+ }
235
+ }, leftLabel), _react.default.createElement("div", {
236
+ className: classes.textValue,
237
+ style: {
238
+ left: "".concat(percentage, "%"),
239
+ transform: "translate(-".concat(percentage, "%)")
240
+ },
241
+ ref: function ref(div) {
242
+ _this2.textValue = div;
243
+ }
244
+ }, value, suffix), !hoveringRight && _react.default.createElement("div", {
245
+ className: classes.rightLabel,
246
+ ref: function ref(div) {
247
+ _this2.rightLabel = div;
248
+ }
249
+ }, rightLabel)), _react.default.createElement("div", {
250
+ className: classes.barValue,
251
+ style: {
252
+ background: "linear-gradient(to right, ".concat(barColor, ", ").concat(barColor, " ").concat(percentage, "%, #E0E0E0 ").concat(percentage, "%, #E0E0E0)")
253
+ }
254
+ }), _react.default.createElement("input", {
255
+ type: 'range',
256
+ min: min,
257
+ max: max,
258
+ value: value,
259
+ onChange: this.handleChange,
260
+ className: classes.barHidden,
261
+ step: step
262
+ }), _react.default.createElement("div", {
263
+ className: classes.bottomContainer
264
+ }, _react.default.createElement(_HiIcon.default, {
265
+ className: (0, _classnames.default)(classes.arrow, (0, _defineProperty2.default)({}, classes.focused, focused)),
266
+ icon: 'play_arrow',
267
+ style: {
268
+ left: "".concat(percentage, "%"),
269
+ color: barColor
270
+ }
271
+ }))), _react.default.createElement("div", null, max, suffix)))
272
+ );
273
+ }
274
+ }]);
275
+ return HiSlider;
276
+ }(_react.default.Component);
277
+
278
+ HiSlider.propTypes = process.env.NODE_ENV !== "production" ? {
279
+ /**
280
+ * Useful to extend the style applied to components.
281
+ */
282
+ classes: _propTypes.default.object,
283
+
284
+ /**
285
+ * Classes CSS appliquées.
286
+ */
287
+ className: _propTypes.default.string,
288
+
289
+ /**
290
+ * Id de l'élément input
291
+ */
292
+ id: _propTypes.default.string.isRequired,
293
+
294
+ /**
295
+ * Label du champ
296
+ */
297
+ label: _propTypes.default.string,
298
+
299
+ /**
300
+ * The label to show on the left.
301
+ */
302
+ leftLabel: _propTypes.default.string,
303
+
304
+ /**
305
+ * The Maximum value for the slider.
306
+ */
307
+ max: _propTypes.default.number.isRequired,
308
+
309
+ /**
310
+ * The Minimum value for the slider.
311
+ */
312
+ min: _propTypes.default.number.isRequired,
313
+
314
+ /**
315
+ * Fonction de callback appelée lorsqu'on change la valeur du slider.
316
+ */
317
+ onChange: _propTypes.default.func,
318
+
319
+ /**
320
+ * The label to show on the right
321
+ */
322
+ rightLabel: _propTypes.default.string,
323
+
324
+ /**
325
+ * The step between two selectable values.
326
+ */
327
+ step: _propTypes.default.number,
328
+
329
+ /**
330
+ * The suffix to show after each number.
331
+ */
332
+ suffix: _propTypes.default.string,
333
+
334
+ /**
335
+ * @ignore
336
+ */
337
+ theme: _propTypes.default.object,
338
+
339
+ /**
340
+ * The
341
+ * value of the input.
342
+ */
343
+ value: _propTypes.default.number
344
+ } : {};
345
+
346
+ var _default = (0, _withStyles.default)(styles, {
347
+ hiComponent: true,
348
+ name: 'HiSlider',
349
+ withTheme: true
350
+ })(HiSlider);
351
+
352
+ exports.default = _default;