@hipay/hipay-material-ui 3.3.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -65,141 +65,147 @@ function (_React$PureComponent) {
65
65
  _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(HiCellBuilder)).call.apply(_getPrototypeOf2, [this].concat(args)));
66
66
 
67
67
  _this.createCell = function (cell, rowdata, locale) {
68
- if (rowdata.datas[cell.colId]) {
69
- var datacell = rowdata.datas[cell.colId];
68
+ if (typeof rowdata[cell.colId] !== 'undefined' || typeof rowdata.datas[cell.colId] !== 'undefined') {
69
+ var datacell = typeof rowdata[cell.colId] !== 'undefined' ? rowdata[cell.colId] : rowdata.datas[cell.colId];
70
70
 
71
- if (cell.data !== undefined) {
72
- var refproperties = cell.data.find(function (el) {
73
- return el.id === datacell.value;
74
- });
75
-
76
- if (refproperties) {
77
- Object.keys(refproperties).forEach(function (key) {
78
- datacell[key] = refproperties[key];
71
+ if (datacell !== null) {
72
+ if (cell.data !== undefined) {
73
+ var refproperties = cell.data.find(function (el) {
74
+ return el.id === datacell.value;
79
75
  });
80
- } else {
81
- datacell = undefined;
82
- }
83
- }
84
-
85
- if (datacell) {
86
- switch (cell.type) {
87
- case cst.TYPE_NUMERIC:
88
- case cst.TYPE_AMOUNT:
89
- return _react.default.createElement(_CellNumeric.default, {
90
- value: datacell.value,
91
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
92
- precision: cell.precision,
93
- currency: datacell.currency,
94
- locale: datacell.locale || cell.locale || locale
95
- });
96
-
97
- case cst.TYPE_COUNTRY:
98
- return _react.default.createElement(_CellImage.default, {
99
- label: datacell.label,
100
- shortLabel: datacell.id,
101
- path: datacell.img,
102
- size: datacell.size,
103
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
104
- });
105
-
106
- case cst.TYPE_IMAGE:
107
- return _react.default.createElement(_CellImage.default, {
108
- label: datacell.label,
109
- shortLabel: datacell.id,
110
- path: datacell.img,
111
- size: datacell.size || cell.size,
112
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
113
- fallbackImage: datacell.fallbackImage,
114
- title: cell.title ? cell.title(datacell, cell) : datacell.title
115
- });
116
-
117
- case cst.TYPE_RATE:
118
- return _react.default.createElement(_CellRate.default, {
119
- indicator: datacell.indicator,
120
- isPositive: datacell.isPositive,
121
- locale: datacell.locale || cell.locale || locale,
122
- value: datacell.value,
123
- trendchip: datacell.trendchip,
124
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
125
- });
126
-
127
- case cst.TYPE_ADDRESS:
128
- return _react.default.createElement(_CellAddress.default, {
129
- city: datacell.city,
130
- country: datacell.country,
131
- isoCountry: datacell.isoCountry,
132
- name: datacell.name,
133
- postalCode: datacell.postalCode,
134
- streetAddress: datacell.streetAddress,
135
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
136
- });
137
76
 
138
- case cst.TYPE_DATE:
139
- return _react.default.createElement(_CellDate.default, {
140
- date: datacell.date,
141
- displayTime: datacell.displayTime,
142
- formatShort: datacell.formatShort,
143
- locale: datacell.locale || cell.precision || locale,
144
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
145
- });
146
-
147
- case cst.TYPE_ICON:
148
- return _react.default.createElement(_CellIcon.default, {
149
- align: cell.align,
150
- color: datacell.color,
151
- icon: datacell.icon,
152
- label: datacell.label,
153
- onClick: datacell.handleClick,
154
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
155
- size: cell.size
156
- });
157
-
158
- case cst.TYPE_THIRD_PARTY_SECURITY:
159
- return _react.default.createElement(_CellIcon.default, {
160
- color: datacell.color,
161
- icon: datacell.icon,
162
- label: datacell.label,
163
- view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
164
- size: cell.size
165
- });
166
-
167
- case cst.TYPE_SENTINEL:
168
- return _react.default.createElement(_CellSentinel.default, {
169
- color: datacell.color,
170
- label: datacell.label,
171
- letter: datacell.label2,
172
- active: datacell.active,
173
- reviewer: datacell.reviewer,
174
- outlined: datacell.outlined
175
- });
176
-
177
- case cst.TYPE_SCORE:
178
- return _react.default.createElement(_CellSentinelScore.default, {
179
- value: datacell.value,
180
- result: datacell.result,
181
- active: datacell.active
182
- });
183
-
184
- case cst.TYPE_PIN_TO_ACTION:
185
- return _react.default.createElement(_CellPinToAction.default, {
186
- number: datacell.number // eslint-disable-next-line react/jsx-handler-names
187
- ,
188
- onClick: datacell.onClick
77
+ if (refproperties) {
78
+ Object.keys(refproperties).forEach(function (key) {
79
+ datacell[key] = refproperties[key];
189
80
  });
81
+ } else {
82
+ datacell = undefined;
83
+ }
84
+ }
190
85
 
191
- case cst.TYPE_ACCOUNT_NUMBER:
192
- case cst.TYPE_CUSTOMER_ACCOUNT_NUMBER:
193
- default:
194
- return _react.default.createElement(_CellTextStyled.default, {
195
- active: datacell.active,
196
- color: datacell.color,
197
- label: datacell.label,
198
- isButton: datacell.isButton,
199
- onClick: datacell.handleClick,
200
- title: cell.title ? cell.title(datacell, cell) : datacell.title,
201
- value: datacell.value
202
- });
86
+ if (datacell) {
87
+ switch (cell.type) {
88
+ case cst.TYPE_NUMERIC:
89
+ case cst.TYPE_AMOUNT:
90
+ return _react.default.createElement(_CellNumeric.default, {
91
+ value: datacell.value,
92
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
93
+ precision: cell.precision,
94
+ currency: datacell.currency,
95
+ locale: datacell.locale || cell.locale || locale,
96
+ isButton: datacell.isButton,
97
+ onClick: datacell.handleClick,
98
+ rowId: rowdata.rowId
99
+ });
100
+
101
+ case cst.TYPE_COUNTRY:
102
+ return _react.default.createElement(_CellImage.default, {
103
+ label: datacell.label,
104
+ shortLabel: datacell.id,
105
+ path: datacell.img,
106
+ size: datacell.size,
107
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
108
+ });
109
+
110
+ case cst.TYPE_IMAGE:
111
+ return _react.default.createElement(_CellImage.default, {
112
+ label: datacell.label,
113
+ shortLabel: datacell.id,
114
+ path: datacell.img,
115
+ size: datacell.size || cell.size,
116
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
117
+ fallbackImage: datacell.fallbackImage,
118
+ title: cell.title ? cell.title(datacell, cell) : datacell.title
119
+ });
120
+
121
+ case cst.TYPE_RATE:
122
+ return _react.default.createElement(_CellRate.default, {
123
+ indicator: datacell.indicator,
124
+ isPositive: datacell.isPositive,
125
+ locale: datacell.locale || cell.locale || locale,
126
+ value: datacell.value,
127
+ trendchip: datacell.trendchip,
128
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
129
+ });
130
+
131
+ case cst.TYPE_ADDRESS:
132
+ return _react.default.createElement(_CellAddress.default, {
133
+ city: datacell.city,
134
+ country: datacell.country,
135
+ isoCountry: datacell.isoCountry,
136
+ name: datacell.name,
137
+ postalCode: datacell.postalCode,
138
+ streetAddress: datacell.streetAddress,
139
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
140
+ });
141
+
142
+ case cst.TYPE_DATE:
143
+ return _react.default.createElement(_CellDate.default, {
144
+ date: datacell.date,
145
+ displayTime: datacell.displayTime,
146
+ formatShort: datacell.formatShort,
147
+ locale: datacell.locale || cell.precision || locale,
148
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type]
149
+ });
150
+
151
+ case cst.TYPE_ICON:
152
+ return _react.default.createElement(_CellIcon.default, {
153
+ align: cell.align,
154
+ color: datacell.color,
155
+ icon: datacell.icon,
156
+ label: datacell.label,
157
+ onClick: datacell.handleClick,
158
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
159
+ size: cell.size
160
+ });
161
+
162
+ case cst.TYPE_THIRD_PARTY_SECURITY:
163
+ return _react.default.createElement(_CellIcon.default, {
164
+ color: datacell.color,
165
+ icon: datacell.icon,
166
+ label: datacell.label,
167
+ view: cell.view ? cell.view : cst.DEFAULT_VIEWS[cell.type],
168
+ size: cell.size
169
+ });
170
+
171
+ case cst.TYPE_SENTINEL:
172
+ return _react.default.createElement(_CellSentinel.default, {
173
+ color: datacell.color,
174
+ label: datacell.label,
175
+ letter: datacell.label2,
176
+ active: datacell.active,
177
+ reviewer: datacell.reviewer,
178
+ outlined: datacell.outlined
179
+ });
180
+
181
+ case cst.TYPE_SCORE:
182
+ return _react.default.createElement(_CellSentinelScore.default, {
183
+ value: datacell.value,
184
+ result: datacell.result,
185
+ active: datacell.active
186
+ });
187
+
188
+ case cst.TYPE_PIN_TO_ACTION:
189
+ return _react.default.createElement(_CellPinToAction.default, {
190
+ number: datacell.number // eslint-disable-next-line react/jsx-handler-names
191
+ ,
192
+ onClick: datacell.onClick
193
+ });
194
+
195
+ case cst.TYPE_ACCOUNT_NUMBER:
196
+ case cst.TYPE_CUSTOMER_ACCOUNT_NUMBER:
197
+ default:
198
+ return _react.default.createElement(_CellTextStyled.default, {
199
+ active: datacell.active,
200
+ color: datacell.color,
201
+ label: datacell.label,
202
+ isButton: datacell.isButton,
203
+ onClick: datacell.handleClick,
204
+ title: cell.title ? cell.title(datacell, cell) : datacell.title,
205
+ value: datacell.value,
206
+ align: cell.align
207
+ });
208
+ }
203
209
  }
204
210
  }
205
211
  }
@@ -43,11 +43,11 @@ function (_React$PureComponent) {
43
43
  dense = _this$props.dense,
44
44
  locale = _this$props.locale,
45
45
  onClick = _this$props.onClick;
46
- return _react.default.createElement(_TableBody.default, null, data.map(function (n) {
46
+ return _react.default.createElement(_TableBody.default, null, data.map(function (n, index) {
47
47
  return _react.default.createElement(_HiTableRow.default, {
48
48
  columns: columns,
49
49
  rowdata: n,
50
- key: n.rowId,
50
+ key: n.rowId || index,
51
51
  onClick: onClick,
52
52
  dense: dense,
53
53
  locale: locale
@@ -19,6 +19,8 @@ var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/es
19
19
 
20
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
21
21
 
22
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
23
+
22
24
  var _react = _interopRequireDefault(require("react"));
23
25
 
24
26
  var _styles = require("@material-ui/core/styles");
@@ -40,14 +42,16 @@ var styles = function styles(theme) {
40
42
  cursor: 'inherit',
41
43
  borderBottom: "solid 1px ".concat(theme.palette.divider)
42
44
  },
43
- cell: {
45
+ cell: (0, _objectSpread2.default)({
44
46
  border: 'none',
45
47
  paddingRight: '13px',
46
48
  paddingLeft: '13px',
47
49
  overflow: 'hidden',
48
50
  textOverflow: 'ellipsis',
49
- whiteSpace: 'nowrap'
50
- },
51
+ whiteSpace: 'nowrap',
52
+ fontWeight: theme.typography.fontWeightLight,
53
+ color: '#000000'
54
+ }, theme.typography.b4),
51
55
  icon: {
52
56
  color: '#00ADE9'
53
57
  }
@@ -23,6 +23,8 @@ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/hel
23
23
 
24
24
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
25
25
 
26
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
27
+
26
28
  var _react = _interopRequireDefault(require("react"));
27
29
 
28
30
  var _keycode = _interopRequireDefault(require("keycode"));
@@ -51,14 +53,14 @@ var styles = function styles(theme) {
51
53
  clickableRow: {
52
54
  cursor: 'pointer'
53
55
  },
54
- cell: {
56
+ cell: (0, _objectSpread2.default)({
55
57
  border: 'none',
56
58
  padding: '0px 13px',
57
59
  minHeight: '32px',
58
60
  maxHeight: '40px',
59
61
  fontWeight: theme.typography.fontWeightRegular,
60
62
  lineHeight: 'unset'
61
- }
63
+ }, theme.typography.b3)
62
64
  };
63
65
  };
64
66
 
@@ -23,10 +23,15 @@ var _styles = require("@material-ui/core/styles");
23
23
 
24
24
  var _helpers = require("../utils/helpers");
25
25
 
26
+ var _HiButton = _interopRequireDefault(require("../HiButton"));
27
+
26
28
  var styles = function styles() {
27
29
  return {
28
30
  wrapper: {
29
31
  textAlign: 'right'
32
+ },
33
+ button: {
34
+ padding: '1px 5px'
30
35
  }
31
36
  };
32
37
  };
@@ -56,7 +61,10 @@ function (_React$PureComponent) {
56
61
  locale = _this$props.locale,
57
62
  currency = _this$props.currency,
58
63
  view = _this$props.view,
59
- precision = _this$props.precision;
64
+ precision = _this$props.precision,
65
+ isButton = _this$props.isButton,
66
+ onClick = _this$props.onClick,
67
+ rowId = _this$props.rowId;
60
68
  var displayedValue = '';
61
69
  var title = '';
62
70
 
@@ -68,10 +76,21 @@ function (_React$PureComponent) {
68
76
  title = (0, _helpers.formatNumber)(value, 'l', locale, precision);
69
77
  }
70
78
 
79
+ var content = displayedValue;
80
+
81
+ if (isButton) {
82
+ content = _react.default.createElement(_HiButton.default, {
83
+ onClick: onClick(rowId),
84
+ size: "small",
85
+ className: classes.button,
86
+ variant: "text"
87
+ }, displayedValue);
88
+ }
89
+
71
90
  return _react.default.createElement("div", {
72
91
  className: classes.wrapper,
73
92
  title: title
74
- }, displayedValue);
93
+ }, content);
75
94
  }
76
95
  }]);
77
96
  return CellNumeric;
@@ -141,7 +141,8 @@ function (_React$Component) {
141
141
  classes = _this$props.classes,
142
142
  label = _this$props.label,
143
143
  ellipsis = _this$props.ellipsis,
144
- color = _this$props.color;
144
+ color = _this$props.color,
145
+ title = _this$props.title;
145
146
  var start;
146
147
  var end;
147
148
  var valueElement = '';
@@ -162,7 +163,8 @@ function (_React$Component) {
162
163
  valueElement = _react.default.createElement("div", {
163
164
  ref: function ref(div) {
164
165
  _this2.cellText = div;
165
- }
166
+ },
167
+ title: title
166
168
  }, _react.default.createElement("span", {
167
169
  className: classes.rightEllipsisSpan
168
170
  }, "".concat(start, " ")), _react.default.createElement("span", {
@@ -177,7 +179,8 @@ function (_React$Component) {
177
179
  valueElement = _react.default.createElement("div", {
178
180
  ref: function ref(div) {
179
181
  _this2.cellText = div;
180
- }
182
+ },
183
+ title: title
181
184
  }, _react.default.createElement("span", {
182
185
  className: classes.noEllipsisSpan
183
186
  }, start), _react.default.createElement("span", {
@@ -194,7 +197,8 @@ function (_React$Component) {
194
197
  className: classes.leftEllipsisSpan,
195
198
  style: {
196
199
  width: '100%'
197
- }
200
+ },
201
+ title: title
198
202
  }, valueString);
199
203
  break;
200
204
 
@@ -208,7 +212,8 @@ function (_React$Component) {
208
212
  className: classes.rightEllipsisSpan,
209
213
  style: {
210
214
  width: '100%'
211
- }
215
+ },
216
+ title: title
212
217
  }, valueString);
213
218
  break;
214
219
  }
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  var _HiColoredLabel = _interopRequireDefault(require("../HiColoredLabel"));
@@ -45,9 +47,11 @@ var styleButton = {
45
47
  * @param label
46
48
  * @param color
47
49
  * @param isButton
50
+ * @param onClick
48
51
  * @param value
49
52
  * @param active
50
53
  * @param title
54
+ * @param align
51
55
  * @returns {*}
52
56
  * @constructor
53
57
  */
@@ -62,7 +66,9 @@ var CellTextStyled = function CellTextStyled(_ref) {
62
66
  _ref$active = _ref.active,
63
67
  active = _ref$active === void 0 ? false : _ref$active,
64
68
  _ref$title = _ref.title,
65
- title = _ref$title === void 0 ? '' : _ref$title;
69
+ title = _ref$title === void 0 ? '' : _ref$title,
70
+ _ref$align = _ref.align,
71
+ align = _ref$align === void 0 ? 'left' : _ref$align;
66
72
  var valueString = label ? label.toString() : value.toString();
67
73
 
68
74
  if (isButton) {
@@ -75,6 +81,16 @@ var CellTextStyled = function CellTextStyled(_ref) {
75
81
  }, valueString);
76
82
  }
77
83
 
84
+ if (align === 'right') {
85
+ styleRoot = (0, _objectSpread2.default)({}, styleRoot, {
86
+ textAlign: 'right'
87
+ });
88
+ } else {
89
+ styleRoot = (0, _objectSpread2.default)({}, styleRoot, {
90
+ textAlign: 'left'
91
+ });
92
+ }
93
+
78
94
  return _react.default.createElement("div", {
79
95
  style: styleRoot,
80
96
  title: title || valueString
@@ -82,7 +98,8 @@ var CellTextStyled = function CellTextStyled(_ref) {
82
98
  style: styleColorLabel,
83
99
  label: valueString,
84
100
  color: color,
85
- active: active
101
+ active: active,
102
+ fontSize: 13
86
103
  }) : _react.default.createElement("div", {
87
104
  style: styleLabel
88
105
  }, valueString));
@@ -173,6 +173,27 @@ var HiChip = function HiChip(props) {
173
173
  }
174
174
  }
175
175
 
176
+ var chipLabelIcon;
177
+
178
+ if (labelIcon) {
179
+ var _iconProps = {
180
+ className: classes.icon,
181
+ id: "".concat(id, "-labelIcon"),
182
+ size: iconSize,
183
+ title: titleIcon,
184
+ tabIndex: -1
185
+ };
186
+
187
+ if (typeof labelIcon === 'string') {
188
+ chipLabelIcon = _react.default.createElement(_HiIcon.default, (0, _extends2.default)({
189
+ icon: labelIcon
190
+ }, _iconProps));
191
+ } else if ((0, _typeof2.default)(labelIcon) === 'object') {
192
+ chipLabelIcon = (0, _objectSpread2.default)({}, labelIcon);
193
+ chipLabelIcon.props = (0, _objectSpread2.default)({}, _iconProps);
194
+ }
195
+ }
196
+
176
197
  return _react.default.createElement("div", {
177
198
  id: id,
178
199
  role: 'button',
@@ -198,14 +219,7 @@ var HiChip = function HiChip(props) {
198
219
  }
199
220
  },
200
221
  title: titleImg
201
- }), labelIcon && _react.default.createElement(_HiIcon.default, {
202
- className: (0, _classnames.default)(classes.icon),
203
- id: "".concat(id, "-labelIcon"),
204
- icon: labelIcon,
205
- size: iconSize,
206
- title: titleIcon,
207
- tabIndex: -1
208
- }), onPrevious && _react.default.createElement(_HiIcon.default, {
222
+ }), labelIcon && chipLabelIcon, onPrevious && _react.default.createElement(_HiIcon.default, {
209
223
  className: (0, _classnames.default)(classes.navigate),
210
224
  id: "".concat(id, "-previous"),
211
225
  icon: "arrow_left",
@@ -49,7 +49,7 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
49
49
  borderBottom: '1px solid #E3E6E7',
50
50
  height: 48,
51
51
  minHeight: 48,
52
- padding: '0 0 0 8px',
52
+ padding: 0,
53
53
  '&$expanded': {
54
54
  minHeight: 48
55
55
  }
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.styles = void 0;
8
+ exports.default = exports.useStyles = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/extends"));
11
11
 
@@ -24,81 +24,56 @@ var _colorManipulator = require("@material-ui/core/styles/colorManipulator");
24
24
  var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
25
25
 
26
26
  // @inheritedComponent IconButton
27
- var styles = function styles(theme) {
27
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
28
28
  return {
29
29
  label: {},
30
- positive: {
31
- color: theme.palette.positive.main,
32
- '&:hover': {
33
- backgroundColor: (0, _colorManipulator.fade)(theme.palette.positive.main, theme.palette.action.hoverOpacity),
34
- // Reset on touch devices, it doesn't add specificity
35
- '@media (hover: none)': {
36
- backgroundColor: 'transparent'
37
- }
38
- }
39
- },
40
- negative: {
41
- color: theme.palette.negative.main,
42
- '&:hover': {
43
- backgroundColor: (0, _colorManipulator.fade)(theme.palette.negative.main, theme.palette.action.hoverOpacity),
44
- // Reset on touch devices, it doesn't add specificity
45
- '@media (hover: none)': {
46
- backgroundColor: 'transparent'
47
- }
48
- }
49
- },
50
- middle: {
51
- color: theme.palette.middle.main,
52
- '&:hover': {
53
- backgroundColor: (0, _colorManipulator.fade)(theme.palette.middle.main, theme.palette.action.hoverOpacity),
54
- // Reset on touch devices, it doesn't add specificity
55
- '@media (hover: none)': {
56
- backgroundColor: 'transparent'
57
- }
30
+ rootCustomColor: function rootCustomColor(props) {
31
+ var color;
32
+
33
+ if (theme.palette[props.color]) {
34
+ color = theme.palette[props.color].main;
35
+ } else if (props.color.charAt(0) === "#") {
36
+ color = props.color;
58
37
  }
59
- },
60
- neutral: {
61
- color: theme.palette.neutral.main,
62
- '&:hover': {
63
- backgroundColor: (0, _colorManipulator.fade)(theme.palette.neutral.main, theme.palette.action.hoverOpacity),
64
- // Reset on touch devices, it doesn't add specificity
65
- '@media (hover: none)': {
66
- backgroundColor: 'transparent'
38
+
39
+ if (!color) return {};
40
+ return {
41
+ color: color,
42
+ '&:hover': {
43
+ backgroundColor: (0, _colorManipulator.fade)(color, theme.palette.action.hoverOpacity),
44
+ // Reset on touch devices, it doesn't add specificity
45
+ '@media (hover: none)': {
46
+ backgroundColor: 'transparent'
47
+ }
67
48
  }
68
- }
49
+ };
69
50
  }
70
51
  };
71
- };
72
-
73
- exports.styles = styles;
52
+ });
53
+ exports.useStyles = useStyles;
74
54
 
75
55
  function HiIconButton(props) {
76
- var _classNames;
77
-
78
56
  var children = props.children,
79
- classes = props.classes,
80
57
  className = props.className,
81
58
  color = props.color,
82
- other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "color"]);
83
- var hcolor = ['positive', 'negative', 'middle', 'neutral'].includes(color) ? 'inherit' : color;
84
- var buttonClassNames = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.positive, color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.negative, color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.middle, color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.neutral, color === 'neutral'), _classNames));
59
+ other = (0, _objectWithoutProperties2.default)(props, ["children", "className", "color"]);
60
+ var classes = useStyles(props);
61
+ var isHexColor = color.charAt(0) === "#";
62
+ var isExtendedColor = ['positive', 'negative', 'middle', 'neutral'].includes(color);
63
+ var isCustomColor = isHexColor || isExtendedColor;
64
+ var rootClassNames = (0, _classnames.default)((0, _defineProperty2.default)({}, classes.rootCustomColor, isCustomColor));
85
65
  return _react.default.createElement(_IconButton.default, (0, _extends2.default)({
86
66
  className: className,
87
67
  classes: {
88
- root: buttonClassNames,
68
+ root: rootClassNames,
89
69
  label: classes.label
90
70
  },
91
- color: hcolor
71
+ color: isCustomColor ? 'inherit' : color
92
72
  }, other), children);
93
73
  }
94
74
 
95
75
  HiIconButton.defaultProps = {
96
76
  color: 'default'
97
77
  };
98
-
99
- var _default = (0, _styles.withStyles)(styles, {
100
- hiComponent: true,
101
- name: 'HmuiHiIconButton'
102
- })(HiIconButton);
103
-
78
+ var _default = HiIconButton;
104
79
  exports.default = _default;