42 lines
816 B
TypeScript
42 lines
816 B
TypeScript
type MarginOptions = {
|
|
all?: number
|
|
left?: number
|
|
right?: number
|
|
top?: number
|
|
bottom?: number
|
|
}
|
|
|
|
export type MarginStyle = {
|
|
top: number
|
|
bottom: number
|
|
left: number
|
|
right: number
|
|
}
|
|
|
|
export const margin_style = (options: MarginOptions): MarginStyle => {
|
|
const { all, top, bottom, left, right } = options
|
|
|
|
if (all !== undefined)
|
|
return {
|
|
top: all,
|
|
bottom: all,
|
|
left: all,
|
|
right: all,
|
|
}
|
|
|
|
if (
|
|
top === undefined &&
|
|
bottom === undefined &&
|
|
left === undefined &&
|
|
right === undefined
|
|
)
|
|
throw new Error("Margin must have at least one value")
|
|
|
|
return {
|
|
top: top || 0,
|
|
bottom: bottom || 0,
|
|
left: left || 0,
|
|
right: right || 0,
|
|
}
|
|
}
|