Skip to content

Commit 127ae08

Browse files
brunovianarezendepaodb
authored andcommitted
Allow masks into vaadin-text-area components
1 parent 4608339 commit 127ae08

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

Diff for: vcf-input-mask-demo/src/main/java/com/vaadin/componentfactory/demo/InputMaskDemoView.java

+27
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.vaadin.flow.component.datepicker.DatePicker.DatePickerI18n;
2121
import com.vaadin.flow.component.html.Div;
2222
import com.vaadin.flow.component.html.Span;
23+
import com.vaadin.flow.component.textfield.TextArea;
2324
import com.vaadin.flow.component.textfield.TextField;
2425
import com.vaadin.flow.data.value.ValueChangeMode;
2526
import com.vaadin.flow.router.Route;
@@ -41,6 +42,7 @@ public InputMaskDemoView() {
4142
createBasicInputMaskOnDatePickerDemo();
4243
createNumberInputMaskOnTextFieldDemo();
4344
createRegExpInputMaskOnTextFieldDemo();
45+
createBasicInputMaskOnTextAreaDemo();
4446
}
4547

4648
private void createNumberInputMaskOnTextFieldDemo() {
@@ -138,4 +140,29 @@ private void createBasicInputMaskOnDatePickerDemo() {
138140
add(createCard("Simple input mask on date picker", dateField, message));
139141
}
140142

143+
private void createBasicInputMaskOnTextAreaDemo() {
144+
Div message = createMessageDiv("simple-input-mask-on-text-area-demo-message");
145+
Span maskedValueSpan = new Span();
146+
Span unmaskedValueSpan = new Span();
147+
148+
149+
TextArea phoneField = new TextArea("Phone");
150+
phoneField.setPlaceholder(PHONE_MASK);
151+
InputMask phoneFieldMask = new InputMask(PHONE_MASK);
152+
phoneFieldMask.extend(phoneField);
153+
154+
phoneField.addValueChangeListener(ev -> {
155+
phoneFieldMask.getMaskedValue(masked -> {
156+
maskedValueSpan.setText("Masked value: " + masked);
157+
});
158+
phoneFieldMask.getUnmaskedValue(unmasked -> {
159+
unmaskedValueSpan.setText(" - Unmasked value: " + unmasked);
160+
});
161+
message.add(maskedValueSpan, unmaskedValueSpan);
162+
});
163+
164+
phoneField.setId("simple-input-mask-on-text-area");
165+
166+
add(createCard("Simple input mask on text area", phoneField, message));
167+
}
141168
}

Diff for: vcf-input-mask/src/main/resources/META-INF/resources/frontend/src/input-mask.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class InputMask extends LitElement {
4141
/** Initialize imask property */
4242
_initImask(){
4343
this._parentElement = this.parentElement;
44-
if ('VAADIN-TEXT-FIELD' === this.parentElement.tagName.toUpperCase()) {
44+
if (['VAADIN-TEXT-FIELD', 'VAADIN-TEXT-AREA'].includes(this.parentElement.tagName.toUpperCase())) {
4545
this.imask = new IMask(this.parentElement.inputElement, this._generateIMaskOptions(JSON.parse(this.options)));
4646
this._boundHandleUnmaskedValueChange = this._handleUnmaskedValueChange.bind(this);
4747
this._parentElement.addEventListener("change", this._boundHandleUnmaskedValueChange);

0 commit comments

Comments
 (0)