guff-compass 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.gitignore +6 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +21 -0
  6. data/demo/bower_components/jquery/.bower.json +21 -0
  7. data/demo/bower_components/jquery/.editorconfig +43 -0
  8. data/demo/bower_components/jquery/.gitattributes +2 -0
  9. data/demo/bower_components/jquery/.gitignore +14 -0
  10. data/demo/bower_components/jquery/.gitmodules +6 -0
  11. data/demo/bower_components/jquery/.jshintrc +17 -0
  12. data/demo/bower_components/jquery/.mailmap +94 -0
  13. data/demo/bower_components/jquery/AUTHORS.txt +170 -0
  14. data/demo/bower_components/jquery/CONTRIBUTING.md +216 -0
  15. data/demo/bower_components/jquery/Gruntfile.js +594 -0
  16. data/demo/bower_components/jquery/MIT-LICENSE.txt +21 -0
  17. data/demo/bower_components/jquery/README.md +398 -0
  18. data/demo/bower_components/jquery/bower.json +11 -0
  19. data/demo/bower_components/jquery/build/release-notes.js +59 -0
  20. data/demo/bower_components/jquery/build/release.js +316 -0
  21. data/demo/bower_components/jquery/component.json +15 -0
  22. data/demo/bower_components/jquery/composer.json +35 -0
  23. data/demo/bower_components/jquery/jquery-migrate.js +511 -0
  24. data/demo/bower_components/jquery/jquery-migrate.min.js +3 -0
  25. data/demo/bower_components/jquery/jquery.js +9789 -0
  26. data/demo/bower_components/jquery/jquery.min.js +6 -0
  27. data/demo/bower_components/jquery/jquery.min.map +1 -0
  28. data/demo/bower_components/jquery/package.json +38 -0
  29. data/demo/bower_components/jquery/speed/benchmark.js +15 -0
  30. data/demo/bower_components/jquery/speed/benchmarker.css +65 -0
  31. data/demo/bower_components/jquery/speed/benchmarker.js +181 -0
  32. data/demo/bower_components/jquery/speed/closest.html +39 -0
  33. data/demo/bower_components/jquery/speed/css.html +82 -0
  34. data/demo/bower_components/jquery/speed/event.html +58 -0
  35. data/demo/bower_components/jquery/speed/filter.html +183 -0
  36. data/demo/bower_components/jquery/speed/find.html +179 -0
  37. data/demo/bower_components/jquery/speed/index.html +72 -0
  38. data/demo/bower_components/jquery/speed/jquery-basis.js +6238 -0
  39. data/demo/bower_components/jquery/speed/slice.vs.concat.html +47 -0
  40. data/demo/bower_components/jquery/src/.jshintrc +27 -0
  41. data/demo/bower_components/jquery/src/ajax.js +855 -0
  42. data/demo/bower_components/jquery/src/ajax/jsonp.js +80 -0
  43. data/demo/bower_components/jquery/src/ajax/script.js +86 -0
  44. data/demo/bower_components/jquery/src/ajax/xhr.js +207 -0
  45. data/demo/bower_components/jquery/src/attributes.js +659 -0
  46. data/demo/bower_components/jquery/src/callbacks.js +197 -0
  47. data/demo/bower_components/jquery/src/core.js +981 -0
  48. data/demo/bower_components/jquery/src/css.js +661 -0
  49. data/demo/bower_components/jquery/src/data.js +336 -0
  50. data/demo/bower_components/jquery/src/deferred.js +141 -0
  51. data/demo/bower_components/jquery/src/deprecated.js +11 -0
  52. data/demo/bower_components/jquery/src/dimensions.js +41 -0
  53. data/demo/bower_components/jquery/src/effects.js +732 -0
  54. data/demo/bower_components/jquery/src/event-alias.js +32 -0
  55. data/demo/bower_components/jquery/src/event.js +995 -0
  56. data/demo/bower_components/jquery/src/exports.js +21 -0
  57. data/demo/bower_components/jquery/src/intro.js +20 -0
  58. data/demo/bower_components/jquery/src/manipulation.js +744 -0
  59. data/demo/bower_components/jquery/src/offset.js +169 -0
  60. data/demo/bower_components/jquery/src/outro.js +2 -0
  61. data/demo/bower_components/jquery/src/queue.js +146 -0
  62. data/demo/bower_components/jquery/src/serialize.js +99 -0
  63. data/demo/bower_components/jquery/src/sizzle-jquery.js +7 -0
  64. data/demo/bower_components/jquery/src/support.js +246 -0
  65. data/demo/bower_components/jquery/src/traversing.js +283 -0
  66. data/demo/bower_components/jquery/src/wrap.js +66 -0
  67. data/demo/bower_components/jquery/test/.jshintignore +3 -0
  68. data/demo/bower_components/jquery/test/.jshintrc +60 -0
  69. data/demo/bower_components/jquery/test/data/1x1.jpg +0 -0
  70. data/demo/bower_components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
  71. data/demo/bower_components/jquery/test/data/atom+xml.php +4 -0
  72. data/demo/bower_components/jquery/test/data/badcall.js +1 -0
  73. data/demo/bower_components/jquery/test/data/badjson.js +1 -0
  74. data/demo/bower_components/jquery/test/data/cleanScript.html +10 -0
  75. data/demo/bower_components/jquery/test/data/core/cc_on.html +22 -0
  76. data/demo/bower_components/jquery/test/data/dashboard.xml +11 -0
  77. data/demo/bower_components/jquery/test/data/dimensions/documentLarge.html +17 -0
  78. data/demo/bower_components/jquery/test/data/dimensions/documentSmall.html +21 -0
  79. data/demo/bower_components/jquery/test/data/echoData.php +1 -0
  80. data/demo/bower_components/jquery/test/data/echoQuery.php +1 -0
  81. data/demo/bower_components/jquery/test/data/errorWithJSON.php +6 -0
  82. data/demo/bower_components/jquery/test/data/errorWithText.php +5 -0
  83. data/demo/bower_components/jquery/test/data/etag.php +21 -0
  84. data/demo/bower_components/jquery/test/data/evalScript.php +1 -0
  85. data/demo/bower_components/jquery/test/data/event/focusElem.html +16 -0
  86. data/demo/bower_components/jquery/test/data/event/longLoadScript.php +4 -0
  87. data/demo/bower_components/jquery/test/data/event/promiseReady.html +17 -0
  88. data/demo/bower_components/jquery/test/data/event/syncReady.html +23 -0
  89. data/demo/bower_components/jquery/test/data/headers.php +18 -0
  90. data/demo/bower_components/jquery/test/data/if_modified_since.php +20 -0
  91. data/demo/bower_components/jquery/test/data/iframe.html +8 -0
  92. data/demo/bower_components/jquery/test/data/jquery-1.9.1.ajax_xhr.min.js +5 -0
  93. data/demo/bower_components/jquery/test/data/json.php +13 -0
  94. data/demo/bower_components/jquery/test/data/json_obj.js +1 -0
  95. data/demo/bower_components/jquery/test/data/jsonp.php +14 -0
  96. data/demo/bower_components/jquery/test/data/manipulation/iframe-denied.html +36 -0
  97. data/demo/bower_components/jquery/test/data/name.html +1 -0
  98. data/demo/bower_components/jquery/test/data/name.php +24 -0
  99. data/demo/bower_components/jquery/test/data/nocontent.php +5 -0
  100. data/demo/bower_components/jquery/test/data/offset/absolute.html +41 -0
  101. data/demo/bower_components/jquery/test/data/offset/body.html +26 -0
  102. data/demo/bower_components/jquery/test/data/offset/fixed.html +34 -0
  103. data/demo/bower_components/jquery/test/data/offset/relative.html +31 -0
  104. data/demo/bower_components/jquery/test/data/offset/scroll.html +39 -0
  105. data/demo/bower_components/jquery/test/data/offset/static.html +31 -0
  106. data/demo/bower_components/jquery/test/data/offset/table.html +43 -0
  107. data/demo/bower_components/jquery/test/data/params_html.php +12 -0
  108. data/demo/bower_components/jquery/test/data/readywaitasset.js +1 -0
  109. data/demo/bower_components/jquery/test/data/readywaitloader.js +25 -0
  110. data/demo/bower_components/jquery/test/data/script.php +11 -0
  111. data/demo/bower_components/jquery/test/data/selector/html5_selector.html +114 -0
  112. data/demo/bower_components/jquery/test/data/selector/sizzle_cache.html +21 -0
  113. data/demo/bower_components/jquery/test/data/statusText.php +5 -0
  114. data/demo/bower_components/jquery/test/data/support/bodyBackground.html +28 -0
  115. data/demo/bower_components/jquery/test/data/support/boxSizing.html +19 -0
  116. data/demo/bower_components/jquery/test/data/support/csp.js +3 -0
  117. data/demo/bower_components/jquery/test/data/support/csp.php +22 -0
  118. data/demo/bower_components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
  119. data/demo/bower_components/jquery/test/data/support/testElementCrash.html +17 -0
  120. data/demo/bower_components/jquery/test/data/test.html +7 -0
  121. data/demo/bower_components/jquery/test/data/test.js +3 -0
  122. data/demo/bower_components/jquery/test/data/test.php +7 -0
  123. data/demo/bower_components/jquery/test/data/test2.html +5 -0
  124. data/demo/bower_components/jquery/test/data/test3.html +3 -0
  125. data/demo/bower_components/jquery/test/data/testinit.js +264 -0
  126. data/demo/bower_components/jquery/test/data/testrunner.js +371 -0
  127. data/demo/bower_components/jquery/test/data/testsuite.css +155 -0
  128. data/demo/bower_components/jquery/test/data/text.php +12 -0
  129. data/demo/bower_components/jquery/test/data/ua.txt +272 -0
  130. data/demo/bower_components/jquery/test/data/with_fries.xml +25 -0
  131. data/demo/bower_components/jquery/test/data/with_fries_over_jsonp.php +7 -0
  132. data/demo/bower_components/jquery/test/delegatetest.html +228 -0
  133. data/demo/bower_components/jquery/test/hovertest.html +158 -0
  134. data/demo/bower_components/jquery/test/index.html +337 -0
  135. data/demo/bower_components/jquery/test/jquery.js +5 -0
  136. data/demo/bower_components/jquery/test/localfile.html +75 -0
  137. data/demo/bower_components/jquery/test/networkerror.html +84 -0
  138. data/demo/bower_components/jquery/test/readywait.html +70 -0
  139. data/demo/bower_components/jquery/test/unit/ajax.js +2016 -0
  140. data/demo/bower_components/jquery/test/unit/attributes.js +1388 -0
  141. data/demo/bower_components/jquery/test/unit/callbacks.js +342 -0
  142. data/demo/bower_components/jquery/test/unit/core.js +1360 -0
  143. data/demo/bower_components/jquery/test/unit/css.js +1056 -0
  144. data/demo/bower_components/jquery/test/unit/data.js +645 -0
  145. data/demo/bower_components/jquery/test/unit/deferred.js +436 -0
  146. data/demo/bower_components/jquery/test/unit/deprecated.js +8 -0
  147. data/demo/bower_components/jquery/test/unit/dimensions.js +472 -0
  148. data/demo/bower_components/jquery/test/unit/effects.js +2242 -0
  149. data/demo/bower_components/jquery/test/unit/event.js +2755 -0
  150. data/demo/bower_components/jquery/test/unit/exports.js +7 -0
  151. data/demo/bower_components/jquery/test/unit/manipulation.js +2120 -0
  152. data/demo/bower_components/jquery/test/unit/offset.js +559 -0
  153. data/demo/bower_components/jquery/test/unit/queue.js +314 -0
  154. data/demo/bower_components/jquery/test/unit/selector.js +172 -0
  155. data/demo/bower_components/jquery/test/unit/serialize.js +148 -0
  156. data/demo/bower_components/jquery/test/unit/support.js +370 -0
  157. data/demo/bower_components/jquery/test/unit/traversing.js +797 -0
  158. data/demo/bower_components/jquery/test/unit/wrap.js +265 -0
  159. data/demo/bower_components/jquery/test/xhtml.php +5 -0
  160. data/demo/index.html +347 -0
  161. data/demo/styles/main.css +208 -0
  162. data/demo/styles/main.scss +138 -0
  163. data/docs/docco.css +506 -0
  164. data/docs/guff.html +1127 -0
  165. data/docs/public/fonts/aller-bold.eot +0 -0
  166. data/docs/public/fonts/aller-bold.ttf +0 -0
  167. data/docs/public/fonts/aller-bold.woff +0 -0
  168. data/docs/public/fonts/aller-light.eot +0 -0
  169. data/docs/public/fonts/aller-light.ttf +0 -0
  170. data/docs/public/fonts/aller-light.woff +0 -0
  171. data/docs/public/fonts/novecento-bold.eot +0 -0
  172. data/docs/public/fonts/novecento-bold.ttf +0 -0
  173. data/docs/public/fonts/novecento-bold.woff +0 -0
  174. data/docs/public/stylesheets/normalize.css +375 -0
  175. data/guff.gemspec +16 -0
  176. data/guff.scss +514 -0
  177. data/gulpfile.js +67 -0
  178. data/lib/guff.rb +4 -0
  179. data/lib/stylesheets/_guff.scss +514 -0
  180. data/package.json +19 -0
  181. data/src/_functions.scss +57 -0
  182. data/src/_mixins.scss +301 -0
  183. data/src/_reset.scss +67 -0
  184. data/src/_settings.scss +22 -0
  185. data/src/_typography.scss +67 -0
  186. metadata +259 -0
