Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Ionic support #17

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Conversation

harsszegi
Copy link

The PR adds support to Ionic.
As Ionic uses different events for its input components (ionBlur, ionFocus, etc.) and obviously because of the "middle man issue" (e.g. Ionic sets between the keyboard component and the final HTMLInputElement) the following changes had to be done:
a.) Add support for Ionic's events in MatKeyboardDirective
b.) Generalize HTMLInputElement handling via getting the appropriate attribute from the element using matKeyboard
(e.g. use either this.input.nativeElement ('normal case') or this.input.nativeElement.firstChild ('ionic case')

Harsszegi Tibor added 4 commits August 12, 2020 07:09
Ionic uses different event binding compared to Angular
(focus vs ionFocus, blur vs ionBlur), so the keyboard
directive had to be updated so that it still works with
both input/textarea and ion-input/ion-textarea
this.input.nativeElement can't be directly used with Ionic
as obviously that would resolve to an IonInput (or IonTextArea
respectively). Ionic provides a getInputElement() function but
that returns a Promise, which would mean to refactor internally
quite a lot of code in keyboard-key. Instead directly the
firstChild attribute is used, which is exactly the same thing.
In case a selection is in place and you wish to replace that
with a character and there is maximum limit set and the
input field is already filled completely to the maximum,
you are unable to replace the selected content.
Entering text into <input> doesn't work even if maxLength is
not set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant