export class Field { isRequired = false; defaultValue = null; displayName = null; description = null; categoryName = null; requiredIndex = null; afterFieldName = null; constructor(key) { this.key = key; this.id = "field-" + key; } // Virtual methods validate() { return true; } getInputHtml() { return null; } getInputValue() { return null; } // Builder methods required() { this.isRequired = true; return this; } default(value) { this.defaultValue = value; return this; } label(label) { this.displayName = label; return this; } desc(description) { this.description = description; return this; } category(category) { this.categoryName = category; return this; } atIndex(i) { this.requiredIndex = i; return this; } after(field) { this.afterFieldName = field; return this; } }