@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
36 lines • 1.72 kB
JavaScript
import { Margin } from "@aurigma/design-atoms-model/Math/Margin";
export var ParseSchema;
(function (ParseSchema) {
ParseSchema[ParseSchema["TopFirst"] = 0] = "TopFirst";
ParseSchema[ParseSchema["LeftFirst"] = 1] = "LeftFirst";
})(ParseSchema || (ParseSchema = {}));
export function parseMargin(value, parseSchema) {
if (parseSchema === void 0) { parseSchema = ParseSchema.TopFirst; }
if (typeof value == "number")
return new Margin(value);
if (typeof value == "string") {
var parts = value.split(/[ ,;]/, 4);
if (parts.length == 1)
return new Margin(parseFloat(parts[0]));
else if (parts.length == 2) {
var horizontal = parseSchema == ParseSchema.LeftFirst ? parts[0] : parts[1];
var vertical = parseSchema == ParseSchema.LeftFirst ? parts[1] : parts[0];
return new Margin({ horizontal: parseFloat(horizontal), vertical: parseFloat(vertical) });
}
else if (parts.length == 4) {
var left = parseSchema == ParseSchema.LeftFirst ? parts[0] : parts[3];
var top_1 = parseSchema == ParseSchema.LeftFirst ? parts[1] : parts[0];
var right = parseSchema == ParseSchema.LeftFirst ? parts[2] : parts[1];
var bottom = parseSchema == ParseSchema.LeftFirst ? parts[3] : parts[2];
return new Margin({
left: parseFloat(left),
top: parseFloat(top_1),
right: parseFloat(right),
bottom: parseFloat(bottom)
});
}
}
console.warn("Unexpected margin value: " + value);
return new Margin(0);
}
//# sourceMappingURL=MarginParser.js.map