ember-frost-bunsen
Version:
Create UI's from JSON configurations.
57 lines (45 loc) • 1.33 kB
JavaScript
import Ember from 'ember'
const {typeOf} = Ember
import computed, {readOnly} from 'ember-computed-decorators'
import AbstractInput from './abstract-input'
import layout from 'ember-frost-bunsen/templates/components/frost-bunsen-input-number'
const {isFinite} = Number
export default AbstractInput.extend({
// == Component Properties ===================================================
classNames: [
'frost-bunsen-input-number',
'frost-field'
],
layout,
// == Computed Properties ====================================================
('value')
/**
* Text to render for value
* @param {Number} value - value
* @returns {String} text to render
*/
renderValue (value) {
if ([null, undefined].indexOf(value) !== -1) {
return ''
}
if (typeOf(value) === 'number') {
return value.toString()
}
return value
},
// == Functions ==============================================================
/**
* Parse value into a number
* @param {String} value - value to parse
* @returns {Number} parse value
*/
parseValue (value) {
let result = null
if (value !== undefined && value !== null) {
const number = parseFloat(this._super(value))
result = isFinite(number) ? number : null
}
return result
}
})