using System; using System.Linq; using System.Linq.Expressions; namespace RosettaUI { public partial class UI { public static Element TextArea(Expression> targetExpression) => TextArea(ExpressionUtility.CreateLabelString(targetExpression), targetExpression); public static Element TextArea(LabelElement label, Expression> targetExpression) => _TextArea(Field(label, targetExpression)); public static Element TextArea(Expression> targetExpression, Action writeValue) => TextArea(ExpressionUtility.CreateLabelString(targetExpression), targetExpression.Compile(), writeValue); public static Element TextArea(LabelElement label, Func readValue, Action writeValue) => _TextArea(Field(label, readValue, writeValue)); public static Element TextAreaReadOnly(Expression> targetExpression) => _TextArea(FieldReadOnly(targetExpression)); public static Element TextAreaReadOnly(LabelElement label, Func readValue) => _TextArea(FieldReadOnly(label, readValue)); private static Element _TextArea(Element element) { var textFieldElement = element.Query().First(); textFieldElement.IsMultiLine = true; return element; } } }