@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
JavaScript
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