@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
50 lines • 2.43 kB
JavaScript
var _a;
import { GrayscaleColor, RgbColor, CmykColor, LabColor, SpotColor, Ink, ColorSpace } from "@aurigma/design-atoms-model/Colors";
import { Exception } from "@aurigma/design-atoms-model/Exception";
var JsonColorParser = /** @class */ (function () {
function JsonColorParser() {
}
JsonColorParser.parse = function (data) {
if (data == null)
return null;
if (data.colorSpace == null)
throw new Exception("Unable to parse color, data colorSpace is not set");
var colorSpace = ColorSpace[data.colorSpace.toString()];
if (colorSpace == null)
throw new Exception("Unable to parse color, unknown data colorSpace: '" + data.colorSpace + "'");
var parse = JsonColorParser._mappedParsers[ColorSpace[colorSpace]];
if (parse == null)
throw new Exception("Unable to parse color, color space '" + colorSpace + "' is not supported");
return parse(data);
};
JsonColorParser.parseRgbColor = function (data) {
return new RgbColor(data.r, data.g, data.b, data.alpha, data.profile);
};
JsonColorParser._parseCmykColor = function (data) {
return new CmykColor(data.c, data.m, data.y, data.k, data.alpha, data.profile);
};
JsonColorParser._parseGrayscaleColor = function (data) {
return new GrayscaleColor(data.l, data.alpha, data.profile);
};
JsonColorParser._parseLabColor = function (data) {
return new LabColor(data.l, data.a, data.b, data.alpha, data.profile);
};
JsonColorParser._parseSpotColor = function (data) {
var ink = JsonColorParser._parseInk(data.ink);
return new SpotColor(ink, data.tint, data.alpha);
};
JsonColorParser._parseInk = function (data) {
var altColor = JsonColorParser.parse(data.alternativeColor);
return new Ink(data.name, altColor, data.solidity);
};
JsonColorParser._mappedParsers = (_a = {},
_a[ColorSpace.Rgb] = JsonColorParser.parseRgbColor,
_a[ColorSpace.Cmyk] = JsonColorParser._parseCmykColor,
_a[ColorSpace.Grayscale] = JsonColorParser._parseGrayscaleColor,
_a[ColorSpace.Lab] = JsonColorParser._parseLabColor,
_a[ColorSpace.Spot] = JsonColorParser._parseSpotColor,
_a);
return JsonColorParser;
}());
export { JsonColorParser };
//# sourceMappingURL=JsonColorParser.js.map