logster 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/lib/logster/version.rb +1 -1
  3. data/logster.gemspec +1 -1
  4. metadata +1 -216
  5. data/bower_components/ember/.bower.json +0 -22
  6. data/bower_components/ember/.gitignore +0 -5
  7. data/bower_components/ember/Makefile +0 -9
  8. data/bower_components/ember/README.md +0 -12
  9. data/bower_components/ember/bower.json +0 -11
  10. data/bower_components/ember/component.json +0 -13
  11. data/bower_components/ember/composer.json +0 -27
  12. data/bower_components/ember/ember-template-compiler.js +0 -320
  13. data/bower_components/ember/ember.js +0 -44267
  14. data/bower_components/ember/ember.min.js +0 -19
  15. data/bower_components/ember/ember.prod.js +0 -42649
  16. data/bower_components/ember/package.json +0 -11
  17. data/bower_components/handlebars/.bower.json +0 -16
  18. data/bower_components/handlebars/.gitignore +0 -2
  19. data/bower_components/handlebars/README.md +0 -11
  20. data/bower_components/handlebars/bower.json +0 -6
  21. data/bower_components/handlebars/component.json +0 -9
  22. data/bower_components/handlebars/composer.json +0 -35
  23. data/bower_components/handlebars/handlebars-source.gemspec +0 -21
  24. data/bower_components/handlebars/handlebars.amd.js +0 -2719
  25. data/bower_components/handlebars/handlebars.amd.min.js +0 -28
  26. data/bower_components/handlebars/handlebars.js +0 -2746
  27. data/bower_components/handlebars/handlebars.js.nuspec +0 -17
  28. data/bower_components/handlebars/handlebars.min.js +0 -28
  29. data/bower_components/handlebars/handlebars.runtime.amd.js +0 -515
  30. data/bower_components/handlebars/handlebars.runtime.amd.min.js +0 -27
  31. data/bower_components/handlebars/handlebars.runtime.js +0 -530
  32. data/bower_components/handlebars/handlebars.runtime.min.js +0 -27
  33. data/bower_components/handlebars/lib/handlebars/source.rb +0 -11
  34. data/bower_components/jquery/.bower.json +0 -37
  35. data/bower_components/jquery/MIT-LICENSE.txt +0 -21
  36. data/bower_components/jquery/bower.json +0 -27
  37. data/bower_components/jquery/dist/jquery.js +0 -9111
  38. data/bower_components/jquery/dist/jquery.min.js +0 -5
  39. data/bower_components/jquery/dist/jquery.min.map +0 -1
  40. data/bower_components/jquery/src/ajax.js +0 -806
  41. data/bower_components/jquery/src/ajax/jsonp.js +0 -89
  42. data/bower_components/jquery/src/ajax/load.js +0 -75
  43. data/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  44. data/bower_components/jquery/src/ajax/parseXML.js +0 -28
  45. data/bower_components/jquery/src/ajax/script.js +0 -64
  46. data/bower_components/jquery/src/ajax/var/nonce.js +0 -5
  47. data/bower_components/jquery/src/ajax/var/rquery.js +0 -3
  48. data/bower_components/jquery/src/ajax/xhr.js +0 -130
  49. data/bower_components/jquery/src/attributes.js +0 -11
  50. data/bower_components/jquery/src/attributes/attr.js +0 -143
  51. data/bower_components/jquery/src/attributes/classes.js +0 -158
  52. data/bower_components/jquery/src/attributes/prop.js +0 -96
  53. data/bower_components/jquery/src/attributes/support.js +0 -35
  54. data/bower_components/jquery/src/attributes/val.js +0 -153
  55. data/bower_components/jquery/src/callbacks.js +0 -205
  56. data/bower_components/jquery/src/core.js +0 -500
  57. data/bower_components/jquery/src/core/access.js +0 -60
  58. data/bower_components/jquery/src/core/init.js +0 -123
  59. data/bower_components/jquery/src/core/parseHTML.js +0 -39
  60. data/bower_components/jquery/src/core/ready.js +0 -96
  61. data/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
  62. data/bower_components/jquery/src/css.js +0 -455
  63. data/bower_components/jquery/src/css/addGetHookIf.js +0 -24
  64. data/bower_components/jquery/src/css/curCSS.js +0 -57
  65. data/bower_components/jquery/src/css/defaultDisplay.js +0 -69
  66. data/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  67. data/bower_components/jquery/src/css/support.js +0 -83
  68. data/bower_components/jquery/src/css/swap.js +0 -28
  69. data/bower_components/jquery/src/css/var/cssExpand.js +0 -3
  70. data/bower_components/jquery/src/css/var/getStyles.js +0 -5
  71. data/bower_components/jquery/src/css/var/isHidden.js +0 -13
  72. data/bower_components/jquery/src/css/var/rmargin.js +0 -3
  73. data/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
  74. data/bower_components/jquery/src/data.js +0 -175
  75. data/bower_components/jquery/src/data/Data.js +0 -181
  76. data/bower_components/jquery/src/data/accepts.js +0 -20
  77. data/bower_components/jquery/src/data/var/data_priv.js +0 -5
  78. data/bower_components/jquery/src/data/var/data_user.js +0 -5
  79. data/bower_components/jquery/src/deferred.js +0 -149
  80. data/bower_components/jquery/src/deprecated.js +0 -13
  81. data/bower_components/jquery/src/dimensions.js +0 -50
  82. data/bower_components/jquery/src/effects.js +0 -642
  83. data/bower_components/jquery/src/effects/Tween.js +0 -114
  84. data/bower_components/jquery/src/effects/animatedSelector.js +0 -13
  85. data/bower_components/jquery/src/event.js +0 -859
  86. data/bower_components/jquery/src/event/alias.js +0 -39
  87. data/bower_components/jquery/src/event/support.js +0 -9
  88. data/bower_components/jquery/src/exports/amd.js +0 -18
  89. data/bower_components/jquery/src/exports/global.js +0 -32
  90. data/bower_components/jquery/src/intro.js +0 -44
  91. data/bower_components/jquery/src/jquery.js +0 -36
  92. data/bower_components/jquery/src/manipulation.js +0 -583
  93. data/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
  94. data/bower_components/jquery/src/manipulation/support.js +0 -24
  95. data/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
  96. data/bower_components/jquery/src/offset.js +0 -204
  97. data/bower_components/jquery/src/outro.js +0 -1
  98. data/bower_components/jquery/src/queue.js +0 -142
  99. data/bower_components/jquery/src/queue/delay.js +0 -22
  100. data/bower_components/jquery/src/selector-native.js +0 -171
  101. data/bower_components/jquery/src/selector-sizzle.js +0 -14
  102. data/bower_components/jquery/src/selector.js +0 -1
  103. data/bower_components/jquery/src/serialize.js +0 -111
  104. data/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2015
  105. data/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  106. data/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  107. data/bower_components/jquery/src/traversing.js +0 -200
  108. data/bower_components/jquery/src/traversing/findFilter.js +0 -100
  109. data/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
  110. data/bower_components/jquery/src/var/arr.js +0 -3
  111. data/bower_components/jquery/src/var/class2type.js +0 -4
  112. data/bower_components/jquery/src/var/concat.js +0 -5
  113. data/bower_components/jquery/src/var/hasOwn.js +0 -5
  114. data/bower_components/jquery/src/var/indexOf.js +0 -5
  115. data/bower_components/jquery/src/var/pnum.js +0 -3
  116. data/bower_components/jquery/src/var/push.js +0 -5
  117. data/bower_components/jquery/src/var/rnotwhite.js +0 -3
  118. data/bower_components/jquery/src/var/slice.js +0 -5
  119. data/bower_components/jquery/src/var/strundefined.js +0 -3
  120. data/bower_components/jquery/src/var/support.js +0 -4
  121. data/bower_components/jquery/src/var/toString.js +0 -5
  122. data/bower_components/jquery/src/var/trim.js +0 -3
  123. data/bower_components/jquery/src/wrap.js +0 -78
  124. data/bower_components/lodash/.bower.json +0 -34
  125. data/bower_components/lodash/LICENSE.txt +0 -22
  126. data/bower_components/lodash/bower.json +0 -23
  127. data/bower_components/lodash/dist/lodash.compat.js +0 -7157
  128. data/bower_components/lodash/dist/lodash.compat.min.js +0 -61
  129. data/bower_components/lodash/dist/lodash.js +0 -6785
  130. data/bower_components/lodash/dist/lodash.min.js +0 -56
  131. data/bower_components/lodash/dist/lodash.underscore.js +0 -4979
  132. data/bower_components/lodash/dist/lodash.underscore.min.js +0 -39
  133. data/bower_components/moment/.bower.json +0 -31
  134. data/bower_components/moment/LICENSE +0 -22
  135. data/bower_components/moment/bower.json +0 -20
  136. data/bower_components/moment/lang/ar-ma.js +0 -56
  137. data/bower_components/moment/lang/ar.js +0 -56
  138. data/bower_components/moment/lang/bg.js +0 -86
  139. data/bower_components/moment/lang/br.js +0 -107
  140. data/bower_components/moment/lang/bs.js +0 -139
  141. data/bower_components/moment/lang/ca.js +0 -66
  142. data/bower_components/moment/lang/cs.js +0 -155
  143. data/bower_components/moment/lang/cv.js +0 -59
  144. data/bower_components/moment/lang/cy.js +0 -77
  145. data/bower_components/moment/lang/da.js +0 -56
  146. data/bower_components/moment/lang/de.js +0 -71
  147. data/bower_components/moment/lang/el.js +0 -79
  148. data/bower_components/moment/lang/en-au.js +0 -62
  149. data/bower_components/moment/lang/en-ca.js +0 -59
  150. data/bower_components/moment/lang/en-gb.js +0 -63
  151. data/bower_components/moment/lang/eo.js +0 -65
  152. data/bower_components/moment/lang/es.js +0 -75
  153. data/bower_components/moment/lang/et.js +0 -76
  154. data/bower_components/moment/lang/eu.js +0 -60
  155. data/bower_components/moment/lang/fa.js +0 -97
  156. data/bower_components/moment/lang/fi.js +0 -103
  157. data/bower_components/moment/lang/fo.js +0 -56
  158. data/bower_components/moment/lang/fr-ca.js +0 -54
  159. data/bower_components/moment/lang/fr.js +0 -58
  160. data/bower_components/moment/lang/gl.js +0 -71
  161. data/bower_components/moment/lang/he.js +0 -77
  162. data/bower_components/moment/lang/hi.js +0 -105
  163. data/bower_components/moment/lang/hr.js +0 -140
  164. data/bower_components/moment/lang/hu.js +0 -105
  165. data/bower_components/moment/lang/hy-am.js +0 -113
  166. data/bower_components/moment/lang/id.js +0 -67
  167. data/bower_components/moment/lang/is.js +0 -124
  168. data/bower_components/moment/lang/it.js +0 -59
  169. data/bower_components/moment/lang/ja.js +0 -58
  170. data/bower_components/moment/lang/ka.js +0 -108
  171. data/bower_components/moment/lang/km.js +0 -55
  172. data/bower_components/moment/lang/ko.js +0 -63
  173. data/bower_components/moment/lang/lb.js +0 -160
  174. data/bower_components/moment/lang/lt.js +0 -118
  175. data/bower_components/moment/lang/lv.js +0 -77
  176. data/bower_components/moment/lang/mk.js +0 -86
  177. data/bower_components/moment/lang/ml.js +0 -64
  178. data/bower_components/moment/lang/mr.js +0 -104
  179. data/bower_components/moment/lang/ms-my.js +0 -66
  180. data/bower_components/moment/lang/nb.js +0 -57
  181. data/bower_components/moment/lang/ne.js +0 -105
  182. data/bower_components/moment/lang/nl.js +0 -67
  183. data/bower_components/moment/lang/nn.js +0 -56
  184. data/bower_components/moment/lang/pl.js +0 -98
  185. data/bower_components/moment/lang/pt-br.js +0 -56
  186. data/bower_components/moment/lang/pt.js +0 -60
  187. data/bower_components/moment/lang/ro.js +0 -72
  188. data/bower_components/moment/lang/ru.js +0 -163
  189. data/bower_components/moment/lang/sk.js +0 -156
  190. data/bower_components/moment/lang/sl.js +0 -144
  191. data/bower_components/moment/lang/sq.js +0 -61
  192. data/bower_components/moment/lang/sr-cyr.js +0 -106
  193. data/bower_components/moment/lang/sr.js +0 -106
  194. data/bower_components/moment/lang/sv.js +0 -63
  195. data/bower_components/moment/lang/ta.js +0 -112
  196. data/bower_components/moment/lang/th.js +0 -58
  197. data/bower_components/moment/lang/tl-ph.js +0 -58
  198. data/bower_components/moment/lang/tr.js +0 -93
  199. data/bower_components/moment/lang/tzm-la.js +0 -55
  200. data/bower_components/moment/lang/tzm.js +0 -55
  201. data/bower_components/moment/lang/uk.js +0 -157
  202. data/bower_components/moment/lang/uz.js +0 -55
  203. data/bower_components/moment/lang/vi.js +0 -62
  204. data/bower_components/moment/lang/zh-cn.js +0 -108
  205. data/bower_components/moment/lang/zh-tw.js +0 -84
  206. data/bower_components/moment/min/langs.js +0 -5991
  207. data/bower_components/moment/min/langs.min.js +0 -3
  208. data/bower_components/moment/min/moment-with-langs.js +0 -7993
  209. data/bower_components/moment/min/moment-with-langs.min.js +0 -9
  210. data/bower_components/moment/min/moment.min.js +0 -6
  211. data/bower_components/moment/moment.js +0 -2489
  212. data/bower_components/moment/readme.md +0 -368
  213. data/website/Gemfile +0 -6
  214. data/website/config.ru +0 -2
  215. data/website/data/data.json +0 -1
  216. data/website/docker_container/logster.yml +0 -95
  217. data/website/sample.rb +0 -85
  218. data/website/scripts/persist_logs.rb +0 -13
