UNPKG

@aurigma/design-atoms

Version:

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

54 lines 3.19 kB
import { CmykColor } from "@aurigma/design-atoms-model"; import { convertPercentToByte, convertRelativeToByte } from "./Utils"; var CmykColorParser = /** @class */ (function () { function CmykColorParser() { this._mappedParsers = new Map([ [CmykColorParser._percentCmykRegex, this._parsePercentCmyk], [CmykColorParser._relativeCmykRegex, this._parseRelativeCmyk], [CmykColorParser._deviceCmykRegex, this._parseDeviceCmyk], ]); } CmykColorParser.prototype.parse = function (colorString) { var parserKey = Array.from(this._mappedParsers.keys()).find(function (key) { return key.test(colorString); }); if (parserKey == null) { return null; } return this._mappedParsers.get(parserKey)(parserKey.exec(colorString)); }; CmykColorParser.prototype._parsePercentCmyk = function (percentMatch) { if (percentMatch.length !== 7) { return null; } var alpha = 255; if (percentMatch[5] != null) { alpha = convertPercentToByte(parseFloat(percentMatch[5])); } return new CmykColor(convertPercentToByte(parseFloat(percentMatch[1])), convertPercentToByte(parseFloat(percentMatch[2])), convertPercentToByte(parseFloat(percentMatch[3])), convertPercentToByte(parseFloat(percentMatch[4])), alpha); }; CmykColorParser.prototype._parseRelativeCmyk = function (relativeMatch) { if (relativeMatch.length !== 7) { return null; } var alpha = 255; if (relativeMatch[5] != null) { alpha = convertRelativeToByte(parseFloat(relativeMatch[5])); } return new CmykColor(convertRelativeToByte(parseFloat(relativeMatch[1])), convertRelativeToByte(parseFloat(relativeMatch[2])), convertRelativeToByte(parseFloat(relativeMatch[3])), convertRelativeToByte(parseFloat(relativeMatch[4])), alpha); }; CmykColorParser.prototype._parseDeviceCmyk = function (deviceMatch) { if (deviceMatch.length !== 10) { return null; } var alpha = 255; if (deviceMatch[6] != null) { alpha = convertRelativeToByte(parseFloat(deviceMatch[6])); } return new CmykColor(parseInt(deviceMatch[1]), parseInt(deviceMatch[2]), parseInt(deviceMatch[3]), parseInt(deviceMatch[4]), alpha); }; CmykColorParser._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*$/; CmykColorParser._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*$/; CmykColorParser._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*$/; return CmykColorParser; }()); export { CmykColorParser }; //# sourceMappingURL=CmykColorParser.js.map