@@ -0,0 +1,169 @@
1
+ jQuery.fn.offset = function( options ) {
2
+ if ( arguments.length ) {
3
+ return options === undefined ?
4
+ this :
5
+ this.each(function( i ) {
6
+ jQuery.offset.setOffset( this, options, i );
7
+ });
8
+ }
9
+
10
+ var docElem, win,
11
+ box = { top: 0, left: 0 },
12
+ elem = this[ 0 ],
13
+ doc = elem && elem.ownerDocument;
14
+
15
+ if ( !doc ) {
16
+ return;
17
+ }
18
+
19
+ docElem = doc.documentElement;
20
+
21
+ // Make sure it's not a disconnected DOM node
22
+ if ( !jQuery.contains( docElem, elem ) ) {
23
+ return box;
24
+ }
25
+
26
+ // If we don't have gBCR, just use 0,0 rather than error
27
+ // BlackBerry 5, iOS 3 (original iPhone)
28
+ if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
29
+ box = elem.getBoundingClientRect();
30
+ }
31
+ win = getWindow( doc );
32
+ return {
33
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
34
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
35
+ };
36
+ };
37
+
38
+ jQuery.offset = {
39
+
40
+ setOffset: function( elem, options, i ) {
41
+ var position = jQuery.css( elem, "position" );
42
+
43
+ // set position first, in-case top/left are set even on static elem
44
+ if ( position === "static" ) {
45
+ elem.style.position = "relative";
46
+ }
47
+
48
+ var curElem = jQuery( elem ),
49
+ curOffset = curElem.offset(),
50
+ curCSSTop = jQuery.css( elem, "top" ),
51
+ curCSSLeft = jQuery.css( elem, "left" ),
52
+ calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
53
+ props = {}, curPosition = {}, curTop, curLeft;
54
+
55
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
56
+ if ( calculatePosition ) {
57
+ curPosition = curElem.position();
58
+ curTop = curPosition.top;
59
+ curLeft = curPosition.left;
60
+ } else {
61
+ curTop = parseFloat( curCSSTop ) || 0;
62
+ curLeft = parseFloat( curCSSLeft ) || 0;
63
+ }
64
+
65
+ if ( jQuery.isFunction( options ) ) {
66
+ options = options.call( elem, i, curOffset );
67
+ }
68
+
69
+ if ( options.top != null ) {
70
+ props.top = ( options.top - curOffset.top ) + curTop;
71
+ }
72
+ if ( options.left != null ) {
73
+ props.left = ( options.left - curOffset.left ) + curLeft;
74
+ }
75
+
76
+ if ( "using" in options ) {
77
+ options.using.call( elem, props );
78
+ } else {
79
+ curElem.css( props );
80
+ }
81
+ }
82
+ };
83
+
84
+
85
+ jQuery.fn.extend({
86
+
87
+ position: function() {
88
+ if ( !this[ 0 ] ) {
89
+ return;
90
+ }
91
+
92
+ var offsetParent, offset,
93
+ parentOffset = { top: 0, left: 0 },
94
+ elem = this[ 0 ];
95
+
96
+ // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
97
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
98
+ // we assume that getBoundingClientRect is available when computed position is fixed
99
+ offset = elem.getBoundingClientRect();
100
+ } else {
101
+ // Get *real* offsetParent
102
+ offsetParent = this.offsetParent();
103
+
104
+ // Get correct offsets
105
+ offset = this.offset();
106
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
107
+ parentOffset = offsetParent.offset();
108
+ }
109
+
110
+ // Add offsetParent borders
111
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
112
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
113
+ }
114
+
115
+ // Subtract parent offsets and element margins
116
+ // note: when an element has margin: auto the offsetLeft and marginLeft
117
+ // are the same in Safari causing offset.left to incorrectly be 0
118
+ return {
119
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
120
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
121
+ };
122
+ },
123
+
124
+ offsetParent: function() {
125
+ return this.map(function() {
126
+ var offsetParent = this.offsetParent || docElem;
127
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
128
+ offsetParent = offsetParent.offsetParent;
129
+ }
130
+ return offsetParent || docElem;
131
+ });
132
+ }
133
+ });
134
+
135
+
136
+ // Create scrollLeft and scrollTop methods
137
+ jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
138
+ var top = /Y/.test( prop );
139
+
140
+ jQuery.fn[ method ] = function( val ) {
141
+ return jQuery.access( this, function( elem, method, val ) {
142
+ var win = getWindow( elem );
143
+
144
+ if ( val === undefined ) {
145
+ return win ? (prop in win) ? win[ prop ] :
146
+ win.document.documentElement[ method ] :
147
+ elem[ method ];
148
+ }
149
+
150
+ if ( win ) {
151
+ win.scrollTo(
152
+ !top ? val : jQuery( win ).scrollLeft(),
153
+ top ? val : jQuery( win ).scrollTop()
154
+ );
155
+
156
+ } else {
157
+ elem[ method ] = val;
158
+ }
159
+ }, method, val, arguments.length, null );
160
+ };
161
+ });
162
+
163
+ function getWindow( elem ) {
164
+ return jQuery.isWindow( elem ) ?
165
+ elem :
166
+ elem.nodeType === 9 ?
167
+ elem.defaultView || elem.parentWindow :
168
+ false;
169
+ }
@@ -0,0 +1,2 @@
1
+
2
+ })( window );
@@ -0,0 +1,146 @@
1
+ jQuery.extend({
2
+ queue: function( elem, type, data ) {
3
+ var queue;
4
+
5
+ if ( elem ) {
6
+ type = ( type || "fx" ) + "queue";
7
+ queue = jQuery._data( elem, type );
8
+
9
+ // Speed up dequeue by getting out quickly if this is just a lookup
10
+ if ( data ) {
11
+ if ( !queue || jQuery.isArray(data) ) {
12
+ queue = jQuery._data( elem, type, jQuery.makeArray(data) );
13
+ } else {
14
+ queue.push( data );
15
+ }
16
+ }
17
+ return queue || [];
18
+ }
19
+ },
20
+
21
+ dequeue: function( elem, type ) {
22
+ type = type || "fx";
23
+
24
+ var queue = jQuery.queue( elem, type ),
25
+ startLength = queue.length,
26
+ fn = queue.shift(),
27
+ hooks = jQuery._queueHooks( elem, type ),
28
+ next = function() {
29
+ jQuery.dequeue( elem, type );
30
+ };
31
+
32
+ // If the fx queue is dequeued, always remove the progress sentinel
33
+ if ( fn === "inprogress" ) {
34
+ fn = queue.shift();
35
+ startLength--;
36
+ }
37
+
38
+ if ( fn ) {
39
+
40
+ // Add a progress sentinel to prevent the fx queue from being
41
+ // automatically dequeued
42
+ if ( type === "fx" ) {
43
+ queue.unshift( "inprogress" );
44
+ }
45
+
46
+ // clear up the last queue stop function
47
+ delete hooks.stop;
48
+ fn.call( elem, next, hooks );
49
+ }
50
+
51
+ if ( !startLength && hooks ) {
52
+ hooks.empty.fire();
53
+ }
54
+ },
55
+
56
+ // not intended for public consumption - generates a queueHooks object, or returns the current one
57
+ _queueHooks: function( elem, type ) {
58
+ var key = type + "queueHooks";
59
+ return jQuery._data( elem, key ) || jQuery._data( elem, key, {
60
+ empty: jQuery.Callbacks("once memory").add(function() {
61
+ jQuery._removeData( elem, type + "queue" );
62
+ jQuery._removeData( elem, key );
63
+ })
64
+ });
65
+ }
66
+ });
67
+
68
+ jQuery.fn.extend({
69
+ queue: function( type, data ) {
70
+ var setter = 2;
71
+
72
+ if ( typeof type !== "string" ) {
73
+ data = type;
74
+ type = "fx";
75
+ setter--;
76
+ }
77
+
78
+ if ( arguments.length < setter ) {
79
+ return jQuery.queue( this[0], type );
80
+ }
81
+
82
+ return data === undefined ?
83
+ this :
84
+ this.each(function() {
85
+ var queue = jQuery.queue( this, type, data );
86
+
87
+ // ensure a hooks for this queue
88
+ jQuery._queueHooks( this, type );
89
+
90
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
91
+ jQuery.dequeue( this, type );
92
+ }
93
+ });
94
+ },
95
+ dequeue: function( type ) {
96
+ return this.each(function() {
97
+ jQuery.dequeue( this, type );
98
+ });
99
+ },
100
+ // Based off of the plugin by Clint Helfers, with permission.
101
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
102
+ delay: function( time, type ) {
103
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
104
+ type = type || "fx";
105
+
106
+ return this.queue( type, function( next, hooks ) {
107
+ var timeout = setTimeout( next, time );
108
+ hooks.stop = function() {
109
+ clearTimeout( timeout );
110
+ };
111
+ });
112
+ },
113
+ clearQueue: function( type ) {
114
+ return this.queue( type || "fx", [] );
115
+ },
116
+ // Get a promise resolved when queues of a certain type
117
+ // are emptied (fx is the type by default)
118
+ promise: function( type, obj ) {
119
+ var tmp,
120
+ count = 1,
121
+ defer = jQuery.Deferred(),
122
+ elements = this,
123
+ i = this.length,
124
+ resolve = function() {
125
+ if ( !( --count ) ) {
126
+ defer.resolveWith( elements, [ elements ] );
127
+ }
128
+ };
129
+
130
+ if ( typeof type !== "string" ) {
131
+ obj = type;
132
+ type = undefined;
133
+ }
134
+ type = type || "fx";
135
+
136
+ while( i-- ) {
137
+ tmp = jQuery._data( elements[ i ], type + "queueHooks" );
138
+ if ( tmp && tmp.empty ) {
139
+ count++;
140
+ tmp.empty.add( resolve );
141
+ }
142
+ }
143
+ resolve();
144
+ return defer.promise( obj );
145
+ }
146
+ });
@@ -0,0 +1,99 @@
1
+ var r20 = /%20/g,
2
+ rbracket = /\[\]$/,
3
+ rCRLF = /\r?\n/g,
4
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
5
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
6
+
7
+ jQuery.fn.extend({
8
+ serialize: function() {
9
+ return jQuery.param( this.serializeArray() );
10
+ },
11
+ serializeArray: function() {
12
+ return this.map(function(){
13
+ // Can add propHook for "elements" to filter or add form elements
14
+ var elements = jQuery.prop( this, "elements" );
15
+ return elements ? jQuery.makeArray( elements ) : this;
16
+ })
17
+ .filter(function(){
18
+ var type = this.type;
19
+ // Use .is(":disabled") so that fieldset[disabled] works
20
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
21
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
22
+ ( this.checked || !manipulation_rcheckableType.test( type ) );
23
+ })
24
+ .map(function( i, elem ){
25
+ var val = jQuery( this ).val();
26
+
27
+ return val == null ?
28
+ null :
29
+ jQuery.isArray( val ) ?
30
+ jQuery.map( val, function( val ){
31
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
32
+ }) :
33
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
34
+ }).get();
35
+ }
36
+ });
37
+
38
+ //Serialize an array of form elements or a set of
39
+ //key/values into a query string
40
+ jQuery.param = function( a, traditional ) {
41
+ var prefix,
42
+ s = [],
43
+ add = function( key, value ) {
44
+ // If value is a function, invoke it and return its value
45
+ value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
46
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
47
+ };
48
+
49
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
50
+ if ( traditional === undefined ) {
51
+ traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
52
+ }
53
+
54
+ // If an array was passed in, assume that it is an array of form elements.
55
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
56
+ // Serialize the form elements
57
+ jQuery.each( a, function() {
58
+ add( this.name, this.value );
59
+ });
60
+
61
+ } else {
62
+ // If traditional, encode the "old" way (the way 1.3.2 or older
63
+ // did it), otherwise encode params recursively.
64
+ for ( prefix in a ) {
65
+ buildParams( prefix, a[ prefix ], traditional, add );
66
+ }
67
+ }
68
+
69
+ // Return the resulting serialization
70
+ return s.join( "&" ).replace( r20, "+" );
71
+ };
72
+
73
+ function buildParams( prefix, obj, traditional, add ) {
74
+ var name;
75
+
76
+ if ( jQuery.isArray( obj ) ) {
77
+ // Serialize array item.
78
+ jQuery.each( obj, function( i, v ) {
79
+ if ( traditional || rbracket.test( prefix ) ) {
80
+ // Treat each array item as a scalar.
81
+ add( prefix, v );
82
+
83
+ } else {
84
+ // Item is non-scalar (array or object), encode its numeric index.
85
+ buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
86
+ }
87
+ });
88
+
89
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
90
+ // Serialize object item.
91
+ for ( name in obj ) {
92
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
93
+ }
94
+
95
+ } else {
96
+ // Serialize scalar item.
97
+ add( prefix, obj );
98
+ }
99
+ }
@@ -0,0 +1,7 @@
1
+ jQuery.find = Sizzle;
2
+ jQuery.expr = Sizzle.selectors;
3
+ jQuery.expr[":"] = jQuery.expr.pseudos;
4
+ jQuery.unique = Sizzle.uniqueSort;
5
+ jQuery.text = Sizzle.getText;
6
+ jQuery.isXMLDoc = Sizzle.isXML;
7
+ jQuery.contains = Sizzle.contains;
@@ -0,0 +1,246 @@
1
+ jQuery.support = (function( support ) {
2
+
3
+ var all, a, input, select, fragment, opt, eventName, isSupported, i,
4
+ div = document.createElement("div");
5
+
6
+ // Setup
7
+ div.setAttribute( "className", "t" );
8
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
9
+
10
+ // Finish early in limited (non-browser) environments
11
+ all = div.getElementsByTagName("*") || [];
12
+ a = div.getElementsByTagName("a")[ 0 ];
13
+ if ( !a || !a.style || !all.length ) {
14
+ return support;
15
+ }
16
+
17
+ // First batch of tests
18
+ select = document.createElement("select");
19
+ opt = select.appendChild( document.createElement("option") );
20
+ input = div.getElementsByTagName("input")[ 0 ];
21
+
22
+ a.style.cssText = "top:1px;float:left;opacity:.5";
23
+
24
+ // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
25
+ support.getSetAttribute = div.className !== "t";
26
+
27
+ // IE strips leading whitespace when .innerHTML is used
28
+ support.leadingWhitespace = div.firstChild.nodeType === 3;
29
+
30
+ // Make sure that tbody elements aren't automatically inserted
31
+ // IE will insert them into empty tables
32
+ support.tbody = !div.getElementsByTagName("tbody").length;
33
+
34
+ // Make sure that link elements get serialized correctly by innerHTML
35
+ // This requires a wrapper element in IE
36
+ support.htmlSerialize = !!div.getElementsByTagName("link").length;
37
+
38
+ // Get the style information from getAttribute
39
+ // (IE uses .cssText instead)
40
+ support.style = /top/.test( a.getAttribute("style") );
41
+
42
+ // Make sure that URLs aren't manipulated
43
+ // (IE normalizes it by default)
44
+ support.hrefNormalized = a.getAttribute("href") === "/a";
45
+
46
+ // Make sure that element opacity exists
47
+ // (IE uses filter instead)
48
+ // Use a regex to work around a WebKit issue. See #5145
49
+ support.opacity = /^0.5/.test( a.style.opacity );
50
+
51
+ // Verify style float existence
52
+ // (IE uses styleFloat instead of cssFloat)
53
+ support.cssFloat = !!a.style.cssFloat;
54
+
55
+ // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
56
+ support.checkOn = !!input.value;
57
+
58
+ // Make sure that a selected-by-default option has a working selected property.
59
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
60
+ support.optSelected = opt.selected;
61
+
62
+ // Tests for enctype support on a form (#6743)
63
+ support.enctype = !!document.createElement("form").enctype;
64
+
65
+ // Makes sure cloning an html5 element does not cause problems
66
+ // Where outerHTML is undefined, this still works
67
+ support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>";
68
+
69
+ // Will be defined later
70
+ support.inlineBlockNeedsLayout = false;
71
+ support.shrinkWrapBlocks = false;
72
+ support.pixelPosition = false;
73
+ support.deleteExpando = true;
74
+ support.noCloneEvent = true;
75
+ support.reliableMarginRight = true;
76
+ support.boxSizingReliable = true;
77
+
78
+ // Make sure checked status is properly cloned
79
+ input.checked = true;
80
+ support.noCloneChecked = input.cloneNode( true ).checked;
81
+
82
+ // Make sure that the options inside disabled selects aren't marked as disabled
83
+ // (WebKit marks them as disabled)
84
+ select.disabled = true;
85
+ support.optDisabled = !opt.disabled;
86
+
87
+ // Support: IE<9
88
+ try {
89
+ delete div.test;
90
+ } catch( e ) {
91
+ support.deleteExpando = false;
92
+ }
93
+
94
+ // Check if we can trust getAttribute("value")
95
+ input = document.createElement("input");
96
+ input.setAttribute( "value", "" );
97
+ support.input = input.getAttribute( "value" ) === "";
98
+
99
+ // Check if an input maintains its value after becoming a radio
100
+ input.value = "t";
101
+ input.setAttribute( "type", "radio" );
102
+ support.radioValue = input.value === "t";
103
+
104
+ // #11217 - WebKit loses check when the name is after the checked attribute
105
+ input.setAttribute( "checked", "t" );
106
+ input.setAttribute( "name", "t" );
107
+
108
+ fragment = document.createDocumentFragment();
109
+ fragment.appendChild( input );
110
+
111
+ // Check if a disconnected checkbox will retain its checked
112
+ // value of true after appended to the DOM (IE6/7)
113
+ support.appendChecked = input.checked;
114
+
115
+ // WebKit doesn't clone checked state correctly in fragments
116
+ support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
117
+
118
+ // Support: IE<9
119
+ // Opera does not clone events (and typeof div.attachEvent === undefined).
120
+ // IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
121
+ if ( div.attachEvent ) {
122
+ div.attachEvent( "onclick", function() {
123
+ support.noCloneEvent = false;
124
+ });
125
+
126
+ div.cloneNode( true ).click();
127
+ }
128
+
129
+ // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
130
+ // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
131
+ for ( i in { submit: true, change: true, focusin: true }) {
132
+ div.setAttribute( eventName = "on" + i, "t" );
133
+
134
+ support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
135
+ }
136
+
137
+ div.style.backgroundClip = "content-box";
138
+ div.cloneNode( true ).style.backgroundClip = "";
139
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
140
+
141
+ // Support: IE<9
142
+ // Iteration over object's inherited properties before its own.
143
+ for ( i in jQuery( support ) ) {
144
+ break;
145
+ }
146
+ support.ownLast = i !== "0";
147
+
148
+ // Run tests that need a body at doc ready
149
+ jQuery(function() {
150
+ var container, marginDiv, tds,
151
+ divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
152
+ body = document.getElementsByTagName("body")[0];
153
+
154
+ if ( !body ) {
155
+ // Return for frameset docs that don't have a body
156
+ return;
157
+ }
158
+
159
+ container = document.createElement("div");
160
+ container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
161
+
162
+ body.appendChild( container ).appendChild( div );
163
+
164
+ // Support: IE8
165
+ // Check if table cells still have offsetWidth/Height when they are set
166
+ // to display:none and there are still other visible table cells in a
167
+ // table row; if so, offsetWidth/Height are not reliable for use when
168
+ // determining if an element has been hidden directly using
169
+ // display:none (it is still safe to use offsets if a parent element is
170
+ // hidden; don safety goggles and see bug #4512 for more information).
171
+ div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
172
+ tds = div.getElementsByTagName("td");
173
+ tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
174
+ isSupported = ( tds[ 0 ].offsetHeight === 0 );
175
+
176
+ tds[ 0 ].style.display = "";
177
+ tds[ 1 ].style.display = "none";
178
+
179
+ // Support: IE8
180
+ // Check if empty table cells still have offsetWidth/Height
181
+ support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
182
+
183
+ // Check box-sizing and margin behavior.
184
+ div.innerHTML = "";
185
+ div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
186
+
187
+ // Workaround failing boxSizing test due to offsetWidth returning wrong value
188
+ // with some non-1 values of body zoom, ticket #13543
189
+ jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
190
+ support.boxSizing = div.offsetWidth === 4;
191
+ });
192
+
193
+ // Use window.getComputedStyle because jsdom on node.js will break without it.
194
+ if ( window.getComputedStyle ) {
195
+ support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
196
+ support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
197
+
198
+ // Check if div with explicit width and no margin-right incorrectly
199
+ // gets computed margin-right based on width of container. (#3333)
200
+ // Fails in WebKit before Feb 2011 nightlies
201
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
202
+ marginDiv = div.appendChild( document.createElement("div") );
203
+ marginDiv.style.cssText = div.style.cssText = divReset;
204
+ marginDiv.style.marginRight = marginDiv.style.width = "0";
205
+ div.style.width = "1px";
206
+
207
+ support.reliableMarginRight =
208
+ !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
209
+ }
210
+
211
+ if ( typeof div.style.zoom !== core_strundefined ) {
212
+ // Support: IE<8
213
+ // Check if natively block-level elements act like inline-block
214
+ // elements when setting their display to 'inline' and giving
215
+ // them layout
216
+ div.innerHTML = "";
217
+ div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
218
+ support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
219
+
220
+ // Support: IE6
221
+ // Check if elements with layout shrink-wrap their children
222
+ div.style.display = "block";
223
+ div.innerHTML = "<div></div>";
224
+ div.firstChild.style.width = "5px";
225
+ support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
226
+
227
+ if ( support.inlineBlockNeedsLayout ) {
228
+ // Prevent IE 6 from affecting layout for positioned elements #11048
229
+ // Prevent IE from shrinking the body in IE 7 mode #12869
230
+ // Support: IE<8
231
+ body.style.zoom = 1;
232
+ }
233
+ }
234
+
235
+ body.removeChild( container );
236
+
237
+ // Null elements to avoid leaks in IE
238
+ container = div = tds = marginDiv = null;
239
+ });
240
+
241
+ // Null elements to avoid leaks in IE
242
+ all = select = fragment = opt = a = input = null;
243
+
244
+ return support;
245
+ })({});
246
+