UNPKG

@aurigma/design-atoms-model

Version:

Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.

173 lines 7.33 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); import { Color } from "./Color"; import { Utils } from "./Utils"; import { CmykComponentValidator } from "../Validators/CmykComponentValidator"; import { Clamp } from "../Math"; var CmykColor = /** @class */ (function (_super) { __extends(CmykColor, _super); function CmykColor(value) { var _this = _super.call(this, value) || this; _this.c = 255; _this.m = 255; _this.y = 255; _this.k = 255; _this.a = 255; if (value == null) return _this; var incorrectCmykColorMessage = "Incorrect CmykColor format: " + JSON.stringify(value); if (typeof value == "string") { if (_this._tryInitFromPercentCmyk(value) || _this._tryInitFromRelativeCmyk(value) || _this._tryInitFromDeviceCmyk(value)) _this._previewFromServer = Utils.isValidRgbColor(_this.preview); else console.warn(incorrectCmykColorMessage); } else { try { _this._init(value); } catch (e) { console.warn(incorrectCmykColorMessage); } } return _this; } Object.defineProperty(CmykColor.prototype, "type", { get: function () { return "CmykColor"; }, enumerable: true, configurable: true }); Object.defineProperty(CmykColor.prototype, "alpha", { get: function () { return this.a; }, enumerable: true, configurable: true }); CmykColor.prototype._tryInitFromDeviceCmyk = function (value) { var deviceCmykRegex = /^\s*device-cmyk\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\,\s*(\d{1,3})\s*(\,\s*(\d{1,}(\.\d{1,})?))?\s*(\,\s*(.*)\s*)?\)\s*;{0,1}\s*$/g; var match = deviceCmykRegex.exec(value); if (match != null && match.length === 10) { var cmyk = { c: +match[1], m: +match[2], y: +match[3], k: +match[4], preview: match[9] }; if (match[6] != undefined) cmyk.a = this._convertRelativeToByte(match[6]); this._init(cmyk); return true; } return false; }; CmykColor.prototype._tryInitFromPercentCmyk = function (value) { var percentCmykRegex = /^\s*cmyk\(\s*(\d{1,3}(?:\.\d{1,})?)%\s*,\s*(\d{1,3}(?:\.\d{1,})?)%\s*,\s*(\d{1,3}(?:\.\d{1,})?)%\s*,\s*(\d{1,3}(?:\.\d{1,})?)%\s*(?:\,\s*(\d{1,3}(?:\.\d{1,})?)%)?\s*(?:\,\s*(.*)\s*)?\);{0,1}\s*$/g; var match = percentCmykRegex.exec(value); if (match != null && match.length === 7) { new CmykComponentValidator(value, match, 100).validate(); var cmyk = { c: Utils.convertPercentToByte(match[1]), m: Utils.convertPercentToByte(match[2]), y: Utils.convertPercentToByte(match[3]), k: Utils.convertPercentToByte(match[4]), preview: match[6] }; if (match[5] != undefined) cmyk.a = Utils.convertPercentToByte(match[5]); this._init(cmyk); return true; } return false; }; CmykColor.prototype._tryInitFromRelativeCmyk = function (value) { var relativeCmykRegex = /^\s*cmyk\(\s*(\d{1,3}(?:\.\d{1,})?)\s*,\s*(\d{1,3}(?:\.\d{1,})?)\s*,\s*(\d{1,3}(?:\.\d{1,})?)\s*,\s*(\d{1,3}(?:\.\d{1,})?)\s*(?:\,\s*(\d{1,3}(?:\.\d{1,})?))?\s*(?:\,\s*(.*)\s*)?\);{0,1}\s*$/g; var match = relativeCmykRegex.exec(value); if (match != null && match.length === 7) { new CmykComponentValidator(value, match, 1).validate(); var cmyk = { c: this._convertRelativeToByte(match[1]), m: this._convertRelativeToByte(match[2]), y: this._convertRelativeToByte(match[3]), k: this._convertRelativeToByte(match[4]), preview: match[6] }; if (match[5] != undefined) cmyk.a = this._convertAlpha(match[5]); this._init(cmyk); return true; } return false; }; CmykColor.prototype._convertRelativeToByte = function (value) { return Clamp(0, parseInt((parseFloat(value) * 255).toFixed(0)), 255); }; CmykColor.prototype._convertAlpha = function (value) { return Clamp(parseInt((parseFloat(value) * 255).toFixed(0)), 0, 255); }; CmykColor.prototype.clone = function () { return new CmykColor(this); }; CmykColor.prototype.getData = function () { var data = _super.prototype.getData.call(this); data.c = this.c; data.m = this.m; data.y = this.y; data.k = this.k; data.a = this.a; return data; }; CmykColor.prototype.equals = function (color, ignorePreview) { if (ignorePreview === void 0) { ignorePreview = false; } if (!(color instanceof CmykColor)) return false; var baseEquals = _super.prototype.equals.call(this, color, ignorePreview); return baseEquals && color instanceof CmykColor && this.c === color.c && this.m === color.m && this.y === color.y && this.k === color.k && this.a === color.a; }; CmykColor.prototype.toString = function () { var result = "cmyk(" + this._toRelative(this.c) + "," + this._toRelative(this.m) + "," + this._toRelative(this.y) + "," + this._toRelative(this.k) + "," + this._toRelative(this.a); if (this.preview != null) result += "," + this.preview; result += ")"; return result; }; CmykColor.prototype._toRelative = function (component) { return (component / 255).toFixed(7); }; CmykColor.prototype._getPreview = function () { return this.preview; }; CmykColor.prototype._init = function (colorObject) { _super.prototype._init.call(this, colorObject); colorObject.a = colorObject.a != null ? colorObject.a : 255; this._validateNumber(colorObject.c); this._validateNumber(colorObject.m); this._validateNumber(colorObject.y); this._validateNumber(colorObject.k); this._validateNumber(colorObject.a); this.c = colorObject.c; this.m = colorObject.m; this.y = colorObject.y; this.k = colorObject.k; this.a = colorObject.a; }; return CmykColor; }(Color)); export { CmykColor }; //# sourceMappingURL=CmykColor.js.map