@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
126 lines (95 loc) • 3.34 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _colorUtil = require("./colorUtil");
var _colorUtil2 = _interopRequireDefault(_colorUtil);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ColorHistory Component
*/
var ColorHistory =
/*#__PURE__*/
function (_React$Component) {
_inheritsLoose(ColorHistory, _React$Component);
function ColorHistory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
_this.renderColorBlock = function (colorInput) {
var rgba = colorInput.rgba,
hsva = colorInput.hsva,
hex = colorInput.hex;
var color = rgba || hsva || hex || '#FFFFFF';
var colorInRGB = _colorUtil2.default.any.to.rgb(color);
var styleColorBox = {
backgroundColor: "rgba(" + colorInRGB.r + "," + colorInRGB.g + "," + colorInRGB.b + "," + colorInRGB.a + ")",
height: '1.5rem'
};
var output = {
rgba: colorInRGB,
hsva: _colorUtil2.default.any.to.hsv(color),
hex: _colorUtil2.default.any.to.hex(color)
};
return _react2.default.createElement("div", {
onClick: function onClick() {
return _this.props.onColorChange(output);
},
className: "br2 ba b--muted-4 w-100 ma1 hover-b--action-primary pointer",
style: styleColorBox
});
};
_this.renderColorList = function (colorList) {
var blocks = [];
var appendColor = function appendColor(color) {
return color ? blocks.push(_this.renderColorBlock(color)) : blocks.push(_this.renderColorBlock(_this.props.defaultColor));
};
for (var i = 0; i < _this.props.historyLength; i++) {
appendColor(colorList && colorList[i]);
}
return blocks;
};
return _this;
}
var _proto = ColorHistory.prototype;
/**
* Render ColorHistory component
*/
_proto.render = function render() {
var colorHistory = this.props.colorHistory;
return _react2.default.createElement("div", {
className: "flex"
}, this.renderColorList(colorHistory.reverse()));
};
return ColorHistory;
}(_react2.default.Component);
/**
* ColorHistory default props
*/
ColorHistory.defaultProps = {
/** Default historyLength */
historyLength: 9,
/** Default color to empty blocks */
defaultColor: {
hex: '#FFFFFF'
}
};
/** ColorHistory Props */
ColorHistory.propTypes = {
/** Color history list */
colorHistory: _propTypes2.default.array,
/** Color history length */
historyLength: _propTypes2.default.number,
/** Default color to empty blocks */
defaultColor: _propTypes2.default.object,
/** onColorChange event */
onColorChange: _propTypes2.default.func
};
exports.default = ColorHistory;