govuk_publishing_components 11.2.0 → 12.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/govuk_publishing_components/favicon-example.png +0 -0
  3. data/app/assets/images/govuk_publishing_components/favicon-production.png +0 -0
  4. data/app/assets/javascripts/component_guide/application.js +1 -1
  5. data/app/assets/javascripts/component_guide/no_slimmer.js +15 -0
  6. data/app/assets/javascripts/govuk_publishing_components/admin_scripts.js +2 -4
  7. data/app/assets/javascripts/govuk_publishing_components/all_components.js +4 -0
  8. data/app/assets/stylesheets/component_guide/application.scss +80 -74
  9. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +4 -0
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +26 -5
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +2 -0
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_contents-list.scss +21 -1
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +7 -1
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_error-alert.scss +2 -0
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_error-summary.scss +1 -0
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +24 -5
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +2 -0
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_highlight-boxes.scss +19 -7
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +11 -1
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +12 -0
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +9 -2
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_lead-paragraph.scss +2 -0
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +11 -0
  24. data/app/assets/stylesheets/govuk_publishing_components/components/_notice.scss +7 -2
  25. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +9 -8
  26. data/app/assets/stylesheets/govuk_publishing_components/components/_phase-banner.scss +4 -2
  27. data/app/assets/stylesheets/govuk_publishing_components/components/_previous-and-next-navigation.scss +12 -1
  28. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +6 -0
  29. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +16 -2
  30. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +7 -0
  31. data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +8 -2
  32. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +2 -0
  33. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +5 -0
  34. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +30 -7
  35. data/app/assets/stylesheets/govuk_publishing_components/components/_subscription-links.scss +14 -4
  36. data/app/assets/stylesheets/govuk_publishing_components/components/_success-alert.scss +2 -0
  37. data/app/assets/stylesheets/govuk_publishing_components/components/_taxonomy-list.scss +2 -1
  38. data/app/assets/stylesheets/govuk_publishing_components/components/_taxonomy-navigation.scss +10 -0
  39. data/app/assets/stylesheets/govuk_publishing_components/components/_title.scss +4 -0
  40. data/app/assets/stylesheets/govuk_publishing_components/components/_translation-nav.scss +7 -2
  41. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +4 -0
  42. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +24 -8
  43. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss +47 -13
  44. data/app/controllers/govuk_publishing_components/application_controller.rb +5 -6
  45. data/app/views/govuk_publishing_components/component_guide/index.html.erb +2 -2
  46. data/app/views/govuk_publishing_components/component_guide/show.html.erb +9 -9
  47. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +1 -1
  48. data/app/views/govuk_publishing_components/components/_feedback.html.erb +2 -2
  49. data/app/views/govuk_publishing_components/components/_image_card.html.erb +1 -1
  50. data/app/views/govuk_publishing_components/components/_layout_for_admin.html.erb +4 -7
  51. data/app/views/govuk_publishing_components/components/_notice.html.erb +2 -2
  52. data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb +2 -2
  53. data/app/views/govuk_publishing_components/components/_radio.html.erb +1 -1
  54. data/app/views/govuk_publishing_components/components/_step_by_step_nav.html.erb +1 -1
  55. data/app/views/govuk_publishing_components/components/_subscription-links.html.erb +2 -2
  56. data/app/views/govuk_publishing_components/components/_taxonomy_navigation.html.erb +2 -2
  57. data/app/views/govuk_publishing_components/components/_translation-nav.html.erb +1 -1
  58. data/app/views/govuk_publishing_components/components/docs/fieldset.yml +1 -1
  59. data/app/views/govuk_publishing_components/components/docs/layout_for_admin.yml +1 -0
  60. data/app/views/govuk_publishing_components/components/docs/tabs.yml +7 -7
  61. data/app/views/govuk_publishing_components/components/metadata/_sentence.html.erb +1 -1
  62. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +3 -3
  63. data/app/views/layouts/govuk_publishing_components/application.html.erb +43 -44
  64. data/config/initializers/assets.rb +2 -0
  65. data/lib/govuk_publishing_components/app_helpers/environment.rb +1 -0
  66. data/lib/govuk_publishing_components/config.rb +1 -1
  67. data/lib/govuk_publishing_components/engine.rb +0 -1
  68. data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +1 -1
  69. data/lib/govuk_publishing_components/presenters/step_by_step_nav_helper.rb +1 -1
  70. data/lib/govuk_publishing_components/version.rb +1 -1
  71. data/node_modules/jquery/AUTHORS.txt +266 -0
  72. data/node_modules/jquery/LICENSE.txt +36 -0
  73. data/node_modules/jquery/README.md +65 -0
  74. data/node_modules/jquery/bower.json +14 -0
  75. data/node_modules/jquery/dist/jquery.js +11008 -0
  76. data/node_modules/jquery/dist/jquery.min.js +5 -0
  77. data/node_modules/jquery/dist/jquery.min.map +1 -0
  78. data/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
  79. data/node_modules/jquery/external/sizzle/dist/sizzle.js +2143 -0
  80. data/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  81. data/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  82. data/node_modules/jquery/package.json +157 -0
  83. data/node_modules/jquery/src/ajax.js +842 -0
  84. data/node_modules/jquery/src/ajax/jsonp.js +100 -0
  85. data/node_modules/jquery/src/ajax/load.js +83 -0
  86. data/node_modules/jquery/src/ajax/parseJSON.js +53 -0
  87. data/node_modules/jquery/src/ajax/parseXML.js +31 -0
  88. data/node_modules/jquery/src/ajax/script.js +95 -0
  89. data/node_modules/jquery/src/ajax/var/location.js +3 -0
  90. data/node_modules/jquery/src/ajax/var/nonce.js +5 -0
  91. data/node_modules/jquery/src/ajax/var/rquery.js +3 -0
  92. data/node_modules/jquery/src/ajax/xhr.js +229 -0
  93. data/node_modules/jquery/src/attributes.js +11 -0
  94. data/node_modules/jquery/src/attributes/attr.js +281 -0
  95. data/node_modules/jquery/src/attributes/classes.js +174 -0
  96. data/node_modules/jquery/src/attributes/prop.js +156 -0
  97. data/node_modules/jquery/src/attributes/support.js +70 -0
  98. data/node_modules/jquery/src/attributes/val.js +191 -0
  99. data/node_modules/jquery/src/callbacks.js +232 -0
  100. data/node_modules/jquery/src/core.js +529 -0
  101. data/node_modules/jquery/src/core/access.js +65 -0
  102. data/node_modules/jquery/src/core/init.js +140 -0
  103. data/node_modules/jquery/src/core/parseHTML.js +41 -0
  104. data/node_modules/jquery/src/core/ready.js +163 -0
  105. data/node_modules/jquery/src/core/var/rsingleTag.js +5 -0
  106. data/node_modules/jquery/src/css.js +563 -0
  107. data/node_modules/jquery/src/css/addGetHookIf.js +24 -0
  108. data/node_modules/jquery/src/css/adjustCSS.js +65 -0
  109. data/node_modules/jquery/src/css/curCSS.js +137 -0
  110. data/node_modules/jquery/src/css/defaultDisplay.js +72 -0
  111. data/node_modules/jquery/src/css/hiddenVisibleSelectors.js +42 -0
  112. data/node_modules/jquery/src/css/showHide.js +45 -0
  113. data/node_modules/jquery/src/css/support.js +184 -0
  114. data/node_modules/jquery/src/css/var/cssExpand.js +3 -0
  115. data/node_modules/jquery/src/css/var/isHidden.js +16 -0
  116. data/node_modules/jquery/src/css/var/rmargin.js +3 -0
  117. data/node_modules/jquery/src/css/var/rnumnonpx.js +5 -0
  118. data/node_modules/jquery/src/css/var/swap.js +24 -0
  119. data/node_modules/jquery/src/data.js +342 -0
  120. data/node_modules/jquery/src/data/support.js +23 -0
  121. data/node_modules/jquery/src/data/var/acceptData.js +20 -0
  122. data/node_modules/jquery/src/deferred.js +159 -0
  123. data/node_modules/jquery/src/deprecated.js +34 -0
  124. data/node_modules/jquery/src/dimensions.js +56 -0
  125. data/node_modules/jquery/src/effects.js +640 -0
  126. data/node_modules/jquery/src/effects/Tween.js +121 -0
  127. data/node_modules/jquery/src/effects/animatedSelector.js +13 -0
  128. data/node_modules/jquery/src/effects/support.js +58 -0
  129. data/node_modules/jquery/src/event.js +1134 -0
  130. data/node_modules/jquery/src/event/ajax.js +20 -0
  131. data/node_modules/jquery/src/event/alias.js +25 -0
  132. data/node_modules/jquery/src/event/support.js +28 -0
  133. data/node_modules/jquery/src/exports/amd.js +24 -0
  134. data/node_modules/jquery/src/exports/global.js +26 -0
  135. data/node_modules/jquery/src/intro.js +44 -0
  136. data/node_modules/jquery/src/jquery.js +37 -0
  137. data/node_modules/jquery/src/manipulation.js +585 -0
  138. data/node_modules/jquery/src/manipulation/_evalUrl.js +21 -0
  139. data/node_modules/jquery/src/manipulation/buildFragment.js +157 -0
  140. data/node_modules/jquery/src/manipulation/createSafeFragment.js +20 -0
  141. data/node_modules/jquery/src/manipulation/getAll.js +33 -0
  142. data/node_modules/jquery/src/manipulation/setGlobalEval.js +19 -0
  143. data/node_modules/jquery/src/manipulation/support.js +72 -0
  144. data/node_modules/jquery/src/manipulation/var/nodeNames.js +5 -0
  145. data/node_modules/jquery/src/manipulation/var/rcheckableType.js +3 -0
  146. data/node_modules/jquery/src/manipulation/var/rleadingWhitespace.js +3 -0
  147. data/node_modules/jquery/src/manipulation/var/rscriptType.js +3 -0
  148. data/node_modules/jquery/src/manipulation/var/rtagName.js +3 -0
  149. data/node_modules/jquery/src/manipulation/wrapMap.js +30 -0
  150. data/node_modules/jquery/src/offset.js +219 -0
  151. data/node_modules/jquery/src/outro.js +2 -0
  152. data/node_modules/jquery/src/queue.js +144 -0
  153. data/node_modules/jquery/src/queue/delay.js +22 -0
  154. data/node_modules/jquery/src/selector-sizzle.js +14 -0
  155. data/node_modules/jquery/src/selector.js +1 -0
  156. data/node_modules/jquery/src/serialize.js +125 -0
  157. data/node_modules/jquery/src/support.js +63 -0
  158. data/node_modules/jquery/src/traversing.js +179 -0
  159. data/node_modules/jquery/src/traversing/findFilter.js +100 -0
  160. data/node_modules/jquery/src/traversing/var/dir.js +20 -0
  161. data/node_modules/jquery/src/traversing/var/rneedsContext.js +6 -0
  162. data/node_modules/jquery/src/traversing/var/siblings.js +15 -0
  163. data/node_modules/jquery/src/var/class2type.js +5 -0
  164. data/node_modules/jquery/src/var/concat.js +5 -0
  165. data/node_modules/jquery/src/var/deletedIds.js +3 -0
  166. data/node_modules/jquery/src/var/document.js +3 -0
  167. data/node_modules/jquery/src/var/documentElement.js +5 -0
  168. data/node_modules/jquery/src/var/hasOwn.js +5 -0
  169. data/node_modules/jquery/src/var/indexOf.js +5 -0
  170. data/node_modules/jquery/src/var/pnum.js +3 -0
  171. data/node_modules/jquery/src/var/push.js +5 -0
  172. data/node_modules/jquery/src/var/rcssNum.js +7 -0
  173. data/node_modules/jquery/src/var/rnotwhite.js +3 -0
  174. data/node_modules/jquery/src/var/slice.js +5 -0
  175. data/node_modules/jquery/src/var/support.js +5 -0
  176. data/node_modules/jquery/src/var/toString.js +5 -0
  177. data/node_modules/jquery/src/wrap.js +77 -0
  178. metadata +111 -19
  179. data/app/assets/images/govuk_publishing_components/favicon-test.png +0 -0
  180. data/app/assets/stylesheets/govuk_publishing_components/admin_styles_ie8.scss +0 -3
  181. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_touch-friendly-links.scss +0 -11
