appuniversum / ember-appuniversum

Ember addon wrapping the appuniversum components.
https://appuniversum.github.io/ember-appuniversum
MIT License
14 stars 11 forks source link

Deprecate some `AuInput` features #429

Closed Windvis closed 1 year ago

Windvis commented 1 year ago

This PR deprecates the 2-way-binding and input masking functionality in the AuInput component. This makes the component more flexible and easier to maintain.

It also means the inputmask library won't be bundled (when using Embroider "optimized") if the project doesn't use the masking feature (and doesn't use the AuDateInput component since that also uses it internally) reducing the bundle size by quite a bit.

Closes #250

Migration guide

2-way-binding

To resolve the deprecation warnings, simply use the attribute versions and the {{on}} modifier instead.

- <AuInput @value={{this.someValue}} @type="number" />
+ <AuInput value={{this.someValue}} type="number" {{on "change" this.handleChange}} />

input masking

The masking functionality has now moved to the {{au-inputmask}} modifier. To resolve the deprecations, remove all masking related arguments, apply the modifier and pass them in there instead.

- <AuInput @mask="9.9.9" @maskPlaceholder="_" @onChange={{this.handleChange}} />
+ <AuInput {{au-inputmask options=(hash mask="9.9.9" placeholder="_")}} {{on "change" this.handleChange}} />

Important: The @onChange action returns the unmasked value. In order to match that behavior with the {{on}} modifier, the handler needs to be adjusted.

- @action onChange(newValue) { this.value = newValue }
+ @action onChange(event) { this.value = event.target.inputmask.unmaskedvalue(); }