zent
Version:
一套前端设计语言和基于React的实现
184 lines (145 loc) • 6.29 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _popover = require('../popover');
var _popover2 = _interopRequireDefault(_popover);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _ColorBoard = require('./ColorBoard');
var _ColorBoard2 = _interopRequireDefault(_ColorBoard);
var _SketchPresetColors = require('./SketchPresetColors');
var _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors);
var _PopoverClickTrigger = require('./PopoverClickTrigger');
var _PopoverClickTrigger2 = _interopRequireDefault(_PopoverClickTrigger);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var ColorPicker = function (_ref) {
(0, _inherits3['default'])(ColorPicker, _ref);
function ColorPicker() {
var _ref2;
var _temp, _this, _ret;
(0, _classCallCheck3['default'])(this, ColorPicker);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref2 = ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call.apply(_ref2, [this].concat(args))), _this), _this.state = {
popVisible: false
}, _this.handleChange = function (color) {
var _this$props = _this.props,
onChange = _this$props.onChange,
showAlpha = _this$props.showAlpha;
var transColor = color;
if ((typeof color === 'undefined' ? 'undefined' : (0, _typeof3['default'])(color)) === 'object') {
transColor = showAlpha ? color.rgba : color.hex;
}
onChange(transColor);
}, _this.handleVisibleChange = function (visible) {
_this.setState({
popVisible: visible
});
}, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
}
(0, _createClass3['default'])(ColorPicker, [{
key: 'render',
value: function render() {
var _props = this.props,
color = _props.color,
showAlpha = _props.showAlpha,
prefix = _props.prefix,
className = _props.className,
wrapperClassName = _props.wrapperClassName,
type = _props.type,
presetColors = _props.presetColors;
var popVisible = this.state.popVisible;
var openClassName = popVisible ? 'open' : '';
var backgroundColor = color;
return _react2['default'].createElement(
_popover2['default'],
{
className: (0, _classnames2['default'])(prefix + '-color-picker-popover', className),
position: _popover2['default'].Position.AutoBottomLeft,
display: 'inline',
cushion: 5,
visible: popVisible,
onVisibleChange: this.handleVisibleChange
},
_react2['default'].createElement(
_PopoverClickTrigger2['default'],
null,
_react2['default'].createElement(
'div',
{
className: (0, _classnames2['default'])(prefix + '-color-picker', wrapperClassName, openClassName),
tabIndex: 0
},
_react2['default'].createElement(
'div',
{ className: prefix + '-color-picker__text' },
_react2['default'].createElement('div', {
className: prefix + '-color-picker__preview',
style: { backgroundColor: backgroundColor }
})
)
)
),
_react2['default'].createElement(
_popover2['default'].Content,
null,
type === 'simple' ? _react2['default'].createElement(_SketchPresetColors2['default'], {
colors: presetColors,
onClick: this.handleChange,
prefix: prefix,
type: type
}) : _react2['default'].createElement(_ColorBoard2['default'], {
color: color,
showAlpha: showAlpha,
onChange: this.handleChange,
prefix: prefix,
type: type
})
)
);
}
}]);
return ColorPicker;
}(_react.PureComponent || _react.Component); /**
* This component is adapted from https://github.com/casesandberg/react-color.
* See LICENSE for permissions.
*
* It's a modified Sketch color picker.
*/
ColorPicker.propTypes = {
color: _propTypes2['default'].string.isRequired,
showAlpha: _propTypes2['default'].bool,
onChange: _propTypes2['default'].func,
className: _propTypes2['default'].string,
wrapperClassName: _propTypes2['default'].string,
prefix: _propTypes2['default'].string,
type: _propTypes2['default'].oneOf(['default', 'simple']),
presetColors: _propTypes2['default'].array
};
ColorPicker.defaultProps = {
showAlpha: false,
onChange: function onChange() {},
className: '',
wrapperClassName: '',
prefix: 'zent',
type: 'default',
presetColors: ['#FFFFFF', '#F8F8F8', '#F2F2F2', '#999999', '#444444', '#FF4444', '#FF6500', '#FF884D', '#FFCD00', '#3FBD00', '#3FBC87', '#00CD98', '#5197FF', '#BADCFF', '#FFEFB8']
};
ColorPicker.ColorBoard = _ColorBoard2['default'];
exports['default'] = ColorPicker;