Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/annotationsro/ember-mobile-inputs
Mobile friendly input helpers http://annotationsro.github.io/ember-mobile-inputs/
https://github.com/annotationsro/ember-mobile-inputs
addon ember hacktoberfest input
Last synced: 2 months ago
JSON representation
Mobile friendly input helpers http://annotationsro.github.io/ember-mobile-inputs/
- Host: GitHub
- URL: https://github.com/annotationsro/ember-mobile-inputs
- Owner: AnnotationSro
- License: mit
- Created: 2016-04-10T11:08:34.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-12T10:08:42.000Z (over 2 years ago)
- Last Synced: 2024-11-16T17:09:52.880Z (2 months ago)
- Topics: addon, ember, hacktoberfest, input
- Language: JavaScript
- Homepage:
- Size: 2.68 MB
- Stars: 2
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/AnnotationSro/ember-mobile-inputs.svg?branch=master)](https://travis-ci.org/AnnotationSro/ember-mobile-inputs)
DEMO: http://annotationsro.github.io/ember-mobile-inputs/
# Ember-mobile-inputs
HTML 5 introduced input types that are really great for mobile devices, but not that great for the good old desktops.
Mainly because every browser implements it in a little bit different way (speaking of UI), which is sometimes not that great (e.g. number input in Firefox on Windows
is simply disgusting...). And of course they are sometimes a little bit buggy (looking at you Firefox....)
Also, it would be sometimes nice to enhance or alter the way these inputs behave on desktop - give them a little bit more glamour, right?So what this addon does? On mobile (touch) devices it makes use of HTML5 power (renders a simple HTML ``) and on desktop it provides some extra fun:
* input type **number** - decimal numbers only (pretty standard, but without the ugly stepper that I guess nobody uses anyway)
* input type **text** - well just a simple input, nothing fancy here
* input type **date** - masked input with the ability to customize the format + [Flatpickr](https://flatpickr.js.org) calendar popup + nice calendar button# Install
```
ember install ember-mobile-inputs
```**Since this addon depends on ember-auto-import 2, any app that uses ember-advanced-combobox also needs to depend on ember-auto-import 2.**
# Usage
### Number
```
{{mobile-input id="numberInput" type='number' value=valueNumber disabled=isDisabled onValueChanged=(action 'callback')}}
```You can customize the decimal point mark - whether to use comma or dot or both. You can do this by setting `decimalMark` attribute to:
* _comma_
* _dot_
* _both_
* _none_You can limit number to be positive only by parameter `allowNegative=false`.
### Text
```
{{mobile-input id="textInput" type='text' value=valueText disabled=isDisabled onValueChanged=(action 'callback')}}
```You can also define regex pattern for text input fields using `pattern` attribute. Note: regex must work also for intermediate states, not just final value.
### Password
```
{{mobile-input id="passInput" type='password' value=valuePass disabled=isDisabled onValueChanged=(action 'callback')}}
```
### Date
With default date format - dd.mm.yyyy
```
{{mobile-input id="dateInput" type='date' value=valueDate disabled=isDisabled onValueChanged=(action 'callback')}}
```With custom format
```
{{mobile-input id="customDateInput" type='date' value=valueDateFormat format='YYYY-MM-DD' disabled=isDisabled}}
```**showOn** attribute with possible values:
* _button_ - show Flatpickr calendar popup only when user clicks on the calendar button
* _input_ - show Flatpickr whne you click on the input (calendar button is not visible)
* _both_ - combination of the both options above
* _none_ - no calendar popup at all# Configuration
You can add a global configuration into your _config/environment.js_ file:
```
ENV['ember-mobile-inputs'] = {
date:{
calendarButtonClass: 'fa fa-calendar', // font icon CSS classes to be used in place of calendar button
format: 'd.m.Y', //see Flatpickr formatting
locale: 'en', //see Flatpickr i18n
showOn: 'both' //available options: 'both', 'input', 'button', 'none',
},
number:{
decimalMark: 'both', //available options: 'comma', 'dot', 'both'
selectOnClick: false, //selects the whole number on focus
formatOnDisabled: false //format numbers when input is disabled
},
text:{
selectOnClick: false //selects the whole text on focus
}
}
```For more Flatpickr (calendar popup) configuration information, please have a look at the [Flatpickr guide](https://flatpickr.js.org/options/).
You can also pass `flatpickrOptions` parameter to the component - this is currently used only by _date_ input to customize Flatpickr calendar (content of `flatpickrOptions` is merged with Flatpickr config).You can also configure other options for inputs in `options` attribute - list of supported options:
* defaultDateOnOpen - date, to which Flatpickr calendar should open when no value is setThere is an option to add callback `onBlurChanged` that will be called on input blur, but only when value has changed since on-focus event.
There is a service `mobile-input-event-bus` where you can subscribe to input changes on input blur - don't forget to enable these events in the config:_config/enbironment.js_
```
ENV['ember-mobile-inputs'] = {
eventOnBlurChanged: true
}
```
_subscribe for events_
```
mobileInputEventBus: Ember.inject.service('mobile-input-event-bus'),this.get('mobileInputEventBus').subscribe('blurChanged', (newValue, oldValue, element)=>{
window.console.log(`EVENT: newValue: ${newValue}, oldValue: ${oldValue}`);
});
```You can pass custom attributes to the element using `data-custom` attribute:
```
{{mobile-input value=value data-custom="hello world"}}
```which will render:
```
```