//
// Copyright (c) 2014, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 21 Dec 2014 Andy Frank Creation
//
using dom
**
** Multi-line text input element
**
** See also: [docDomkit]`docDomkit::Controls#textArea`
**
@Js class TextArea : Elem
{
new make() : super("textarea")
{
this.style.addClass("domkit-control domkit-control-text domkit-TextArea") //.addClass("domkit-border")
this.onEvent("input", false) |e| { fireModify(e) }
}
** Preferred width of text area in columns, or 'null' for default.
Int? cols
{
get { this->cols }
set { this->cols = it }
}
** Preferred height of text area in rows, or 'null' for default.
Int? rows
{
get { this->rows }
set { this->rows = it }
}
** Hint that is displayed in the text area before a user enters
** value that describes the expected input, or 'null' for no
** placeholder text.
Str? placeholder
{
get { this->placeholder }
set { this->placeholder = it }
}
** Set to 'true' to set text area to readonly mode.
Bool ro
{
get { this.prop("readOnly") }
set { this.setProp("readOnly", it) }
}
** Value of text area.
Str val
{
get { this->value }
set { this->value = it }
}
** Callback when value is modified by user.
Void onModify(|This| f) { this.cbModify = f }
private Void fireModify(Event e) { cbModify?.call(this) }
private Func? cbModify := null
}