1
- var listener = require ( './listener' ) ;
1
+ var listener = require ( './listener' )
2
2
var binding = require ( './binding' )
3
3
var RefreshHook = require ( './render' ) . RefreshHook
4
4
5
- module . exports = function ( tag , attributes , children ) {
5
+ module . exports = function ( tag , attributes , children ) {
6
6
var type = inputType ( tag , attributes )
7
- var bind = inputTypeBindings [ type ] || bindTextInput ;
7
+ var bind = inputTypeBindings [ type ] || bindTextInput
8
8
9
- var bindingAttr = binding ( attributes . binding ) ;
10
- bind ( attributes , children , bindingAttr . get , bindingAttr . set ) ;
9
+ var bindingAttr = binding ( attributes . binding )
10
+ bind ( attributes , children , bindingAttr . get , bindingAttr . set )
11
11
}
12
12
13
13
var inputTypeBindings = {
@@ -16,145 +16,145 @@ var inputTypeBindings = {
16
16
textarea : bindTextInput ,
17
17
18
18
checkbox : function ( attributes , children , get , set ) {
19
- attributes . checked = get ( ) ;
19
+ attributes . checked = get ( )
20
20
21
21
attachEventHandler ( attributes , 'onclick' , function ( ev ) {
22
- attributes . checked = ev . target . checked ;
23
- set ( ev . target . checked ) ;
24
- } ) ;
22
+ attributes . checked = ev . target . checked
23
+ set ( ev . target . checked )
24
+ } )
25
25
} ,
26
26
27
27
radio : function ( attributes , children , get , set ) {
28
- var value = attributes . value ;
29
- attributes . checked = get ( ) == attributes . value ;
28
+ var value = attributes . value
29
+ attributes . checked = get ( ) == attributes . value
30
30
attributes . on_hyperdomsyncchecked = listener ( function ( event ) {
31
- attributes . checked = event . target . checked ;
32
- } ) ;
31
+ attributes . checked = event . target . checked
32
+ } )
33
33
34
34
attachEventHandler ( attributes , 'onclick' , function ( event ) {
35
- var name = event . target . name ;
35
+ var name = event . target . name
36
36
if ( name ) {
37
- var inputs = document . getElementsByName ( name ) ;
37
+ var inputs = document . getElementsByName ( name )
38
38
for ( var i = 0 , l = inputs . length ; i < l ; i ++ ) {
39
- inputs [ i ] . dispatchEvent ( customEvent ( '_hyperdomsyncchecked' ) ) ;
39
+ inputs [ i ] . dispatchEvent ( customEvent ( '_hyperdomsyncchecked' ) )
40
40
}
41
41
}
42
- set ( value ) ;
43
- } ) ;
42
+ set ( value )
43
+ } )
44
44
} ,
45
45
46
46
select : function ( attributes , children , get , set ) {
47
- var currentValue = get ( ) ;
47
+ var currentValue = get ( )
48
48
49
49
var options = children . filter ( function ( child ) {
50
- return child . tagName . toLowerCase ( ) == 'option' ;
51
- } ) ;
50
+ return child . tagName . toLowerCase ( ) == 'option'
51
+ } )
52
52
53
- var values = [ ] ;
54
- var selectedIndex ;
53
+ var values = [ ]
54
+ var selectedIndex
55
55
56
- for ( var n = 0 ; n < options . length ; n ++ ) {
57
- var option = options [ n ] ;
58
- var hasValue = option . properties . hasOwnProperty ( 'value' ) ;
59
- var value = option . properties . value ;
60
- var text = option . children . map ( function ( x ) { return x . text ; } ) . join ( '' ) ;
56
+ for ( var n = 0 ; n < options . length ; n ++ ) {
57
+ var option = options [ n ]
58
+ var hasValue = option . properties . hasOwnProperty ( 'value' )
59
+ var value = option . properties . value
60
+ var text = option . children . map ( function ( x ) { return x . text } ) . join ( '' )
61
61
62
- values . push ( hasValue ? value : text ) ;
62
+ values . push ( hasValue ? value : text )
63
63
64
- var selected = value == currentValue || text == currentValue ;
64
+ var selected = value == currentValue || text == currentValue
65
65
66
66
if ( selected ) {
67
- selectedIndex = n ;
67
+ selectedIndex = n
68
68
}
69
69
70
- option . properties . selected = selected ;
71
- option . properties . value = n ;
70
+ option . properties . selected = selected
71
+ option . properties . value = n
72
72
}
73
73
74
74
if ( selectedIndex !== undefined ) {
75
- attributes . selectedIndex = selectedIndex ;
75
+ attributes . selectedIndex = selectedIndex
76
76
}
77
77
78
78
attachEventHandler ( attributes , 'onchange' , function ( ev ) {
79
- attributes . selectedIndex = ev . target . selectedIndex ;
80
- set ( values [ ev . target . value ] ) ;
81
- } ) ;
79
+ attributes . selectedIndex = ev . target . selectedIndex
80
+ set ( values [ ev . target . value ] )
81
+ } )
82
82
} ,
83
83
84
84
file : function ( attributes , children , get , set ) {
85
- var multiple = attributes . multiple ;
85
+ var multiple = attributes . multiple
86
86
87
87
attachEventHandler ( attributes , 'onchange' , function ( ev ) {
88
88
if ( multiple ) {
89
- set ( ev . target . files ) ;
89
+ set ( ev . target . files )
90
90
} else {
91
- set ( ev . target . files [ 0 ] ) ;
91
+ set ( ev . target . files [ 0 ] )
92
92
}
93
- } ) ;
93
+ } )
94
94
}
95
- } ;
95
+ }
96
96
97
- function inputType ( selector , attributes ) {
97
+ function inputType ( selector , attributes ) {
98
98
if ( / ^ t e x t a r e a \b / i. test ( selector ) ) {
99
- return 'textarea' ;
99
+ return 'textarea'
100
100
} else if ( / ^ s e l e c t \b / i. test ( selector ) ) {
101
- return 'select' ;
101
+ return 'select'
102
102
} else {
103
- return attributes . type || 'text' ;
103
+ return attributes . type || 'text'
104
104
}
105
105
}
106
106
107
- function bindTextInput ( attributes , children , get , set ) {
108
- var textEventNames = [ 'onkeyup' , 'oninput' , 'onpaste' , 'textInput' ] ;
107
+ function bindTextInput ( attributes , children , get , set ) {
108
+ var textEventNames = [ 'onkeyup' , 'oninput' , 'onpaste' , 'textInput' ]
109
109
110
- var bindingValue = get ( ) ;
110
+ var bindingValue = get ( )
111
111
if ( ! ( bindingValue instanceof Error ) ) {
112
- attributes . value = bindingValue != undefined ? bindingValue : '' ;
112
+ attributes . value = bindingValue != undefined ? bindingValue : ''
113
113
}
114
114
115
115
attachEventHandler ( attributes , textEventNames , function ( ev ) {
116
116
if ( get ( ) != ev . target . value ) {
117
- set ( ev . target . value ) ;
117
+ set ( ev . target . value )
118
118
}
119
- } ) ;
119
+ } )
120
120
}
121
121
122
- function attachEventHandler ( attributes , eventNames , handler ) {
122
+ function attachEventHandler ( attributes , eventNames , handler ) {
123
123
if ( eventNames instanceof Array ) {
124
124
for ( var n = 0 ; n < eventNames . length ; n ++ ) {
125
- insertEventHandler ( attributes , eventNames [ n ] , handler ) ;
125
+ insertEventHandler ( attributes , eventNames [ n ] , handler )
126
126
}
127
127
} else {
128
- insertEventHandler ( attributes , eventNames , handler ) ;
128
+ insertEventHandler ( attributes , eventNames , handler )
129
129
}
130
130
}
131
131
132
- function insertEventHandler ( attributes , eventName , handler ) {
133
- var previousHandler = attributes [ eventName ] ;
132
+ function insertEventHandler ( attributes , eventName , handler ) {
133
+ var previousHandler = attributes [ eventName ]
134
134
if ( previousHandler ) {
135
- attributes [ eventName ] = sequenceFunctions ( handler , previousHandler ) ;
135
+ attributes [ eventName ] = sequenceFunctions ( handler , previousHandler )
136
136
} else {
137
- attributes [ eventName ] = handler ;
137
+ attributes [ eventName ] = handler
138
138
}
139
139
}
140
140
141
- function sequenceFunctions ( handler1 , handler2 ) {
141
+ function sequenceFunctions ( handler1 , handler2 ) {
142
142
return function ( ev ) {
143
- handler1 ( ev ) ;
143
+ handler1 ( ev )
144
144
if ( handler2 instanceof RefreshHook ) {
145
- return handler2 . handler ( ev ) ;
145
+ return handler2 . handler ( ev )
146
146
} else {
147
- return handler2 ( ev ) ;
147
+ return handler2 ( ev )
148
148
}
149
- } ;
149
+ }
150
150
}
151
151
152
- function customEvent ( name ) {
153
- if ( typeof Event == 'function' ) {
154
- return new Event ( name ) ;
152
+ function customEvent ( name ) {
153
+ if ( typeof Event === 'function' ) {
154
+ return new Event ( name )
155
155
} else {
156
- var event = document . createEvent ( 'Event' ) ;
157
- event . initEvent ( name , false , false ) ;
158
- return event ;
156
+ var event = document . createEvent ( 'Event' )
157
+ event . initEvent ( name , false , false )
158
+ return event
159
159
}
160
160
}
0 commit comments