UNPKG

react-color

Version:

A Collection of Color Pickers from Sketch, Photoshop, Chrome & more

224 lines (207 loc) 6.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.GoogleFields = undefined; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactcss = require('reactcss'); var _reactcss2 = _interopRequireDefault(_reactcss); var _color = require('../../helpers/color'); var color = _interopRequireWildcard(_color); var _common = require('../common'); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var GoogleFields = exports.GoogleFields = function GoogleFields(_ref) { var onChange = _ref.onChange, rgb = _ref.rgb, hsl = _ref.hsl, hex = _ref.hex, hsv = _ref.hsv; var handleChange = function handleChange(data, e) { if (data.hex) { color.isValidHex(data.hex) && onChange({ hex: data.hex, source: 'hex' }, e); } else if (data.rgb) { var values = data.rgb.split(','); color.isvalidColorString(data.rgb, 'rgb') && onChange({ r: values[0], g: values[1], b: values[2], a: 1, source: 'rgb' }, e); } else if (data.hsv) { var _values = data.hsv.split(','); if (color.isvalidColorString(data.hsv, 'hsv')) { _values[2] = _values[2].replace('%', ''); _values[1] = _values[1].replace('%', ''); _values[0] = _values[0].replace('°', ''); if (_values[1] == 1) { _values[1] = 0.01; } else if (_values[2] == 1) { _values[2] = 0.01; } onChange({ h: Number(_values[0]), s: Number(_values[1]), v: Number(_values[2]), source: 'hsv' }, e); } } else if (data.hsl) { var _values2 = data.hsl.split(','); if (color.isvalidColorString(data.hsl, 'hsl')) { _values2[2] = _values2[2].replace('%', ''); _values2[1] = _values2[1].replace('%', ''); _values2[0] = _values2[0].replace('°', ''); if (hsvValue[1] == 1) { hsvValue[1] = 0.01; } else if (hsvValue[2] == 1) { hsvValue[2] = 0.01; } onChange({ h: Number(_values2[0]), s: Number(_values2[1]), v: Number(_values2[2]), source: 'hsl' }, e); } } }; var styles = (0, _reactcss2.default)({ 'default': { wrap: { display: 'flex', height: '100px', marginTop: '4px' }, fields: { width: '100%' }, column: { paddingTop: '10px', display: 'flex', justifyContent: 'space-between' }, double: { padding: '0px 4.4px', boxSizing: 'border-box' }, input: { width: '100%', height: '38px', boxSizing: 'border-box', padding: '4px 10% 3px', textAlign: 'center', border: '1px solid #dadce0', fontSize: '11px', textTransform: 'lowercase', borderRadius: '5px', outline: 'none', fontFamily: 'Roboto,Arial,sans-serif' }, input2: { height: '38px', width: '100%', border: '1px solid #dadce0', boxSizing: 'border-box', fontSize: '11px', textTransform: 'lowercase', borderRadius: '5px', outline: 'none', paddingLeft: '10px', fontFamily: 'Roboto,Arial,sans-serif' }, label: { textAlign: 'center', fontSize: '12px', background: '#fff', position: 'absolute', textTransform: 'uppercase', color: '#3c4043', width: '35px', top: '-6px', left: '0', right: '0', marginLeft: 'auto', marginRight: 'auto', fontFamily: 'Roboto,Arial,sans-serif' }, label2: { left: '10px', textAlign: 'center', fontSize: '12px', background: '#fff', position: 'absolute', textTransform: 'uppercase', color: '#3c4043', width: '32px', top: '-6px', fontFamily: 'Roboto,Arial,sans-serif' }, single: { flexGrow: '1', margin: '0px 4.4px' } } }); var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b; var hslValue = Math.round(hsl.h) + '\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%'; var hsvValue = Math.round(hsv.h) + '\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%'; return _react2.default.createElement( 'div', { style: styles.wrap, className: 'flexbox-fix' }, _react2.default.createElement( 'div', { style: styles.fields }, _react2.default.createElement( 'div', { style: styles.double }, _react2.default.createElement(_common.EditableInput, { style: { input: styles.input, label: styles.label }, label: 'hex', value: hex, onChange: handleChange }) ), _react2.default.createElement( 'div', { style: styles.column }, _react2.default.createElement( 'div', { style: styles.single }, _react2.default.createElement(_common.EditableInput, { style: { input: styles.input2, label: styles.label2 }, label: 'rgb', value: rgbValue, onChange: handleChange }) ), _react2.default.createElement( 'div', { style: styles.single }, _react2.default.createElement(_common.EditableInput, { style: { input: styles.input2, label: styles.label2 }, label: 'hsv', value: hsvValue, onChange: handleChange }) ), _react2.default.createElement( 'div', { style: styles.single }, _react2.default.createElement(_common.EditableInput, { style: { input: styles.input2, label: styles.label2 }, label: 'hsl', value: hslValue, onChange: handleChange }) ) ) ) ); }; exports.default = GoogleFields;