@@ -1,114 +0,0 @@
1
- define([
2
- "../core",
3
- "../css"
4
- ], function( jQuery ) {
5
-
6
- function Tween( elem, options, prop, end, easing ) {
7
- return new Tween.prototype.init( elem, options, prop, end, easing );
8
- }
9
- jQuery.Tween = Tween;
10
-
11
- Tween.prototype = {
12
- constructor: Tween,
13
- init: function( elem, options, prop, end, easing, unit ) {
14
- this.elem = elem;
15
- this.prop = prop;
16
- this.easing = easing || "swing";
17
- this.options = options;
18
- this.start = this.now = this.cur();
19
- this.end = end;
20
- this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
21
- },
22
- cur: function() {
23
- var hooks = Tween.propHooks[ this.prop ];
24
-
25
- return hooks && hooks.get ?
26
- hooks.get( this ) :
27
- Tween.propHooks._default.get( this );
28
- },
29
- run: function( percent ) {
30
- var eased,
31
- hooks = Tween.propHooks[ this.prop ];
32
-
33
- if ( this.options.duration ) {
34
- this.pos = eased = jQuery.easing[ this.easing ](
35
- percent, this.options.duration * percent, 0, 1, this.options.duration
36
- );
37
- } else {
38
- this.pos = eased = percent;
39
- }
40
- this.now = ( this.end - this.start ) * eased + this.start;
41
-
42
- if ( this.options.step ) {
43
- this.options.step.call( this.elem, this.now, this );
44
- }
45
-
46
- if ( hooks && hooks.set ) {
47
- hooks.set( this );
48
- } else {
49
- Tween.propHooks._default.set( this );
50
- }
51
- return this;
52
- }
53
- };
54
-
55
- Tween.prototype.init.prototype = Tween.prototype;
56
-
57
- Tween.propHooks = {
58
- _default: {
59
- get: function( tween ) {
60
- var result;
61
-
62
- if ( tween.elem[ tween.prop ] != null &&
63
- (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
64
- return tween.elem[ tween.prop ];
65
- }
66
-
67
- // passing an empty string as a 3rd parameter to .css will automatically
68
- // attempt a parseFloat and fallback to a string if the parse fails
69
- // so, simple values such as "10px" are parsed to Float.
70
- // complex values such as "rotate(1rad)" are returned as is.
71
- result = jQuery.css( tween.elem, tween.prop, "" );
72
- // Empty strings, null, undefined and "auto" are converted to 0.
73
- return !result || result === "auto" ? 0 : result;
74
- },
75
- set: function( tween ) {
76
- // use step hook for back compat - use cssHook if its there - use .style if its
77
- // available and use plain properties where available
78
- if ( jQuery.fx.step[ tween.prop ] ) {
79
- jQuery.fx.step[ tween.prop ]( tween );
80
- } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
81
- jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
82
- } else {
83
- tween.elem[ tween.prop ] = tween.now;
84
- }
85
- }
86
- }
87
- };
88
-
89
- // Support: IE9
90
- // Panic based approach to setting things on disconnected nodes
91
-
92
- Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
93
- set: function( tween ) {
94
- if ( tween.elem.nodeType && tween.elem.parentNode ) {
95
- tween.elem[ tween.prop ] = tween.now;
96
- }
97
- }
98
- };
99
-
100
- jQuery.easing = {
101
- linear: function( p ) {
102
- return p;
103
- },
104
- swing: function( p ) {
105
- return 0.5 - Math.cos( p * Math.PI ) / 2;
106
- }
107
- };
108
-
109
- jQuery.fx = Tween.prototype.init;
110
-
111
- // Back Compat <1.8 extension point
112
- jQuery.fx.step = {};
113
-
114
- });
@@ -1,13 +0,0 @@
1
- define([
2
- "../core",
3
- "../selector",
4
- "../effects"
5
- ], function( jQuery ) {
6
-
7
- jQuery.expr.filters.animated = function( elem ) {
8
- return jQuery.grep(jQuery.timers, function( fn ) {
9
- return elem === fn.elem;
10
- }).length;
11
- };
12
-
13
- });
@@ -1,859 +0,0 @@
1
- define([
2
- "./core",
3
- "./var/strundefined",
4
- "./var/rnotwhite",
5
- "./var/hasOwn",
6
- "./var/slice",
7
- "./event/support",
8
- "./data/var/data_priv",
9
-
10
- "./core/init",
11
- "./data/accepts",
12
- "./selector"
13
- ], function( jQuery, strundefined, rnotwhite, hasOwn, slice, support, data_priv ) {
14
-
15
- var
16
- rkeyEvent = /^key/,
17
- rmouseEvent = /^(?:mouse|contextmenu)|click/,
18
- rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
19
- rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
20
-
21
- function returnTrue() {
22
- return true;
23
- }
24
-
25
- function returnFalse() {
26
- return false;
27
- }
28
-
29
- function safeActiveElement() {
30
- try {
31
- return document.activeElement;
32
- } catch ( err ) { }
33
- }
34
-
35
- /*
36
- * Helper functions for managing events -- not part of the public interface.
37
- * Props to Dean Edwards' addEvent library for many of the ideas.
38
- */
39
- jQuery.event = {
40
-
41
- global: {},
42
-
43
- add: function( elem, types, handler, data, selector ) {
44
-
45
- var handleObjIn, eventHandle, tmp,
46
- events, t, handleObj,
47
- special, handlers, type, namespaces, origType,
48
- elemData = data_priv.get( elem );
49
-
50
- // Don't attach events to noData or text/comment nodes (but allow plain objects)
51
- if ( !elemData ) {
52
- return;
53
- }
54
-
55
- // Caller can pass in an object of custom data in lieu of the handler
56
- if ( handler.handler ) {
57
- handleObjIn = handler;
58
- handler = handleObjIn.handler;
59
- selector = handleObjIn.selector;
60
- }
61
-
62
- // Make sure that the handler has a unique ID, used to find/remove it later
63
- if ( !handler.guid ) {
64
- handler.guid = jQuery.guid++;
65
- }
66
-
67
- // Init the element's event structure and main handler, if this is the first
68
- if ( !(events = elemData.events) ) {
69
- events = elemData.events = {};
70
- }
71
- if ( !(eventHandle = elemData.handle) ) {
72
- eventHandle = elemData.handle = function( e ) {
73
- // Discard the second event of a jQuery.event.trigger() and
74
- // when an event is called after a page has unloaded
75
- return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
76
- jQuery.event.dispatch.apply( elem, arguments ) : undefined;
77
- };
78
- }
79
-
80
- // Handle multiple events separated by a space
81
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
82
- t = types.length;
83
- while ( t-- ) {
84
- tmp = rtypenamespace.exec( types[t] ) || [];
85
- type = origType = tmp[1];
86
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
87
-
88
- // There *must* be a type, no attaching namespace-only handlers
89
- if ( !type ) {
90
- continue;
91
- }
92
-
93
- // If event changes its type, use the special event handlers for the changed type
94
- special = jQuery.event.special[ type ] || {};
95
-
96
- // If selector defined, determine special event api type, otherwise given type
97
- type = ( selector ? special.delegateType : special.bindType ) || type;
98
-
99
- // Update special based on newly reset type
100
- special = jQuery.event.special[ type ] || {};
101
-
102
- // handleObj is passed to all event handlers
103
- handleObj = jQuery.extend({
104
- type: type,
105
- origType: origType,
106
- data: data,
107
- handler: handler,
108
- guid: handler.guid,
109
- selector: selector,
110
- needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
111
- namespace: namespaces.join(".")
112
- }, handleObjIn );
113
-
114
- // Init the event handler queue if we're the first
115
- if ( !(handlers = events[ type ]) ) {
116
- handlers = events[ type ] = [];
117
- handlers.delegateCount = 0;
118
-
119
- // Only use addEventListener if the special events handler returns false
120
- if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
121
- if ( elem.addEventListener ) {
122
- elem.addEventListener( type, eventHandle, false );
123
- }
124
- }
125
- }
126
-
127
- if ( special.add ) {
128
- special.add.call( elem, handleObj );
129
-
130
- if ( !handleObj.handler.guid ) {
131
- handleObj.handler.guid = handler.guid;
132
- }
133
- }
134
-
135
- // Add to the element's handler list, delegates in front
136
- if ( selector ) {
137
- handlers.splice( handlers.delegateCount++, 0, handleObj );
138
- } else {
139
- handlers.push( handleObj );
140
- }
141
-
142
- // Keep track of which events have ever been used, for event optimization
143
- jQuery.event.global[ type ] = true;
144
- }
145
-
146
- },
147
-
148
- // Detach an event or set of events from an element
149
- remove: function( elem, types, handler, selector, mappedTypes ) {
150
-
151
- var j, origCount, tmp,
152
- events, t, handleObj,
153
- special, handlers, type, namespaces, origType,
154
- elemData = data_priv.hasData( elem ) && data_priv.get( elem );
155
-
156
- if ( !elemData || !(events = elemData.events) ) {
157
- return;
158
- }
159
-
160
- // Once for each type.namespace in types; type may be omitted
161
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
162
- t = types.length;
163
- while ( t-- ) {
164
- tmp = rtypenamespace.exec( types[t] ) || [];
165
- type = origType = tmp[1];
166
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
167
-
168
- // Unbind all events (on this namespace, if provided) for the element
169
- if ( !type ) {
170
- for ( type in events ) {
171
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
172
- }
173
- continue;
174
- }
175
-
176
- special = jQuery.event.special[ type ] || {};
177
- type = ( selector ? special.delegateType : special.bindType ) || type;
178
- handlers = events[ type ] || [];
179
- tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
180
-
181
- // Remove matching events
182
- origCount = j = handlers.length;
183
- while ( j-- ) {
184
- handleObj = handlers[ j ];
185
-
186
- if ( ( mappedTypes || origType === handleObj.origType ) &&
187
- ( !handler || handler.guid === handleObj.guid ) &&
188
- ( !tmp || tmp.test( handleObj.namespace ) ) &&
189
- ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
190
- handlers.splice( j, 1 );
191
-
192
- if ( handleObj.selector ) {
193
- handlers.delegateCount--;
194
- }
195
- if ( special.remove ) {
196
- special.remove.call( elem, handleObj );
197
- }
198
- }
199
- }
200
-
201
- // Remove generic event handler if we removed something and no more handlers exist
202
- // (avoids potential for endless recursion during removal of special event handlers)
203
- if ( origCount && !handlers.length ) {
204
- if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
205
- jQuery.removeEvent( elem, type, elemData.handle );
206
- }
207
-
208
- delete events[ type ];
209
- }
210
- }
211
-
212
- // Remove the expando if it's no longer used
213
- if ( jQuery.isEmptyObject( events ) ) {
214
- delete elemData.handle;
215
- data_priv.remove( elem, "events" );
216
- }
217
- },
218
-
219
- trigger: function( event, data, elem, onlyHandlers ) {
220
-
221
- var i, cur, tmp, bubbleType, ontype, handle, special,
222
- eventPath = [ elem || document ],
223
- type = hasOwn.call( event, "type" ) ? event.type : event,
224
- namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
225
-
226
- cur = tmp = elem = elem || document;
227
-
228
- // Don't do events on text and comment nodes
229
- if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
230
- return;
231
- }
232
-
233
- // focus/blur morphs to focusin/out; ensure we're not firing them right now
234
- if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
235
- return;
236
- }
237
-
238
- if ( type.indexOf(".") >= 0 ) {
239
- // Namespaced trigger; create a regexp to match event type in handle()
240
- namespaces = type.split(".");
241
- type = namespaces.shift();
242
- namespaces.sort();
243
- }
244
- ontype = type.indexOf(":") < 0 && "on" + type;
245
-
246
- // Caller can pass in a jQuery.Event object, Object, or just an event type string
247
- event = event[ jQuery.expando ] ?
248
- event :
249
- new jQuery.Event( type, typeof event === "object" && event );
250
-
251
- // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
252
- event.isTrigger = onlyHandlers ? 2 : 3;
253
- event.namespace = namespaces.join(".");
254
- event.namespace_re = event.namespace ?
255
- new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
256
- null;
257
-
258
- // Clean up the event in case it is being reused
259
- event.result = undefined;
260
- if ( !event.target ) {
261
- event.target = elem;
262
- }
263
-
264
- // Clone any incoming data and prepend the event, creating the handler arg list
265
- data = data == null ?
266
- [ event ] :
267
- jQuery.makeArray( data, [ event ] );
268
-
269
- // Allow special events to draw outside the lines
270
- special = jQuery.event.special[ type ] || {};
271
- if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
272
- return;
273
- }
274
-
275
- // Determine event propagation path in advance, per W3C events spec (#9951)
276
- // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
277
- if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
278
-
279
- bubbleType = special.delegateType || type;
280
- if ( !rfocusMorph.test( bubbleType + type ) ) {
281
- cur = cur.parentNode;
282
- }
283
- for ( ; cur; cur = cur.parentNode ) {
284
- eventPath.push( cur );
285
- tmp = cur;
286
- }
287
-
288
- // Only add window if we got to document (e.g., not plain obj or detached DOM)
289
- if ( tmp === (elem.ownerDocument || document) ) {
290
- eventPath.push( tmp.defaultView || tmp.parentWindow || window );
291
- }
292
- }
293
-
294
- // Fire handlers on the event path
295
- i = 0;
296
- while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
297
-
298
- event.type = i > 1 ?
299
- bubbleType :
300
- special.bindType || type;
301
-
302
- // jQuery handler
303
- handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
304
- if ( handle ) {
305
- handle.apply( cur, data );
306
- }
307
-
308
- // Native handler
309
- handle = ontype && cur[ ontype ];
310
- if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
311
- event.result = handle.apply( cur, data );
312
- if ( event.result === false ) {
313
- event.preventDefault();
314
- }
315
- }
316
- }
317
- event.type = type;
318
-
319
- // If nobody prevented the default action, do it now
320
- if ( !onlyHandlers && !event.isDefaultPrevented() ) {
321
-
322
- if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
323
- jQuery.acceptData( elem ) ) {
324
-
325
- // Call a native DOM method on the target with the same name name as the event.
326
- // Don't do default actions on window, that's where global variables be (#6170)
327
- if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
328
-
329
- // Don't re-trigger an onFOO event when we call its FOO() method
330
- tmp = elem[ ontype ];
331
-
332
- if ( tmp ) {
333
- elem[ ontype ] = null;
334
- }
335
-
336
- // Prevent re-triggering of the same event, since we already bubbled it above
337
- jQuery.event.triggered = type;
338
- elem[ type ]();
339
- jQuery.event.triggered = undefined;
340
-
341
- if ( tmp ) {
342
- elem[ ontype ] = tmp;
343
- }
344
- }
345
- }
346
- }
347
-
348
- return event.result;
349
- },
350
-
351
- dispatch: function( event ) {
352
-
353
- // Make a writable jQuery.Event from the native event object
354
- event = jQuery.event.fix( event );
355
-
356
- var i, j, ret, matched, handleObj,
357
- handlerQueue = [],
358
- args = slice.call( arguments ),
359
- handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
360
- special = jQuery.event.special[ event.type ] || {};
361
-
362
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
363
- args[0] = event;
364
- event.delegateTarget = this;
365
-
366
- // Call the preDispatch hook for the mapped type, and let it bail if desired
367
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
368
- return;
369
- }
370
-
371
- // Determine handlers
372
- handlerQueue = jQuery.event.handlers.call( this, event, handlers );
373
-
374
- // Run delegates first; they may want to stop propagation beneath us
375
- i = 0;
376
- while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
377
- event.currentTarget = matched.elem;
378
-
379
- j = 0;
380
- while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
381
-
382
- // Triggered event must either 1) have no namespace, or
383
- // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
384
- if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
385
-
386
- event.handleObj = handleObj;
387
- event.data = handleObj.data;
388
-
389
- ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
390
- .apply( matched.elem, args );
391
-
392
- if ( ret !== undefined ) {
393
- if ( (event.result = ret) === false ) {
394
- event.preventDefault();
395
- event.stopPropagation();
396
- }
397
- }
398
- }
399
- }
400
- }
401
-
402
- // Call the postDispatch hook for the mapped type
403
- if ( special.postDispatch ) {
404
- special.postDispatch.call( this, event );
405
- }
406
-
407
- return event.result;
408
- },
409
-
410
- handlers: function( event, handlers ) {
411
- var i, matches, sel, handleObj,
412
- handlerQueue = [],
413
- delegateCount = handlers.delegateCount,
414
- cur = event.target;
415
-
416
- // Find delegate handlers
417
- // Black-hole SVG <use> instance trees (#13180)
418
- // Avoid non-left-click bubbling in Firefox (#3861)
419
- if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
420
-
421
- for ( ; cur !== this; cur = cur.parentNode || this ) {
422
-
423
- // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
424
- if ( cur.disabled !== true || event.type !== "click" ) {
425
- matches = [];
426
- for ( i = 0; i < delegateCount; i++ ) {
427
- handleObj = handlers[ i ];
428
-
429
- // Don't conflict with Object.prototype properties (#13203)
430
- sel = handleObj.selector + " ";
431
-
432
- if ( matches[ sel ] === undefined ) {
433
- matches[ sel ] = handleObj.needsContext ?
434
- jQuery( sel, this ).index( cur ) >= 0 :
435
- jQuery.find( sel, this, null, [ cur ] ).length;
436
- }
437
- if ( matches[ sel ] ) {
438
- matches.push( handleObj );
439
- }
440
- }
441
- if ( matches.length ) {
442
- handlerQueue.push({ elem: cur, handlers: matches });
443
- }
444
- }
445
- }
446
- }
447
-
448
- // Add the remaining (directly-bound) handlers
449
- if ( delegateCount < handlers.length ) {
450
- handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
451
- }
452
-
453
- return handlerQueue;
454
- },
455
-
456
- // Includes some event props shared by KeyEvent and MouseEvent
457
- props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
458
-
459
- fixHooks: {},
460
-
461
- keyHooks: {
462
- props: "char charCode key keyCode".split(" "),
463
- filter: function( event, original ) {
464
-
465
- // Add which for key events
466
- if ( event.which == null ) {
467
- event.which = original.charCode != null ? original.charCode : original.keyCode;
468
- }
469
-
470
- return event;
471
- }
472
- },
473
-
474
- mouseHooks: {
475
- props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
476
- filter: function( event, original ) {
477
- var eventDoc, doc, body,
478
- button = original.button;
479
-
480
- // Calculate pageX/Y if missing and clientX/Y available
481
- if ( event.pageX == null && original.clientX != null ) {
482
- eventDoc = event.target.ownerDocument || document;
483
- doc = eventDoc.documentElement;
484
- body = eventDoc.body;
485
-
486
- event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
487
- event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
488
- }
489
-
490
- // Add which for click: 1 === left; 2 === middle; 3 === right
491
- // Note: button is not normalized, so don't use it
492
- if ( !event.which && button !== undefined ) {
493
- event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
494
- }
495
-
496
- return event;
497
- }
498
- },
499
-
500
- fix: function( event ) {
501
- if ( event[ jQuery.expando ] ) {
502
- return event;
503
- }
504
-
505
- // Create a writable copy of the event object and normalize some properties
506
- var i, prop, copy,
507
- type = event.type,
508
- originalEvent = event,
509
- fixHook = this.fixHooks[ type ];
510
-
511
- if ( !fixHook ) {
512
- this.fixHooks[ type ] = fixHook =
513
- rmouseEvent.test( type ) ? this.mouseHooks :
514
- rkeyEvent.test( type ) ? this.keyHooks :
515
- {};
516
- }
517
- copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
518
-
519
- event = new jQuery.Event( originalEvent );
520
-
521
- i = copy.length;
522
- while ( i-- ) {
523
- prop = copy[ i ];
524
- event[ prop ] = originalEvent[ prop ];
525
- }
526
-
527
- // Support: Cordova 2.5 (WebKit) (#13255)
528
- // All events should have a target; Cordova deviceready doesn't
529
- if ( !event.target ) {
530
- event.target = document;
531
- }
532
-
533
- // Support: Safari 6.0+, Chrome < 28
534
- // Target should not be a text node (#504, #13143)
535
- if ( event.target.nodeType === 3 ) {
536
- event.target = event.target.parentNode;
537
- }
538
-
539
- return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
540
- },
541
-
542
- special: {
543
- load: {
544
- // Prevent triggered image.load events from bubbling to window.load
545
- noBubble: true
546
- },
547
- focus: {
548
- // Fire native event if possible so blur/focus sequence is correct
549
- trigger: function() {
550
- if ( this !== safeActiveElement() && this.focus ) {
551
- this.focus();
552
- return false;
553
- }
554
- },
555
- delegateType: "focusin"
556
- },
557
- blur: {
558
- trigger: function() {
559
- if ( this === safeActiveElement() && this.blur ) {
560
- this.blur();
561
- return false;
562
- }
563
- },
564
- delegateType: "focusout"
565
- },
566
- click: {
567
- // For checkbox, fire native event so checked state will be right
568
- trigger: function() {
569
- if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
570
- this.click();
571
- return false;
572
- }
573
- },
574
-
575
- // For cross-browser consistency, don't fire native .click() on links
576
- _default: function( event ) {
577
- return jQuery.nodeName( event.target, "a" );
578
- }
579
- },
580
-
581
- beforeunload: {
582
- postDispatch: function( event ) {
583
-
584
- // Support: Firefox 20+
585
- // Firefox doesn't alert if the returnValue field is not set.
586
- if ( event.result !== undefined ) {
587
- event.originalEvent.returnValue = event.result;
588
- }
589
- }
590
- }
591
- },
592
-
593
- simulate: function( type, elem, event, bubble ) {
594
- // Piggyback on a donor event to simulate a different one.
595
- // Fake originalEvent to avoid donor's stopPropagation, but if the
596
- // simulated event prevents default then we do the same on the donor.
597
- var e = jQuery.extend(
598
- new jQuery.Event(),
599
- event,
600
- {
601
- type: type,
602
- isSimulated: true,
603
- originalEvent: {}
604
- }
605
- );
606
- if ( bubble ) {
607
- jQuery.event.trigger( e, null, elem );
608
- } else {
609
- jQuery.event.dispatch.call( elem, e );
610
- }
611
- if ( e.isDefaultPrevented() ) {
612
- event.preventDefault();
613
- }
614
- }
615
- };
616
-
617
- jQuery.removeEvent = function( elem, type, handle ) {
618
- if ( elem.removeEventListener ) {
619
- elem.removeEventListener( type, handle, false );
620
- }
621
- };
622
-
623
- jQuery.Event = function( src, props ) {
624
- // Allow instantiation without the 'new' keyword
625
- if ( !(this instanceof jQuery.Event) ) {
626
- return new jQuery.Event( src, props );
627
- }
628
-
629
- // Event object
630
- if ( src && src.type ) {
631
- this.originalEvent = src;
632
- this.type = src.type;
633
-
634
- // Events bubbling up the document may have been marked as prevented
635
- // by a handler lower down the tree; reflect the correct value.
636
- this.isDefaultPrevented = src.defaultPrevented ||
637
- // Support: Android < 4.0
638
- src.defaultPrevented === undefined &&
639
- src.getPreventDefault && src.getPreventDefault() ?
640
- returnTrue :
641
- returnFalse;
642
-
643
- // Event type
644
- } else {
645
- this.type = src;
646
- }
647
-
648
- // Put explicitly provided properties onto the event object
649
- if ( props ) {
650
- jQuery.extend( this, props );
651
- }
652
-
653
- // Create a timestamp if incoming event doesn't have one
654
- this.timeStamp = src && src.timeStamp || jQuery.now();
655
-
656
- // Mark it as fixed
657
- this[ jQuery.expando ] = true;
658
- };
659
-
660
- // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
661
- // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
662
- jQuery.Event.prototype = {
663
- isDefaultPrevented: returnFalse,
664
- isPropagationStopped: returnFalse,
665
- isImmediatePropagationStopped: returnFalse,
666
-
667
- preventDefault: function() {
668
- var e = this.originalEvent;
669
-
670
- this.isDefaultPrevented = returnTrue;
671
-
672
- if ( e && e.preventDefault ) {
673
- e.preventDefault();
674
- }
675
- },
676
- stopPropagation: function() {
677
- var e = this.originalEvent;
678
-
679
- this.isPropagationStopped = returnTrue;
680
-
681
- if ( e && e.stopPropagation ) {
682
- e.stopPropagation();
683
- }
684
- },
685
- stopImmediatePropagation: function() {
686
- this.isImmediatePropagationStopped = returnTrue;
687
- this.stopPropagation();
688
- }
689
- };
690
-
691
- // Create mouseenter/leave events using mouseover/out and event-time checks
692
- // Support: Chrome 15+
693
- jQuery.each({
694
- mouseenter: "mouseover",
695
- mouseleave: "mouseout"
696
- }, function( orig, fix ) {
697
- jQuery.event.special[ orig ] = {
698
- delegateType: fix,
699
- bindType: fix,
700
-
701
- handle: function( event ) {
702
- var ret,
703
- target = this,
704
- related = event.relatedTarget,
705
- handleObj = event.handleObj;
706
-
707
- // For mousenter/leave call the handler if related is outside the target.
708
- // NB: No relatedTarget if the mouse left/entered the browser window
709
- if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
710
- event.type = handleObj.origType;
711
- ret = handleObj.handler.apply( this, arguments );
712
- event.type = fix;
713
- }
714
- return ret;
715
- }
716
- };
717
- });
718
-
719
- // Create "bubbling" focus and blur events
720
- // Support: Firefox, Chrome, Safari
721
- if ( !support.focusinBubbles ) {
722
- jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
723
-
724
- // Attach a single capturing handler on the document while someone wants focusin/focusout
725
- var handler = function( event ) {
726
- jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
727
- };
728
-
729
- jQuery.event.special[ fix ] = {
730
- setup: function() {
731
- var doc = this.ownerDocument || this,
732
- attaches = data_priv.access( doc, fix );
733
-
734
- if ( !attaches ) {
735
- doc.addEventListener( orig, handler, true );
736
- }
737
- data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
738
- },
739
- teardown: function() {
740
- var doc = this.ownerDocument || this,
741
- attaches = data_priv.access( doc, fix ) - 1;
742
-
743
- if ( !attaches ) {
744
- doc.removeEventListener( orig, handler, true );
745
- data_priv.remove( doc, fix );
746
-
747
- } else {
748
- data_priv.access( doc, fix, attaches );
749
- }
750
- }
751
- };
752
- });
753
- }
754
-
755
- jQuery.fn.extend({
756
-
757
- on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
758
- var origFn, type;
759
-
760
- // Types can be a map of types/handlers
761
- if ( typeof types === "object" ) {
762
- // ( types-Object, selector, data )
763
- if ( typeof selector !== "string" ) {
764
- // ( types-Object, data )
765
- data = data || selector;
766
- selector = undefined;
767
- }
768
- for ( type in types ) {
769
- this.on( type, selector, data, types[ type ], one );
770
- }
771
- return this;
772
- }
773
-
774
- if ( data == null && fn == null ) {
775
- // ( types, fn )
776
- fn = selector;
777
- data = selector = undefined;
778
- } else if ( fn == null ) {
779
- if ( typeof selector === "string" ) {
780
- // ( types, selector, fn )
781
- fn = data;
782
- data = undefined;
783
- } else {
784
- // ( types, data, fn )
785
- fn = data;
786
- data = selector;
787
- selector = undefined;
788
- }
789
- }
790
- if ( fn === false ) {
791
- fn = returnFalse;
792
- } else if ( !fn ) {
793
- return this;
794
- }
795
-
796
- if ( one === 1 ) {
797
- origFn = fn;
798
- fn = function( event ) {
799
- // Can use an empty set, since event contains the info
800
- jQuery().off( event );
801
- return origFn.apply( this, arguments );
802
- };
803
- // Use same guid so caller can remove using origFn
804
- fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
805
- }
806
- return this.each( function() {
807
- jQuery.event.add( this, types, fn, data, selector );
808
- });
809
- },
810
- one: function( types, selector, data, fn ) {
811
- return this.on( types, selector, data, fn, 1 );
812
- },
813
- off: function( types, selector, fn ) {
814
- var handleObj, type;
815
- if ( types && types.preventDefault && types.handleObj ) {
816
- // ( event ) dispatched jQuery.Event
817
- handleObj = types.handleObj;
818
- jQuery( types.delegateTarget ).off(
819
- handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
820
- handleObj.selector,
821
- handleObj.handler
822
- );
823
- return this;
824
- }
825
- if ( typeof types === "object" ) {
826
- // ( types-object [, selector] )
827
- for ( type in types ) {
828
- this.off( type, selector, types[ type ] );
829
- }
830
- return this;
831
- }
832
- if ( selector === false || typeof selector === "function" ) {
833
- // ( types [, fn] )
834
- fn = selector;
835
- selector = undefined;
836
- }
837
- if ( fn === false ) {
838
- fn = returnFalse;
839
- }
840
- return this.each(function() {
841
- jQuery.event.remove( this, types, fn, selector );
842
- });
843
- },
844
-
845
- trigger: function( type, data ) {
846
- return this.each(function() {
847
- jQuery.event.trigger( type, data, this );
848
- });
849
- },
850
- triggerHandler: function( type, data ) {
851
- var elem = this[0];
852
- if ( elem ) {
853
- return jQuery.event.trigger( type, data, elem, true );
854
- }
855
- }
856
- });
857
-
858
- return jQuery;
859
- });