UNPKG

rrggbbaa

Version:

Color code utility and converter library for NodeJS.

114 lines (85 loc) 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _defaultOptions = require("./default-options"); var _defaultOptions2 = _interopRequireDefault(_defaultOptions); var _components = require("./components"); var _converters = require("./converters"); var _parse = require("./parse"); var _parse2 = _interopRequireDefault(_parse); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var rrggbbaa = function rrggbbaa(input, opts) { var _this = this; _classCallCheck(this, rrggbbaa); this.alter = function (component, value) { if (value) { if ((0, _components.validateComponent)(component, value)) { _this.set(component, value); } return _this; // chain } return _this.get(component); }; this.red = function (value) { return _this.alter(_components.Components.RED, value); }; this.green = function (value) { return _this.alter(_components.Components.GREEN, value); }; this.blue = function (value) { return _this.alter(_components.Components.BLUE, value); }; this.alpha = function (value) { return _this.alter(_components.Components.ALPHA, value); }; this.inverse = function () { _this.red(255 - _this.red()); _this.green(255 - _this.green()); _this.blue(255 - _this.blue()); return _this; }; this.toRgb = function () { var red = _this.red(); var green = _this.green(); var blue = _this.blue(); return "rgb(" + red + "," + green + "," + blue + ")"; }; this.toRgba = function () { var red = _this.red(); var green = _this.green(); var blue = _this.blue(); var alpha = _this.alpha() / 100; return "rgba(" + red + "," + green + "," + blue + "," + alpha + ")"; }; this.toHex = function () { var red = (0, _converters.integerToHex)(_this.red()); var green = (0, _converters.integerToHex)(_this.green()); var blue = (0, _converters.integerToHex)(_this.blue()); return "#" + red + green + blue; }; this.toHexa = function () { var red = (0, _converters.integerToHex)(_this.red()); var green = (0, _converters.integerToHex)(_this.green()); var blue = (0, _converters.integerToHex)(_this.blue()); var alpha = (0, _converters.integerToHex)((0, _converters.scale100To255)(_this.alpha())); return "#" + red + green + blue + alpha; }; this.toString = function () { return _this.alpha() !== 100 ? _this.toRgba() : _this.toRgb(); }; this.options = _extends({}, _defaultOptions2.default, opts); // private data and getter/setter var data = (0, _parse2.default)(input); this.get = function (key) { return data[key]; }; this.set = function (key, value) { return data[key] = value; }; } // changes a single component value ; exports.default = rrggbbaa;