UNPKG

react-color

Version:

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

87 lines (79 loc) 2.61 kB
import React from 'react'; import PropTypes from 'prop-types'; import reactCSS from 'reactcss'; import map from 'lodash-es/map'; import merge from 'lodash-es/merge'; import * as color from '../../helpers/color'; import { ColorWrap, Raised } from '../common'; import CompactColor from './CompactColor'; import CompactFields from './CompactFields'; export var Compact = function Compact(_ref) { var onChange = _ref.onChange, onSwatchHover = _ref.onSwatchHover, colors = _ref.colors, hex = _ref.hex, rgb = _ref.rgb, _ref$styles = _ref.styles, passedStyles = _ref$styles === undefined ? {} : _ref$styles, _ref$className = _ref.className, className = _ref$className === undefined ? '' : _ref$className; var styles = reactCSS(merge({ 'default': { Compact: { background: '#f6f6f6', radius: '4px' }, compact: { paddingTop: '5px', paddingLeft: '5px', boxSizing: 'initial', width: '240px' }, clear: { clear: 'both' } } }, passedStyles)); var handleChange = function handleChange(data, e) { if (data.hex) { color.isValidHex(data.hex) && onChange({ hex: data.hex, source: 'hex' }, e); } else { onChange(data, e); } }; return React.createElement( Raised, { style: styles.Compact, styles: passedStyles }, React.createElement( 'div', { style: styles.compact, className: 'compact-picker ' + className }, React.createElement( 'div', null, map(colors, function (c) { return React.createElement(CompactColor, { key: c, color: c, active: c.toLowerCase() === hex, onClick: handleChange, onSwatchHover: onSwatchHover }); }), React.createElement('div', { style: styles.clear }) ), React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange }) ) ); }; Compact.propTypes = { colors: PropTypes.arrayOf(PropTypes.string), styles: PropTypes.object }; Compact.defaultProps = { colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'], styles: {} }; export default ColorWrap(Compact);