blob: 0a40ba54603b7f01882646bf0f283014422e38e9 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const _css = `
.weex-textarea {
font-size: 0.426667rem
}
.weex-textarea:focus {
outline: none;
}
`
function getTextarea (weex) {
const { extractComponentStyle, createEventMap } = weex
const { inputCommon } = weex.mixins
const { extend, mapFormEvents } = weex.utils
return {
name: 'weex-textarea',
mixins: [inputCommon],
props: {
value: String,
placeholder: String,
disabled: {
type: [String, Boolean],
default: false
},
autofocus: {
type: [String, Boolean],
default: false
},
rows: {
type: [String, Number],
default: 2
},
returnKeyType: String
},
render (createElement) {
/* istanbul ignore next */
// if (process.env.NODE_ENV === 'development') {
// validateStyles('textarea', this.$vnode.data && this.$vnode.data.staticStyle)
// }
const events = extend(createEventMap(this), mapFormEvents(this))
return createElement('html:textarea', {
attrs: {
'weex-type': 'textarea',
value: this.value,
disabled: (this.disabled !== 'false' && this.disabled !== false),
autofocus: (this.autofocus !== 'false' && this.autofocus !== false),
placeholder: this.placeholder,
rows: this.rows,
'return-key-type': this.returnKeyType
},
domProps: {
value: this.value
},
on: this.createKeyboardEvent(events),
staticClass: 'weex-textarea weex-el',
staticStyle: extractComponentStyle(this)
})
},
_css
}
}
export default {
init (weex) {
weex.registerComponent('textarea', getTextarea(weex))
}
}