@@ -110,6 +110,7 @@ __webpack_require__.r(__webpack_exports__);
110
110
var plugin = {
111
111
install : function install ( Vue ) {
112
112
Vue . directive ( 'esc' , _vue_esc__WEBPACK_IMPORTED_MODULE_0__ [ "default" ] ) ;
113
+ document . addEventListener ( 'keyup' , _vue_esc__WEBPACK_IMPORTED_MODULE_0__ [ "default" ] . onEvent ) ;
113
114
}
114
115
} ;
115
116
/* harmony default export */ __webpack_exports__ [ "default" ] = ( plugin ) ;
@@ -125,31 +126,58 @@ var plugin = {
125
126
126
127
"use strict" ;
127
128
__webpack_require__ . r ( __webpack_exports__ ) ;
129
+ function _slicedToArray ( arr , i ) { return _arrayWithHoles ( arr ) || _iterableToArrayLimit ( arr , i ) || _nonIterableRest ( ) ; }
130
+
131
+ function _nonIterableRest ( ) { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; }
132
+
133
+ function _iterableToArrayLimit ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] != null ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; }
134
+
135
+ function _arrayWithHoles ( arr ) { if ( Array . isArray ( arr ) ) return arr ; }
136
+
128
137
var vueEsc = { } ;
138
+ vueEsc . cb = new Map ( ) ; // key: HTMLElement, value: callback
129
139
130
140
vueEsc . onEvent = function ( event ) {
131
141
if ( event . keyCode === 27 ) {
132
- vueEsc . cb && vueEsc . cb ( event ) ;
133
- }
134
- } ;
142
+ var _iteratorNormalCompletion = true ;
143
+ var _didIteratorError = false ;
144
+ var _iteratorError = undefined ;
135
145
136
- vueEsc . bind = function ( el ) {
137
- vueEsc . onEventBound = vueEsc . onEvent . bind ( {
138
- el : el
139
- } ) ;
140
- document . addEventListener ( 'keyup' , vueEsc . onEventBound ) ;
146
+ try {
147
+ for ( var _iterator = vueEsc . cb . entries ( ) [ Symbol . iterator ] ( ) , _step ; ! ( _iteratorNormalCompletion = ( _step = _iterator . next ( ) ) . done ) ; _iteratorNormalCompletion = true ) {
148
+ var _step$value = _slicedToArray ( _step . value , 2 ) ,
149
+ element = _step$value [ 0 ] ,
150
+ cb = _step$value [ 1 ] ;
151
+
152
+ cb && cb . call ( element , event ) ;
153
+ }
154
+ } catch ( err ) {
155
+ _didIteratorError = true ;
156
+ _iteratorError = err ;
157
+ } finally {
158
+ try {
159
+ if ( ! _iteratorNormalCompletion && _iterator . return != null ) {
160
+ _iterator . return ( ) ;
161
+ }
162
+ } finally {
163
+ if ( _didIteratorError ) {
164
+ throw _iteratorError ;
165
+ }
166
+ }
167
+ }
168
+ }
141
169
} ;
142
170
143
171
vueEsc . update = function ( el , binding ) {
144
172
if ( typeof binding . value !== 'function' ) {
145
173
throw new Error ( 'Argument must be a function' ) ;
146
174
}
147
175
148
- vueEsc . cb = binding . value ;
176
+ vueEsc . cb . set ( el , binding . value ) ;
149
177
} ;
150
178
151
- vueEsc . unbind = function ( ) {
152
- document . removeEventListener ( 'keyup' , vueEsc . onEventBound ) ;
179
+ vueEsc . unbind = function ( el ) {
180
+ vueEsc . cb . delete ( el ) ;
153
181
} ;
154
182
155
183
/* harmony default export */ __webpack_exports__ [ "default" ] = ( vueEsc ) ;
0 commit comments