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.

35 lines 1.68 kB
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 = ParseSchema.TopFirst) { if (typeof value == "number") return new Margin(value); if (typeof value == "string") { const parts = value.split(/[ ,;]/, 4); if (parts.length == 1) return new Margin(parseFloat(parts[0])); else if (parts.length == 2) { const horizontal = parseSchema == ParseSchema.LeftFirst ? parts[0] : parts[1]; const vertical = parseSchema == ParseSchema.LeftFirst ? parts[1] : parts[0]; return new Margin({ horizontal: parseFloat(horizontal), vertical: parseFloat(vertical) }); } else if (parts.length == 4) { const left = parseSchema == ParseSchema.LeftFirst ? parts[0] : parts[3]; const top = parseSchema == ParseSchema.LeftFirst ? parts[1] : parts[0]; const right = parseSchema == ParseSchema.LeftFirst ? parts[2] : parts[1]; const bottom = parseSchema == ParseSchema.LeftFirst ? parts[3] : parts[2]; return new Margin({ left: parseFloat(left), top: parseFloat(top), right: parseFloat(right), bottom: parseFloat(bottom) }); } } console.warn(`Unexpected margin value: ${value}`); return new Margin(0); } //# sourceMappingURL=MarginParser.js.map