@@ -0,0 +1,3 @@
1
+ define( function() {
2
+ return [ "Top", "Right", "Bottom", "Left" ];
3
+ } );
@@ -0,0 +1,16 @@
1
+ define( [
2
+ "../../core",
3
+ "../../selector"
4
+
5
+ // css is assumed
6
+ ], function( jQuery ) {
7
+
8
+ return function( elem, el ) {
9
+
10
+ // isHidden might be called from jQuery#filter function;
11
+ // in that case, element will be second argument
12
+ elem = el || elem;
13
+ return jQuery.css( elem, "display" ) === "none" ||
14
+ !jQuery.contains( elem.ownerDocument, elem );
15
+ };
16
+ } );
@@ -0,0 +1,3 @@
1
+ define( function() {
2
+ return ( /^margin/ );
3
+ } );
@@ -0,0 +1,5 @@
1
+ define( [
2
+ "../../var/pnum"
3
+ ], function( pnum ) {
4
+ return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
5
+ } );
@@ -0,0 +1,24 @@
1
+ define( function() {
2
+
3
+ // A method for quickly swapping in/out CSS properties to get correct calculations.
4
+ return function( elem, options, callback, args ) {
5
+ var ret, name,
6
+ old = {};
7
+
8
+ // Remember the old values, and insert the new ones
9
+ for ( name in options ) {
10
+ old[ name ] = elem.style[ name ];
11
+ elem.style[ name ] = options[ name ];
12
+ }
13
+
14
+ ret = callback.apply( elem, args || [] );
15
+
16
+ // Revert the old values
17
+ for ( name in options ) {
18
+ elem.style[ name ] = old[ name ];
19
+ }
20
+
21
+ return ret;
22
+ };
23
+
24
+ } );
@@ -0,0 +1,342 @@
1
+ define( [
2
+ "./core",
3
+ "./var/deletedIds",
4
+ "./data/support",
5
+ "./data/var/acceptData"
6
+ ], function( jQuery, deletedIds, support, acceptData ) {
7
+
8
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
9
+ rmultiDash = /([A-Z])/g;
10
+
11
+ function dataAttr( elem, key, data ) {
12
+
13
+ // If nothing was found internally, try to fetch any
14
+ // data from the HTML5 data-* attribute
15
+ if ( data === undefined && elem.nodeType === 1 ) {
16
+
17
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
18
+
19
+ data = elem.getAttribute( name );
20
+
21
+ if ( typeof data === "string" ) {
22
+ try {
23
+ data = data === "true" ? true :
24
+ data === "false" ? false :
25
+ data === "null" ? null :
26
+
27
+ // Only convert to a number if it doesn't change the string
28
+ +data + "" === data ? +data :
29
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
30
+ data;
31
+ } catch ( e ) {}
32
+
33
+ // Make sure we set the data so it isn't changed later
34
+ jQuery.data( elem, key, data );
35
+
36
+ } else {
37
+ data = undefined;
38
+ }
39
+ }
40
+
41
+ return data;
42
+ }
43
+
44
+ // checks a cache object for emptiness
45
+ function isEmptyDataObject( obj ) {
46
+ var name;
47
+ for ( name in obj ) {
48
+
49
+ // if the public data object is empty, the private is still empty
50
+ if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) {
51
+ continue;
52
+ }
53
+ if ( name !== "toJSON" ) {
54
+ return false;
55
+ }
56
+ }
57
+
58
+ return true;
59
+ }
60
+
61
+ function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
62
+ if ( !acceptData( elem ) ) {
63
+ return;
64
+ }
65
+
66
+ var ret, thisCache,
67
+ internalKey = jQuery.expando,
68
+
69
+ // We have to handle DOM nodes and JS objects differently because IE6-7
70
+ // can't GC object references properly across the DOM-JS boundary
71
+ isNode = elem.nodeType,
72
+
73
+ // Only DOM nodes need the global jQuery cache; JS object data is
74
+ // attached directly to the object so GC can occur automatically
75
+ cache = isNode ? jQuery.cache : elem,
76
+
77
+ // Only defining an ID for JS objects if its cache already exists allows
78
+ // the code to shortcut on the same path as a DOM node with no cache
79
+ id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
80
+
81
+ // Avoid doing any more work than we need to when trying to get data on an
82
+ // object that has no data at all
83
+ if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&
84
+ data === undefined && typeof name === "string" ) {
85
+ return;
86
+ }
87
+
88
+ if ( !id ) {
89
+
90
+ // Only DOM nodes need a new unique ID for each element since their data
91
+ // ends up in the global cache
92
+ if ( isNode ) {
93
+ id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
94
+ } else {
95
+ id = internalKey;
96
+ }
97
+ }
98
+
99
+ if ( !cache[ id ] ) {
100
+
101
+ // Avoid exposing jQuery metadata on plain JS objects when the object
102
+ // is serialized using JSON.stringify
103
+ cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
104
+ }
105
+
106
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
107
+ // shallow copied over onto the existing cache
108
+ if ( typeof name === "object" || typeof name === "function" ) {
109
+ if ( pvt ) {
110
+ cache[ id ] = jQuery.extend( cache[ id ], name );
111
+ } else {
112
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
113
+ }
114
+ }
115
+
116
+ thisCache = cache[ id ];
117
+
118
+ // jQuery data() is stored in a separate object inside the object's internal data
119
+ // cache in order to avoid key collisions between internal data and user-defined
120
+ // data.
121
+ if ( !pvt ) {
122
+ if ( !thisCache.data ) {
123
+ thisCache.data = {};
124
+ }
125
+
126
+ thisCache = thisCache.data;
127
+ }
128
+
129
+ if ( data !== undefined ) {
130
+ thisCache[ jQuery.camelCase( name ) ] = data;
131
+ }
132
+
133
+ // Check for both converted-to-camel and non-converted data property names
134
+ // If a data property was specified
135
+ if ( typeof name === "string" ) {
136
+
137
+ // First Try to find as-is property data
138
+ ret = thisCache[ name ];
139
+
140
+ // Test for null|undefined property data
141
+ if ( ret == null ) {
142
+
143
+ // Try to find the camelCased property
144
+ ret = thisCache[ jQuery.camelCase( name ) ];
145
+ }
146
+ } else {
147
+ ret = thisCache;
148
+ }
149
+
150
+ return ret;
151
+ }
152
+
153
+ function internalRemoveData( elem, name, pvt ) {
154
+ if ( !acceptData( elem ) ) {
155
+ return;
156
+ }
157
+
158
+ var thisCache, i,
159
+ isNode = elem.nodeType,
160
+
161
+ // See jQuery.data for more information
162
+ cache = isNode ? jQuery.cache : elem,
163
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
164
+
165
+ // If there is already no cache entry for this object, there is no
166
+ // purpose in continuing
167
+ if ( !cache[ id ] ) {
168
+ return;
169
+ }
170
+
171
+ if ( name ) {
172
+
173
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
174
+
175
+ if ( thisCache ) {
176
+
177
+ // Support array or space separated string names for data keys
178
+ if ( !jQuery.isArray( name ) ) {
179
+
180
+ // try the string as a key before any manipulation
181
+ if ( name in thisCache ) {
182
+ name = [ name ];
183
+ } else {
184
+
185
+ // split the camel cased version by spaces unless a key with the spaces exists
186
+ name = jQuery.camelCase( name );
187
+ if ( name in thisCache ) {
188
+ name = [ name ];
189
+ } else {
190
+ name = name.split( " " );
191
+ }
192
+ }
193
+ } else {
194
+
195
+ // If "name" is an array of keys...
196
+ // When data is initially created, via ("key", "val") signature,
197
+ // keys will be converted to camelCase.
198
+ // Since there is no way to tell _how_ a key was added, remove
199
+ // both plain key and camelCase key. #12786
200
+ // This will only penalize the array argument path.
201
+ name = name.concat( jQuery.map( name, jQuery.camelCase ) );
202
+ }
203
+
204
+ i = name.length;
205
+ while ( i-- ) {
206
+ delete thisCache[ name[ i ] ];
207
+ }
208
+
209
+ // If there is no data left in the cache, we want to continue
210
+ // and let the cache object itself get destroyed
211
+ if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {
212
+ return;
213
+ }
214
+ }
215
+ }
216
+
217
+ // See jQuery.data for more information
218
+ if ( !pvt ) {
219
+ delete cache[ id ].data;
220
+
221
+ // Don't destroy the parent cache unless the internal data object
222
+ // had been the only thing left in it
223
+ if ( !isEmptyDataObject( cache[ id ] ) ) {
224
+ return;
225
+ }
226
+ }
227
+
228
+ // Destroy the cache
229
+ if ( isNode ) {
230
+ jQuery.cleanData( [ elem ], true );
231
+
232
+ // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
233
+ /* jshint eqeqeq: false */
234
+ } else if ( support.deleteExpando || cache != cache.window ) {
235
+ /* jshint eqeqeq: true */
236
+ delete cache[ id ];
237
+
238
+ // When all else fails, undefined
239
+ } else {
240
+ cache[ id ] = undefined;
241
+ }
242
+ }
243
+
244
+ jQuery.extend( {
245
+ cache: {},
246
+
247
+ // The following elements (space-suffixed to avoid Object.prototype collisions)
248
+ // throw uncatchable exceptions if you attempt to set expando properties
249
+ noData: {
250
+ "applet ": true,
251
+ "embed ": true,
252
+
253
+ // ...but Flash objects (which have this classid) *can* handle expandos
254
+ "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
255
+ },
256
+
257
+ hasData: function( elem ) {
258
+ elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];
259
+ return !!elem && !isEmptyDataObject( elem );
260
+ },
261
+
262
+ data: function( elem, name, data ) {
263
+ return internalData( elem, name, data );
264
+ },
265
+
266
+ removeData: function( elem, name ) {
267
+ return internalRemoveData( elem, name );
268
+ },
269
+
270
+ // For internal use only.
271
+ _data: function( elem, name, data ) {
272
+ return internalData( elem, name, data, true );
273
+ },
274
+
275
+ _removeData: function( elem, name ) {
276
+ return internalRemoveData( elem, name, true );
277
+ }
278
+ } );
279
+
280
+ jQuery.fn.extend( {
281
+ data: function( key, value ) {
282
+ var i, name, data,
283
+ elem = this[ 0 ],
284
+ attrs = elem && elem.attributes;
285
+
286
+ // Special expections of .data basically thwart jQuery.access,
287
+ // so implement the relevant behavior ourselves
288
+
289
+ // Gets all values
290
+ if ( key === undefined ) {
291
+ if ( this.length ) {
292
+ data = jQuery.data( elem );
293
+
294
+ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
295
+ i = attrs.length;
296
+ while ( i-- ) {
297
+
298
+ // Support: IE11+
299
+ // The attrs elements can be null (#14894)
300
+ if ( attrs[ i ] ) {
301
+ name = attrs[ i ].name;
302
+ if ( name.indexOf( "data-" ) === 0 ) {
303
+ name = jQuery.camelCase( name.slice( 5 ) );
304
+ dataAttr( elem, name, data[ name ] );
305
+ }
306
+ }
307
+ }
308
+ jQuery._data( elem, "parsedAttrs", true );
309
+ }
310
+ }
311
+
312
+ return data;
313
+ }
314
+
315
+ // Sets multiple values
316
+ if ( typeof key === "object" ) {
317
+ return this.each( function() {
318
+ jQuery.data( this, key );
319
+ } );
320
+ }
321
+
322
+ return arguments.length > 1 ?
323
+
324
+ // Sets one value
325
+ this.each( function() {
326
+ jQuery.data( this, key, value );
327
+ } ) :
328
+
329
+ // Gets one value
330
+ // Try to fetch any internally stored data first
331
+ elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
332
+ },
333
+
334
+ removeData: function( key ) {
335
+ return this.each( function() {
336
+ jQuery.removeData( this, key );
337
+ } );
338
+ }
339
+ } );
340
+
341
+ return jQuery;
342
+ } );
@@ -0,0 +1,23 @@
1
+ define( [
2
+ "../var/document",
3
+ "../var/support"
4
+ ], function( document, support ) {
5
+
6
+ ( function() {
7
+ var div = document.createElement( "div" );
8
+
9
+ // Support: IE<9
10
+ support.deleteExpando = true;
11
+ try {
12
+ delete div.test;
13
+ } catch ( e ) {
14
+ support.deleteExpando = false;
15
+ }
16
+
17
+ // Null elements to avoid leaks in IE.
18
+ div = null;
19
+ } )();
20
+
21
+ return support;
22
+
23
+ } );
@@ -0,0 +1,20 @@
1
+ define( [
2
+ "../../core"
3
+ ], function( jQuery ) {
4
+
5
+ /**
6
+ * Determines whether an object can have data
7
+ */
8
+ return function( elem ) {
9
+ var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ],
10
+ nodeType = +elem.nodeType || 1;
11
+
12
+ // Do not set data on non-element DOM nodes because it will not be cleared (#8335).
13
+ return nodeType !== 1 && nodeType !== 9 ?
14
+ false :
15
+
16
+ // Nodes accept data unless otherwise specified; rejection can be conditional
17
+ !noData || noData !== true && elem.getAttribute( "classid" ) === noData;
18
+ };
19
+
20
+ } );