guff-compass 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +21 -0
- data/.gitignore +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +21 -0
- data/demo/bower_components/jquery/.bower.json +21 -0
- data/demo/bower_components/jquery/.editorconfig +43 -0
- data/demo/bower_components/jquery/.gitattributes +2 -0
- data/demo/bower_components/jquery/.gitignore +14 -0
- data/demo/bower_components/jquery/.gitmodules +6 -0
- data/demo/bower_components/jquery/.jshintrc +17 -0
- data/demo/bower_components/jquery/.mailmap +94 -0
- data/demo/bower_components/jquery/AUTHORS.txt +170 -0
- data/demo/bower_components/jquery/CONTRIBUTING.md +216 -0
- data/demo/bower_components/jquery/Gruntfile.js +594 -0
- data/demo/bower_components/jquery/MIT-LICENSE.txt +21 -0
- data/demo/bower_components/jquery/README.md +398 -0
- data/demo/bower_components/jquery/bower.json +11 -0
- data/demo/bower_components/jquery/build/release-notes.js +59 -0
- data/demo/bower_components/jquery/build/release.js +316 -0
- data/demo/bower_components/jquery/component.json +15 -0
- data/demo/bower_components/jquery/composer.json +35 -0
- data/demo/bower_components/jquery/jquery-migrate.js +511 -0
- data/demo/bower_components/jquery/jquery-migrate.min.js +3 -0
- data/demo/bower_components/jquery/jquery.js +9789 -0
- data/demo/bower_components/jquery/jquery.min.js +6 -0
- data/demo/bower_components/jquery/jquery.min.map +1 -0
- data/demo/bower_components/jquery/package.json +38 -0
- data/demo/bower_components/jquery/speed/benchmark.js +15 -0
- data/demo/bower_components/jquery/speed/benchmarker.css +65 -0
- data/demo/bower_components/jquery/speed/benchmarker.js +181 -0
- data/demo/bower_components/jquery/speed/closest.html +39 -0
- data/demo/bower_components/jquery/speed/css.html +82 -0
- data/demo/bower_components/jquery/speed/event.html +58 -0
- data/demo/bower_components/jquery/speed/filter.html +183 -0
- data/demo/bower_components/jquery/speed/find.html +179 -0
- data/demo/bower_components/jquery/speed/index.html +72 -0
- data/demo/bower_components/jquery/speed/jquery-basis.js +6238 -0
- data/demo/bower_components/jquery/speed/slice.vs.concat.html +47 -0
- data/demo/bower_components/jquery/src/.jshintrc +27 -0
- data/demo/bower_components/jquery/src/ajax.js +855 -0
- data/demo/bower_components/jquery/src/ajax/jsonp.js +80 -0
- data/demo/bower_components/jquery/src/ajax/script.js +86 -0
- data/demo/bower_components/jquery/src/ajax/xhr.js +207 -0
- data/demo/bower_components/jquery/src/attributes.js +659 -0
- data/demo/bower_components/jquery/src/callbacks.js +197 -0
- data/demo/bower_components/jquery/src/core.js +981 -0
- data/demo/bower_components/jquery/src/css.js +661 -0
- data/demo/bower_components/jquery/src/data.js +336 -0
- data/demo/bower_components/jquery/src/deferred.js +141 -0
- data/demo/bower_components/jquery/src/deprecated.js +11 -0
- data/demo/bower_components/jquery/src/dimensions.js +41 -0
- data/demo/bower_components/jquery/src/effects.js +732 -0
- data/demo/bower_components/jquery/src/event-alias.js +32 -0
- data/demo/bower_components/jquery/src/event.js +995 -0
- data/demo/bower_components/jquery/src/exports.js +21 -0
- data/demo/bower_components/jquery/src/intro.js +20 -0
- data/demo/bower_components/jquery/src/manipulation.js +744 -0
- data/demo/bower_components/jquery/src/offset.js +169 -0
- data/demo/bower_components/jquery/src/outro.js +2 -0
- data/demo/bower_components/jquery/src/queue.js +146 -0
- data/demo/bower_components/jquery/src/serialize.js +99 -0
- data/demo/bower_components/jquery/src/sizzle-jquery.js +7 -0
- data/demo/bower_components/jquery/src/support.js +246 -0
- data/demo/bower_components/jquery/src/traversing.js +283 -0
- data/demo/bower_components/jquery/src/wrap.js +66 -0
- data/demo/bower_components/jquery/test/.jshintignore +3 -0
- data/demo/bower_components/jquery/test/.jshintrc +60 -0
- data/demo/bower_components/jquery/test/data/1x1.jpg +0 -0
- data/demo/bower_components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
- data/demo/bower_components/jquery/test/data/atom+xml.php +4 -0
- data/demo/bower_components/jquery/test/data/badcall.js +1 -0
- data/demo/bower_components/jquery/test/data/badjson.js +1 -0
- data/demo/bower_components/jquery/test/data/cleanScript.html +10 -0
- data/demo/bower_components/jquery/test/data/core/cc_on.html +22 -0
- data/demo/bower_components/jquery/test/data/dashboard.xml +11 -0
- data/demo/bower_components/jquery/test/data/dimensions/documentLarge.html +17 -0
- data/demo/bower_components/jquery/test/data/dimensions/documentSmall.html +21 -0
- data/demo/bower_components/jquery/test/data/echoData.php +1 -0
- data/demo/bower_components/jquery/test/data/echoQuery.php +1 -0
- data/demo/bower_components/jquery/test/data/errorWithJSON.php +6 -0
- data/demo/bower_components/jquery/test/data/errorWithText.php +5 -0
- data/demo/bower_components/jquery/test/data/etag.php +21 -0
- data/demo/bower_components/jquery/test/data/evalScript.php +1 -0
- data/demo/bower_components/jquery/test/data/event/focusElem.html +16 -0
- data/demo/bower_components/jquery/test/data/event/longLoadScript.php +4 -0
- data/demo/bower_components/jquery/test/data/event/promiseReady.html +17 -0
- data/demo/bower_components/jquery/test/data/event/syncReady.html +23 -0
- data/demo/bower_components/jquery/test/data/headers.php +18 -0
- data/demo/bower_components/jquery/test/data/if_modified_since.php +20 -0
- data/demo/bower_components/jquery/test/data/iframe.html +8 -0
- data/demo/bower_components/jquery/test/data/jquery-1.9.1.ajax_xhr.min.js +5 -0
- data/demo/bower_components/jquery/test/data/json.php +13 -0
- data/demo/bower_components/jquery/test/data/json_obj.js +1 -0
- data/demo/bower_components/jquery/test/data/jsonp.php +14 -0
- data/demo/bower_components/jquery/test/data/manipulation/iframe-denied.html +36 -0
- data/demo/bower_components/jquery/test/data/name.html +1 -0
- data/demo/bower_components/jquery/test/data/name.php +24 -0
- data/demo/bower_components/jquery/test/data/nocontent.php +5 -0
- data/demo/bower_components/jquery/test/data/offset/absolute.html +41 -0
- data/demo/bower_components/jquery/test/data/offset/body.html +26 -0
- data/demo/bower_components/jquery/test/data/offset/fixed.html +34 -0
- data/demo/bower_components/jquery/test/data/offset/relative.html +31 -0
- data/demo/bower_components/jquery/test/data/offset/scroll.html +39 -0
- data/demo/bower_components/jquery/test/data/offset/static.html +31 -0
- data/demo/bower_components/jquery/test/data/offset/table.html +43 -0
- data/demo/bower_components/jquery/test/data/params_html.php +12 -0
- data/demo/bower_components/jquery/test/data/readywaitasset.js +1 -0
- data/demo/bower_components/jquery/test/data/readywaitloader.js +25 -0
- data/demo/bower_components/jquery/test/data/script.php +11 -0
- data/demo/bower_components/jquery/test/data/selector/html5_selector.html +114 -0
- data/demo/bower_components/jquery/test/data/selector/sizzle_cache.html +21 -0
- data/demo/bower_components/jquery/test/data/statusText.php +5 -0
- data/demo/bower_components/jquery/test/data/support/bodyBackground.html +28 -0
- data/demo/bower_components/jquery/test/data/support/boxSizing.html +19 -0
- data/demo/bower_components/jquery/test/data/support/csp.js +3 -0
- data/demo/bower_components/jquery/test/data/support/csp.php +22 -0
- data/demo/bower_components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
- data/demo/bower_components/jquery/test/data/support/testElementCrash.html +17 -0
- data/demo/bower_components/jquery/test/data/test.html +7 -0
- data/demo/bower_components/jquery/test/data/test.js +3 -0
- data/demo/bower_components/jquery/test/data/test.php +7 -0
- data/demo/bower_components/jquery/test/data/test2.html +5 -0
- data/demo/bower_components/jquery/test/data/test3.html +3 -0
- data/demo/bower_components/jquery/test/data/testinit.js +264 -0
- data/demo/bower_components/jquery/test/data/testrunner.js +371 -0
- data/demo/bower_components/jquery/test/data/testsuite.css +155 -0
- data/demo/bower_components/jquery/test/data/text.php +12 -0
- data/demo/bower_components/jquery/test/data/ua.txt +272 -0
- data/demo/bower_components/jquery/test/data/with_fries.xml +25 -0
- data/demo/bower_components/jquery/test/data/with_fries_over_jsonp.php +7 -0
- data/demo/bower_components/jquery/test/delegatetest.html +228 -0
- data/demo/bower_components/jquery/test/hovertest.html +158 -0
- data/demo/bower_components/jquery/test/index.html +337 -0
- data/demo/bower_components/jquery/test/jquery.js +5 -0
- data/demo/bower_components/jquery/test/localfile.html +75 -0
- data/demo/bower_components/jquery/test/networkerror.html +84 -0
- data/demo/bower_components/jquery/test/readywait.html +70 -0
- data/demo/bower_components/jquery/test/unit/ajax.js +2016 -0
- data/demo/bower_components/jquery/test/unit/attributes.js +1388 -0
- data/demo/bower_components/jquery/test/unit/callbacks.js +342 -0
- data/demo/bower_components/jquery/test/unit/core.js +1360 -0
- data/demo/bower_components/jquery/test/unit/css.js +1056 -0
- data/demo/bower_components/jquery/test/unit/data.js +645 -0
- data/demo/bower_components/jquery/test/unit/deferred.js +436 -0
- data/demo/bower_components/jquery/test/unit/deprecated.js +8 -0
- data/demo/bower_components/jquery/test/unit/dimensions.js +472 -0
- data/demo/bower_components/jquery/test/unit/effects.js +2242 -0
- data/demo/bower_components/jquery/test/unit/event.js +2755 -0
- data/demo/bower_components/jquery/test/unit/exports.js +7 -0
- data/demo/bower_components/jquery/test/unit/manipulation.js +2120 -0
- data/demo/bower_components/jquery/test/unit/offset.js +559 -0
- data/demo/bower_components/jquery/test/unit/queue.js +314 -0
- data/demo/bower_components/jquery/test/unit/selector.js +172 -0
- data/demo/bower_components/jquery/test/unit/serialize.js +148 -0
- data/demo/bower_components/jquery/test/unit/support.js +370 -0
- data/demo/bower_components/jquery/test/unit/traversing.js +797 -0
- data/demo/bower_components/jquery/test/unit/wrap.js +265 -0
- data/demo/bower_components/jquery/test/xhtml.php +5 -0
- data/demo/index.html +347 -0
- data/demo/styles/main.css +208 -0
- data/demo/styles/main.scss +138 -0
- data/docs/docco.css +506 -0
- data/docs/guff.html +1127 -0
- data/docs/public/fonts/aller-bold.eot +0 -0
- data/docs/public/fonts/aller-bold.ttf +0 -0
- data/docs/public/fonts/aller-bold.woff +0 -0
- data/docs/public/fonts/aller-light.eot +0 -0
- data/docs/public/fonts/aller-light.ttf +0 -0
- data/docs/public/fonts/aller-light.woff +0 -0
- data/docs/public/fonts/novecento-bold.eot +0 -0
- data/docs/public/fonts/novecento-bold.ttf +0 -0
- data/docs/public/fonts/novecento-bold.woff +0 -0
- data/docs/public/stylesheets/normalize.css +375 -0
- data/guff.gemspec +16 -0
- data/guff.scss +514 -0
- data/gulpfile.js +67 -0
- data/lib/guff.rb +4 -0
- data/lib/stylesheets/_guff.scss +514 -0
- data/package.json +19 -0
- data/src/_functions.scss +57 -0
- data/src/_mixins.scss +301 -0
- data/src/_reset.scss +67 -0
- data/src/_settings.scss +22 -0
- data/src/_typography.scss +67 -0
- metadata +259 -0
|
@@ -0,0 +1,661 @@
|
|
|
1
|
+
var iframe, getStyles, curCSS,
|
|
2
|
+
ralpha = /alpha\([^)]*\)/i,
|
|
3
|
+
ropacity = /opacity\s*=\s*([^)]*)/,
|
|
4
|
+
rposition = /^(top|right|bottom|left)$/,
|
|
5
|
+
// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
|
|
6
|
+
// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
|
|
7
|
+
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
|
|
8
|
+
rmargin = /^margin/,
|
|
9
|
+
rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
|
|
10
|
+
rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
|
|
11
|
+
rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ),
|
|
12
|
+
elemdisplay = { BODY: "block" },
|
|
13
|
+
|
|
14
|
+
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
|
15
|
+
cssNormalTransform = {
|
|
16
|
+
letterSpacing: 0,
|
|
17
|
+
fontWeight: 400
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
cssExpand = [ "Top", "Right", "Bottom", "Left" ],
|
|
21
|
+
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
|
|
22
|
+
|
|
23
|
+
// return a css property mapped to a potentially vendor prefixed property
|
|
24
|
+
function vendorPropName( style, name ) {
|
|
25
|
+
|
|
26
|
+
// shortcut for names that are not vendor prefixed
|
|
27
|
+
if ( name in style ) {
|
|
28
|
+
return name;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// check for vendor prefixed names
|
|
32
|
+
var capName = name.charAt(0).toUpperCase() + name.slice(1),
|
|
33
|
+
origName = name,
|
|
34
|
+
i = cssPrefixes.length;
|
|
35
|
+
|
|
36
|
+
while ( i-- ) {
|
|
37
|
+
name = cssPrefixes[ i ] + capName;
|
|
38
|
+
if ( name in style ) {
|
|
39
|
+
return name;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return origName;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function isHidden( elem, el ) {
|
|
47
|
+
// isHidden might be called from jQuery#filter function;
|
|
48
|
+
// in that case, element will be second argument
|
|
49
|
+
elem = el || elem;
|
|
50
|
+
return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function showHide( elements, show ) {
|
|
54
|
+
var display, elem, hidden,
|
|
55
|
+
values = [],
|
|
56
|
+
index = 0,
|
|
57
|
+
length = elements.length;
|
|
58
|
+
|
|
59
|
+
for ( ; index < length; index++ ) {
|
|
60
|
+
elem = elements[ index ];
|
|
61
|
+
if ( !elem.style ) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
values[ index ] = jQuery._data( elem, "olddisplay" );
|
|
66
|
+
display = elem.style.display;
|
|
67
|
+
if ( show ) {
|
|
68
|
+
// Reset the inline display of this element to learn if it is
|
|
69
|
+
// being hidden by cascaded rules or not
|
|
70
|
+
if ( !values[ index ] && display === "none" ) {
|
|
71
|
+
elem.style.display = "";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Set elements which have been overridden with display: none
|
|
75
|
+
// in a stylesheet to whatever the default browser style is
|
|
76
|
+
// for such an element
|
|
77
|
+
if ( elem.style.display === "" && isHidden( elem ) ) {
|
|
78
|
+
values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
|
|
79
|
+
}
|
|
80
|
+
} else {
|
|
81
|
+
|
|
82
|
+
if ( !values[ index ] ) {
|
|
83
|
+
hidden = isHidden( elem );
|
|
84
|
+
|
|
85
|
+
if ( display && display !== "none" || !hidden ) {
|
|
86
|
+
jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Set the display of most of the elements in a second loop
|
|
93
|
+
// to avoid the constant reflow
|
|
94
|
+
for ( index = 0; index < length; index++ ) {
|
|
95
|
+
elem = elements[ index ];
|
|
96
|
+
if ( !elem.style ) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
|
|
100
|
+
elem.style.display = show ? values[ index ] || "" : "none";
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return elements;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
jQuery.fn.extend({
|
|
108
|
+
css: function( name, value ) {
|
|
109
|
+
return jQuery.access( this, function( elem, name, value ) {
|
|
110
|
+
var len, styles,
|
|
111
|
+
map = {},
|
|
112
|
+
i = 0;
|
|
113
|
+
|
|
114
|
+
if ( jQuery.isArray( name ) ) {
|
|
115
|
+
styles = getStyles( elem );
|
|
116
|
+
len = name.length;
|
|
117
|
+
|
|
118
|
+
for ( ; i < len; i++ ) {
|
|
119
|
+
map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return map;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return value !== undefined ?
|
|
126
|
+
jQuery.style( elem, name, value ) :
|
|
127
|
+
jQuery.css( elem, name );
|
|
128
|
+
}, name, value, arguments.length > 1 );
|
|
129
|
+
},
|
|
130
|
+
show: function() {
|
|
131
|
+
return showHide( this, true );
|
|
132
|
+
},
|
|
133
|
+
hide: function() {
|
|
134
|
+
return showHide( this );
|
|
135
|
+
},
|
|
136
|
+
toggle: function( state ) {
|
|
137
|
+
if ( typeof state === "boolean" ) {
|
|
138
|
+
return state ? this.show() : this.hide();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return this.each(function() {
|
|
142
|
+
if ( isHidden( this ) ) {
|
|
143
|
+
jQuery( this ).show();
|
|
144
|
+
} else {
|
|
145
|
+
jQuery( this ).hide();
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
jQuery.extend({
|
|
152
|
+
// Add in style property hooks for overriding the default
|
|
153
|
+
// behavior of getting and setting a style property
|
|
154
|
+
cssHooks: {
|
|
155
|
+
opacity: {
|
|
156
|
+
get: function( elem, computed ) {
|
|
157
|
+
if ( computed ) {
|
|
158
|
+
// We should always get a number back from opacity
|
|
159
|
+
var ret = curCSS( elem, "opacity" );
|
|
160
|
+
return ret === "" ? "1" : ret;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
|
|
166
|
+
// Don't automatically add "px" to these possibly-unitless properties
|
|
167
|
+
cssNumber: {
|
|
168
|
+
"columnCount": true,
|
|
169
|
+
"fillOpacity": true,
|
|
170
|
+
"fontWeight": true,
|
|
171
|
+
"lineHeight": true,
|
|
172
|
+
"opacity": true,
|
|
173
|
+
"order": true,
|
|
174
|
+
"orphans": true,
|
|
175
|
+
"widows": true,
|
|
176
|
+
"zIndex": true,
|
|
177
|
+
"zoom": true
|
|
178
|
+
},
|
|
179
|
+
|
|
180
|
+
// Add in properties whose names you wish to fix before
|
|
181
|
+
// setting or getting the value
|
|
182
|
+
cssProps: {
|
|
183
|
+
// normalize float css property
|
|
184
|
+
"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
// Get and set the style property on a DOM Node
|
|
188
|
+
style: function( elem, name, value, extra ) {
|
|
189
|
+
// Don't set styles on text and comment nodes
|
|
190
|
+
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Make sure that we're working with the right name
|
|
195
|
+
var ret, type, hooks,
|
|
196
|
+
origName = jQuery.camelCase( name ),
|
|
197
|
+
style = elem.style;
|
|
198
|
+
|
|
199
|
+
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
|
|
200
|
+
|
|
201
|
+
// gets hook for the prefixed version
|
|
202
|
+
// followed by the unprefixed version
|
|
203
|
+
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
|
|
204
|
+
|
|
205
|
+
// Check if we're setting a value
|
|
206
|
+
if ( value !== undefined ) {
|
|
207
|
+
type = typeof value;
|
|
208
|
+
|
|
209
|
+
// convert relative number strings (+= or -=) to relative numbers. #7345
|
|
210
|
+
if ( type === "string" && (ret = rrelNum.exec( value )) ) {
|
|
211
|
+
value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
|
|
212
|
+
// Fixes bug #9237
|
|
213
|
+
type = "number";
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Make sure that NaN and null values aren't set. See: #7116
|
|
217
|
+
if ( value == null || type === "number" && isNaN( value ) ) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// If a number was passed in, add 'px' to the (except for certain CSS properties)
|
|
222
|
+
if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
|
|
223
|
+
value += "px";
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
|
|
227
|
+
// but it would mean to define eight (for every problematic property) identical functions
|
|
228
|
+
if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
|
|
229
|
+
style[ name ] = "inherit";
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// If a hook was provided, use that value, otherwise just set the specified value
|
|
233
|
+
if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
|
|
234
|
+
|
|
235
|
+
// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
|
|
236
|
+
// Fixes bug #5509
|
|
237
|
+
try {
|
|
238
|
+
style[ name ] = value;
|
|
239
|
+
} catch(e) {}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
} else {
|
|
243
|
+
// If a hook was provided get the non-computed value from there
|
|
244
|
+
if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
|
|
245
|
+
return ret;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Otherwise just get the value from the style object
|
|
249
|
+
return style[ name ];
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
|
|
253
|
+
css: function( elem, name, extra, styles ) {
|
|
254
|
+
var num, val, hooks,
|
|
255
|
+
origName = jQuery.camelCase( name );
|
|
256
|
+
|
|
257
|
+
// Make sure that we're working with the right name
|
|
258
|
+
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
|
|
259
|
+
|
|
260
|
+
// gets hook for the prefixed version
|
|
261
|
+
// followed by the unprefixed version
|
|
262
|
+
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
|
|
263
|
+
|
|
264
|
+
// If a hook was provided get the computed value from there
|
|
265
|
+
if ( hooks && "get" in hooks ) {
|
|
266
|
+
val = hooks.get( elem, true, extra );
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// Otherwise, if a way to get the computed value exists, use that
|
|
270
|
+
if ( val === undefined ) {
|
|
271
|
+
val = curCSS( elem, name, styles );
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
//convert "normal" to computed value
|
|
275
|
+
if ( val === "normal" && name in cssNormalTransform ) {
|
|
276
|
+
val = cssNormalTransform[ name ];
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Return, converting to number if forced or a qualifier was provided and val looks numeric
|
|
280
|
+
if ( extra === "" || extra ) {
|
|
281
|
+
num = parseFloat( val );
|
|
282
|
+
return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
|
|
283
|
+
}
|
|
284
|
+
return val;
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// NOTE: we've included the "window" in window.getComputedStyle
|
|
289
|
+
// because jsdom on node.js will break without it.
|
|
290
|
+
if ( window.getComputedStyle ) {
|
|
291
|
+
getStyles = function( elem ) {
|
|
292
|
+
return window.getComputedStyle( elem, null );
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
curCSS = function( elem, name, _computed ) {
|
|
296
|
+
var width, minWidth, maxWidth,
|
|
297
|
+
computed = _computed || getStyles( elem ),
|
|
298
|
+
|
|
299
|
+
// getPropertyValue is only needed for .css('filter') in IE9, see #12537
|
|
300
|
+
ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,
|
|
301
|
+
style = elem.style;
|
|
302
|
+
|
|
303
|
+
if ( computed ) {
|
|
304
|
+
|
|
305
|
+
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
|
|
306
|
+
ret = jQuery.style( elem, name );
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// A tribute to the "awesome hack by Dean Edwards"
|
|
310
|
+
// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
|
|
311
|
+
// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
|
|
312
|
+
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
|
|
313
|
+
if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
|
|
314
|
+
|
|
315
|
+
// Remember the original values
|
|
316
|
+
width = style.width;
|
|
317
|
+
minWidth = style.minWidth;
|
|
318
|
+
maxWidth = style.maxWidth;
|
|
319
|
+
|
|
320
|
+
// Put in the new values to get a computed value out
|
|
321
|
+
style.minWidth = style.maxWidth = style.width = ret;
|
|
322
|
+
ret = computed.width;
|
|
323
|
+
|
|
324
|
+
// Revert the changed values
|
|
325
|
+
style.width = width;
|
|
326
|
+
style.minWidth = minWidth;
|
|
327
|
+
style.maxWidth = maxWidth;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return ret;
|
|
332
|
+
};
|
|
333
|
+
} else if ( document.documentElement.currentStyle ) {
|
|
334
|
+
getStyles = function( elem ) {
|
|
335
|
+
return elem.currentStyle;
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
curCSS = function( elem, name, _computed ) {
|
|
339
|
+
var left, rs, rsLeft,
|
|
340
|
+
computed = _computed || getStyles( elem ),
|
|
341
|
+
ret = computed ? computed[ name ] : undefined,
|
|
342
|
+
style = elem.style;
|
|
343
|
+
|
|
344
|
+
// Avoid setting ret to empty string here
|
|
345
|
+
// so we don't default to auto
|
|
346
|
+
if ( ret == null && style && style[ name ] ) {
|
|
347
|
+
ret = style[ name ];
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// From the awesome hack by Dean Edwards
|
|
351
|
+
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
|
|
352
|
+
|
|
353
|
+
// If we're not dealing with a regular pixel number
|
|
354
|
+
// but a number that has a weird ending, we need to convert it to pixels
|
|
355
|
+
// but not position css attributes, as those are proportional to the parent element instead
|
|
356
|
+
// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
|
|
357
|
+
if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
|
|
358
|
+
|
|
359
|
+
// Remember the original values
|
|
360
|
+
left = style.left;
|
|
361
|
+
rs = elem.runtimeStyle;
|
|
362
|
+
rsLeft = rs && rs.left;
|
|
363
|
+
|
|
364
|
+
// Put in the new values to get a computed value out
|
|
365
|
+
if ( rsLeft ) {
|
|
366
|
+
rs.left = elem.currentStyle.left;
|
|
367
|
+
}
|
|
368
|
+
style.left = name === "fontSize" ? "1em" : ret;
|
|
369
|
+
ret = style.pixelLeft + "px";
|
|
370
|
+
|
|
371
|
+
// Revert the changed values
|
|
372
|
+
style.left = left;
|
|
373
|
+
if ( rsLeft ) {
|
|
374
|
+
rs.left = rsLeft;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
return ret === "" ? "auto" : ret;
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
function setPositiveNumber( elem, value, subtract ) {
|
|
383
|
+
var matches = rnumsplit.exec( value );
|
|
384
|
+
return matches ?
|
|
385
|
+
// Guard against undefined "subtract", e.g., when used as in cssHooks
|
|
386
|
+
Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
|
|
387
|
+
value;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
|
|
391
|
+
var i = extra === ( isBorderBox ? "border" : "content" ) ?
|
|
392
|
+
// If we already have the right measurement, avoid augmentation
|
|
393
|
+
4 :
|
|
394
|
+
// Otherwise initialize for horizontal or vertical properties
|
|
395
|
+
name === "width" ? 1 : 0,
|
|
396
|
+
|
|
397
|
+
val = 0;
|
|
398
|
+
|
|
399
|
+
for ( ; i < 4; i += 2 ) {
|
|
400
|
+
// both box models exclude margin, so add it if we want it
|
|
401
|
+
if ( extra === "margin" ) {
|
|
402
|
+
val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
if ( isBorderBox ) {
|
|
406
|
+
// border-box includes padding, so remove it if we want content
|
|
407
|
+
if ( extra === "content" ) {
|
|
408
|
+
val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// at this point, extra isn't border nor margin, so remove border
|
|
412
|
+
if ( extra !== "margin" ) {
|
|
413
|
+
val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
|
|
414
|
+
}
|
|
415
|
+
} else {
|
|
416
|
+
// at this point, extra isn't content, so add padding
|
|
417
|
+
val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
|
|
418
|
+
|
|
419
|
+
// at this point, extra isn't content nor padding, so add border
|
|
420
|
+
if ( extra !== "padding" ) {
|
|
421
|
+
val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return val;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
function getWidthOrHeight( elem, name, extra ) {
|
|
430
|
+
|
|
431
|
+
// Start with offset property, which is equivalent to the border-box value
|
|
432
|
+
var valueIsBorderBox = true,
|
|
433
|
+
val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
|
|
434
|
+
styles = getStyles( elem ),
|
|
435
|
+
isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
|
|
436
|
+
|
|
437
|
+
// some non-html elements return undefined for offsetWidth, so check for null/undefined
|
|
438
|
+
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
|
|
439
|
+
// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
|
|
440
|
+
if ( val <= 0 || val == null ) {
|
|
441
|
+
// Fall back to computed then uncomputed css if necessary
|
|
442
|
+
val = curCSS( elem, name, styles );
|
|
443
|
+
if ( val < 0 || val == null ) {
|
|
444
|
+
val = elem.style[ name ];
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// Computed unit is not pixels. Stop here and return.
|
|
448
|
+
if ( rnumnonpx.test(val) ) {
|
|
449
|
+
return val;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
// we need the check for style in case a browser which returns unreliable values
|
|
453
|
+
// for getComputedStyle silently falls back to the reliable elem.style
|
|
454
|
+
valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
|
|
455
|
+
|
|
456
|
+
// Normalize "", auto, and prepare for extra
|
|
457
|
+
val = parseFloat( val ) || 0;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
// use the active box-sizing model to add/subtract irrelevant styles
|
|
461
|
+
return ( val +
|
|
462
|
+
augmentWidthOrHeight(
|
|
463
|
+
elem,
|
|
464
|
+
name,
|
|
465
|
+
extra || ( isBorderBox ? "border" : "content" ),
|
|
466
|
+
valueIsBorderBox,
|
|
467
|
+
styles
|
|
468
|
+
)
|
|
469
|
+
) + "px";
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
// Try to determine the default display value of an element
|
|
473
|
+
function css_defaultDisplay( nodeName ) {
|
|
474
|
+
var doc = document,
|
|
475
|
+
display = elemdisplay[ nodeName ];
|
|
476
|
+
|
|
477
|
+
if ( !display ) {
|
|
478
|
+
display = actualDisplay( nodeName, doc );
|
|
479
|
+
|
|
480
|
+
// If the simple way fails, read from inside an iframe
|
|
481
|
+
if ( display === "none" || !display ) {
|
|
482
|
+
// Use the already-created iframe if possible
|
|
483
|
+
iframe = ( iframe ||
|
|
484
|
+
jQuery("<iframe frameborder='0' width='0' height='0'/>")
|
|
485
|
+
.css( "cssText", "display:block !important" )
|
|
486
|
+
).appendTo( doc.documentElement );
|
|
487
|
+
|
|
488
|
+
// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
|
|
489
|
+
doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
|
|
490
|
+
doc.write("<!doctype html><html><body>");
|
|
491
|
+
doc.close();
|
|
492
|
+
|
|
493
|
+
display = actualDisplay( nodeName, doc );
|
|
494
|
+
iframe.detach();
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
// Store the correct default display
|
|
498
|
+
elemdisplay[ nodeName ] = display;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
return display;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
// Called ONLY from within css_defaultDisplay
|
|
505
|
+
function actualDisplay( name, doc ) {
|
|
506
|
+
var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
|
|
507
|
+
display = jQuery.css( elem[0], "display" );
|
|
508
|
+
elem.remove();
|
|
509
|
+
return display;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
jQuery.each([ "height", "width" ], function( i, name ) {
|
|
513
|
+
jQuery.cssHooks[ name ] = {
|
|
514
|
+
get: function( elem, computed, extra ) {
|
|
515
|
+
if ( computed ) {
|
|
516
|
+
// certain elements can have dimension info if we invisibly show them
|
|
517
|
+
// however, it must have a current display style that would benefit from this
|
|
518
|
+
return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
|
|
519
|
+
jQuery.swap( elem, cssShow, function() {
|
|
520
|
+
return getWidthOrHeight( elem, name, extra );
|
|
521
|
+
}) :
|
|
522
|
+
getWidthOrHeight( elem, name, extra );
|
|
523
|
+
}
|
|
524
|
+
},
|
|
525
|
+
|
|
526
|
+
set: function( elem, value, extra ) {
|
|
527
|
+
var styles = extra && getStyles( elem );
|
|
528
|
+
return setPositiveNumber( elem, value, extra ?
|
|
529
|
+
augmentWidthOrHeight(
|
|
530
|
+
elem,
|
|
531
|
+
name,
|
|
532
|
+
extra,
|
|
533
|
+
jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
|
534
|
+
styles
|
|
535
|
+
) : 0
|
|
536
|
+
);
|
|
537
|
+
}
|
|
538
|
+
};
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
if ( !jQuery.support.opacity ) {
|
|
542
|
+
jQuery.cssHooks.opacity = {
|
|
543
|
+
get: function( elem, computed ) {
|
|
544
|
+
// IE uses filters for opacity
|
|
545
|
+
return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
|
|
546
|
+
( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
|
|
547
|
+
computed ? "1" : "";
|
|
548
|
+
},
|
|
549
|
+
|
|
550
|
+
set: function( elem, value ) {
|
|
551
|
+
var style = elem.style,
|
|
552
|
+
currentStyle = elem.currentStyle,
|
|
553
|
+
opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
|
|
554
|
+
filter = currentStyle && currentStyle.filter || style.filter || "";
|
|
555
|
+
|
|
556
|
+
// IE has trouble with opacity if it does not have layout
|
|
557
|
+
// Force it by setting the zoom level
|
|
558
|
+
style.zoom = 1;
|
|
559
|
+
|
|
560
|
+
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
|
|
561
|
+
// if value === "", then remove inline opacity #12685
|
|
562
|
+
if ( ( value >= 1 || value === "" ) &&
|
|
563
|
+
jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
|
|
564
|
+
style.removeAttribute ) {
|
|
565
|
+
|
|
566
|
+
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
|
|
567
|
+
// if "filter:" is present at all, clearType is disabled, we want to avoid this
|
|
568
|
+
// style.removeAttribute is IE Only, but so apparently is this code path...
|
|
569
|
+
style.removeAttribute( "filter" );
|
|
570
|
+
|
|
571
|
+
// if there is no filter style applied in a css rule or unset inline opacity, we are done
|
|
572
|
+
if ( value === "" || currentStyle && !currentStyle.filter ) {
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
// otherwise, set new filter values
|
|
578
|
+
style.filter = ralpha.test( filter ) ?
|
|
579
|
+
filter.replace( ralpha, opacity ) :
|
|
580
|
+
filter + " " + opacity;
|
|
581
|
+
}
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
// These hooks cannot be added until DOM ready because the support test
|
|
586
|
+
// for it is not run until after DOM ready
|
|
587
|
+
jQuery(function() {
|
|
588
|
+
if ( !jQuery.support.reliableMarginRight ) {
|
|
589
|
+
jQuery.cssHooks.marginRight = {
|
|
590
|
+
get: function( elem, computed ) {
|
|
591
|
+
if ( computed ) {
|
|
592
|
+
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
|
593
|
+
// Work around by temporarily setting element display to inline-block
|
|
594
|
+
return jQuery.swap( elem, { "display": "inline-block" },
|
|
595
|
+
curCSS, [ elem, "marginRight" ] );
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
|
|
602
|
+
// getComputedStyle returns percent when specified for top/left/bottom/right
|
|
603
|
+
// rather than make the css module depend on the offset module, we just check for it here
|
|
604
|
+
if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
|
|
605
|
+
jQuery.each( [ "top", "left" ], function( i, prop ) {
|
|
606
|
+
jQuery.cssHooks[ prop ] = {
|
|
607
|
+
get: function( elem, computed ) {
|
|
608
|
+
if ( computed ) {
|
|
609
|
+
computed = curCSS( elem, prop );
|
|
610
|
+
// if curCSS returns percentage, fallback to offset
|
|
611
|
+
return rnumnonpx.test( computed ) ?
|
|
612
|
+
jQuery( elem ).position()[ prop ] + "px" :
|
|
613
|
+
computed;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
};
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
});
|
|
621
|
+
|
|
622
|
+
if ( jQuery.expr && jQuery.expr.filters ) {
|
|
623
|
+
jQuery.expr.filters.hidden = function( elem ) {
|
|
624
|
+
// Support: Opera <= 12.12
|
|
625
|
+
// Opera reports offsetWidths and offsetHeights less than zero on some elements
|
|
626
|
+
return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
|
|
627
|
+
(!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
jQuery.expr.filters.visible = function( elem ) {
|
|
631
|
+
return !jQuery.expr.filters.hidden( elem );
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// These hooks are used by animate to expand properties
|
|
636
|
+
jQuery.each({
|
|
637
|
+
margin: "",
|
|
638
|
+
padding: "",
|
|
639
|
+
border: "Width"
|
|
640
|
+
}, function( prefix, suffix ) {
|
|
641
|
+
jQuery.cssHooks[ prefix + suffix ] = {
|
|
642
|
+
expand: function( value ) {
|
|
643
|
+
var i = 0,
|
|
644
|
+
expanded = {},
|
|
645
|
+
|
|
646
|
+
// assumes a single number if not a string
|
|
647
|
+
parts = typeof value === "string" ? value.split(" ") : [ value ];
|
|
648
|
+
|
|
649
|
+
for ( ; i < 4; i++ ) {
|
|
650
|
+
expanded[ prefix + cssExpand[ i ] + suffix ] =
|
|
651
|
+
parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
return expanded;
|
|
655
|
+
}
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
if ( !rmargin.test( prefix ) ) {
|
|
659
|
+
jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
|
|
660
|
+
}
|
|
661
|
+
});
|