import {merge} from "lodash"; type Options = { type: 'featured' , colWidth: 'full' | 'auto', direction: 'horizontal' | 'vertical', gap?: number // in px, space between fields either x or y depending on the direction } export class RowOptions { get defaults(): Options { return { type: 'featured', colWidth: 'auto', direction: 'horizontal', } } options: Options constructor(options: Partial) { this.options = merge(this.defaults, options) } }