react-color
Version:
A Collection of Color Pickers from Sketch, Photoshop, Chrome & more
133 lines (121 loc) • 3.28 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CompactFields = undefined;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactcss = require('reactcss');
var _reactcss2 = _interopRequireDefault(_reactcss);
var _common = require('../common');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var CompactFields = exports.CompactFields = function CompactFields(_ref) {
var hex = _ref.hex,
rgb = _ref.rgb,
onChange = _ref.onChange;
var styles = (0, _reactcss2.default)({
'default': {
fields: {
display: 'flex',
paddingBottom: '6px',
paddingRight: '5px',
position: 'relative'
},
active: {
position: 'absolute',
top: '6px',
left: '5px',
height: '9px',
width: '9px',
background: hex
},
HEXwrap: {
flex: '6',
position: 'relative'
},
HEXinput: {
width: '80%',
padding: '0px',
paddingLeft: '20%',
border: 'none',
outline: 'none',
background: 'none',
fontSize: '12px',
color: '#333',
height: '16px'
},
HEXlabel: {
display: 'none'
},
RGBwrap: {
flex: '3',
position: 'relative'
},
RGBinput: {
width: '70%',
padding: '0px',
paddingLeft: '30%',
border: 'none',
outline: 'none',
background: 'none',
fontSize: '12px',
color: '#333',
height: '16px'
},
RGBlabel: {
position: 'absolute',
top: '3px',
left: '0px',
lineHeight: '16px',
textTransform: 'uppercase',
fontSize: '12px',
color: '#999'
}
}
});
var handleChange = function handleChange(data, e) {
if (data.r || data.g || data.b) {
onChange({
r: data.r || rgb.r,
g: data.g || rgb.g,
b: data.b || rgb.b,
source: 'rgb'
}, e);
} else {
onChange({
hex: data.hex,
source: 'hex'
}, e);
}
};
return _react2.default.createElement(
'div',
{ style: styles.fields, className: 'flexbox-fix' },
_react2.default.createElement('div', { style: styles.active }),
_react2.default.createElement(_common.EditableInput, {
style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },
label: 'hex',
value: hex,
onChange: handleChange
}),
_react2.default.createElement(_common.EditableInput, {
style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },
label: 'r',
value: rgb.r,
onChange: handleChange
}),
_react2.default.createElement(_common.EditableInput, {
style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },
label: 'g',
value: rgb.g,
onChange: handleChange
}),
_react2.default.createElement(_common.EditableInput, {
style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },
label: 'b',
value: rgb.b,
onChange: handleChange
})
);
};
exports.default = CompactFields;