semantic-ui-sass 1.7.0.0 → 1.7.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/app/assets/javascripts/semantic-ui/accordion.js +100 -47
  4. data/app/assets/javascripts/semantic-ui/api.js +9 -9
  5. data/app/assets/javascripts/semantic-ui/checkbox.js +14 -13
  6. data/app/assets/javascripts/semantic-ui/dimmer.js +9 -9
  7. data/app/assets/javascripts/semantic-ui/dropdown.js +98 -58
  8. data/app/assets/javascripts/semantic-ui/form.js +23 -23
  9. data/app/assets/javascripts/semantic-ui/modal.js +14 -14
  10. data/app/assets/javascripts/semantic-ui/popup.js +91 -40
  11. data/app/assets/javascripts/semantic-ui/progress.js +12 -6
  12. data/app/assets/javascripts/semantic-ui/rating.js +6 -6
  13. data/app/assets/javascripts/semantic-ui/search.js +217 -206
  14. data/app/assets/javascripts/semantic-ui/shape.js +8 -8
  15. data/app/assets/javascripts/semantic-ui/sidebar.js +116 -93
  16. data/app/assets/javascripts/semantic-ui/site.js +2 -2
  17. data/app/assets/javascripts/semantic-ui/state.js +6 -6
  18. data/app/assets/javascripts/semantic-ui/sticky.js +11 -11
  19. data/app/assets/javascripts/semantic-ui/tab.js +12 -12
  20. data/app/assets/javascripts/semantic-ui/transition.js +9 -9
  21. data/app/assets/javascripts/semantic-ui/video.js +4 -4
  22. data/app/assets/javascripts/semantic-ui/visibility.js +3 -3
  23. data/app/assets/javascripts/semantic-ui/visit.js +7 -7
  24. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
  25. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +1 -1
  26. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +118 -14
  27. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +23 -9
  28. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +4 -4
  29. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +1 -1
  30. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +127 -126
  31. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
  32. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -2
  33. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +1 -1
  34. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +2 -2
  35. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
  36. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +1 -1
  37. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +5 -5
  38. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +4 -3
  39. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +1 -1
  40. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
  41. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +13 -1
  42. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +1 -7
  43. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +36 -35
  44. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +1 -1
  45. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +23 -4
  46. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +3 -3
  47. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +1 -1
  48. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +1 -1
  49. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +115 -29
  50. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +1 -1
  51. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
  52. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +1 -6
  53. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +13 -1
  54. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +1 -1
  55. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -1
  56. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
  57. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +134 -16
  58. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -1
  59. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
  60. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
  61. data/app/assets/stylesheets/semantic-ui/modules/_video.scss +1 -1
  62. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +13 -1
  63. data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
  64. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
  65. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +1 -1
  66. data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
  67. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
  68. data/lib/semantic/ui/sass/version.rb +2 -2
  69. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aee91ae09b3fd2e70fc4f7c90e260f61303f0755
4
- data.tar.gz: 1e2adab02571730a1a67672069e8d4e74206468d
3
+ metadata.gz: 9d63820fb00744c5df973634cb4033113238f76a
4
+ data.tar.gz: 4228fea953d5e1db5c6eb55c59d0b9c944a814f1
5
5
  SHA512:
6
- metadata.gz: 11ccfdf33638939dd8ad1bacd2605fd4558ecf427c6b0122e329a2231fb6f93cce144c3e10625d71aab73273ac9cc4761e886a9dafd4abcb8d907efd4845c56e
7
- data.tar.gz: d2b67b63c02d16ede9b5e4ef6968b68a39244a9f686a2f8b9f6df1b5ce23a3e1212de98e7d7e49149a7a66373c5994c867b7c549b70f171e1dcc311ae63de741
6
+ metadata.gz: f46a864f10888a0ab5d3b61eb811f00a39a7d5c56deb10c87309bd29d9f2c283ec21aaacf2b5694cd818a07bb7bf5c2d334376d4368e894729bdea16c9b5c818
7
+ data.tar.gz: 2930f3536bac7eacd2116666a063458676a9fff279700a2fa3ae4d5fc51b352e63d039d1dff6e1298042e36625b9fe01059e195463d0893cae3b9d77be91a45a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.7.3.0
2
+
3
+ * Update Semantic UI to 1.7.3
4
+
1
5
  ## 1.7.0.0
2
6
 
3
7
  * Update Semantic UI to 1.7.0
@@ -108,7 +108,7 @@ $.fn.accordion = function(parameters) {
108
108
 
109
109
  event: {
110
110
  click: function() {
111
- $.proxy(module.toggle, this)();
111
+ module.toggle.call(this);
112
112
  }
113
113
  },
114
114
 
@@ -125,14 +125,14 @@ $.fn.accordion = function(parameters) {
125
125
  module.debug('Toggling visibility of content', $activeTitle);
126
126
  if(contentIsOpen) {
127
127
  if(settings.collapsible) {
128
- $.proxy(module.close, $activeTitle)();
128
+ module.close.call($activeTitle);
129
129
  }
130
130
  else {
131
131
  module.debug('Cannot close accordion content collapsing is disabled');
132
132
  }
133
133
  }
134
134
  else {
135
- $.proxy(module.open, $activeTitle)();
135
+ module.open.call($activeTitle);
136
136
  }
137
137
  },
138
138
 
@@ -150,26 +150,43 @@ $.fn.accordion = function(parameters) {
150
150
  if(!currentlyAnimating && !currentlyActive) {
151
151
  module.debug('Opening accordion content', $activeTitle);
152
152
  if(settings.exclusive) {
153
- $.proxy(module.closeOthers, $activeTitle)();
153
+ module.closeOthers.call($activeTitle);
154
154
  }
155
155
  $activeTitle
156
156
  .addClass(className.active)
157
157
  ;
158
+ if(settings.animateChildren) {
159
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
160
+ $activeContent
161
+ .children()
162
+ .transition({
163
+ animation : 'fade in',
164
+ useFailSafe : true,
165
+ debug : settings.debug,
166
+ verbose : settings.verbose,
167
+ duration : settings.duration
168
+ })
169
+ ;
170
+ }
171
+ else {
172
+ $activeContent
173
+ .children()
174
+ .stop()
175
+ .animate({
176
+ opacity: 1
177
+ }, settings.duration, module.resetOpacity)
178
+ ;
179
+ }
180
+ }
158
181
  $activeContent
159
182
  .stop()
160
- .children()
161
- .stop()
162
- .animate({
163
- opacity: 1
164
- }, settings.duration, module.reset.display)
165
- .end()
166
183
  .slideDown(settings.duration, settings.easing, function() {
167
184
  $activeContent
168
185
  .addClass(className.active)
169
186
  ;
170
- $.proxy(module.reset.display, this)();
171
- $.proxy(settings.onOpen, this)();
172
- $.proxy(settings.onChange, this)();
187
+ module.reset.display.call(this);
188
+ settings.onOpen.call(this);
189
+ settings.onChange.call(this);
173
190
  })
174
191
  ;
175
192
  }
@@ -193,17 +210,36 @@ $.fn.accordion = function(parameters) {
193
210
  $activeContent
194
211
  .removeClass(className.active)
195
212
  .show()
213
+ ;
214
+ if(settings.animateChildren) {
215
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
216
+ $activeContent
217
+ .children()
218
+ .transition({
219
+ animation : 'fade out',
220
+ useFailSafe : true,
221
+ debug : settings.debug,
222
+ verbose : settings.verbose,
223
+ duration : settings.duration
224
+ })
225
+ ;
226
+ }
227
+ else {
228
+ $activeContent
229
+ .children()
230
+ .stop()
231
+ .animate({
232
+ opacity: 0
233
+ }, settings.duration, module.resetOpacity)
234
+ ;
235
+ }
236
+ }
237
+ $activeContent
196
238
  .stop()
197
- .children()
198
- .stop()
199
- .animate({
200
- opacity: 0
201
- }, settings.duration, module.reset.opacity)
202
- .end()
203
239
  .slideUp(settings.duration, settings.easing, function() {
204
- $.proxy(module.reset.display, this)();
205
- $.proxy(settings.onClose, this)();
206
- $.proxy(settings.onChange, this)();
240
+ module.reset.display.call(this);
241
+ settings.onClose.call(this);
242
+ settings.onChange.call(this);
207
243
  })
208
244
  ;
209
245
  }
@@ -229,25 +265,42 @@ $.fn.accordion = function(parameters) {
229
265
  else {
230
266
  $openTitles = $activeAccordion.find(activeSelector).not($parentTitles);
231
267
  $nestedTitles = $activeAccordion.find(activeContent).find(activeSelector).not($parentTitles);
232
- $openTitles = $openTitles.not($nestedTitles);
268
+ $openTitles = $openTitles.not($nestedTitles);
233
269
  $openContents = $openTitles.next($content);
234
270
  }
235
- if( ($openTitles.size() > 0) ) {
271
+ if( ($openTitles.length > 0) ) {
236
272
  module.debug('Exclusive enabled, closing other content', $openTitles);
237
273
  $openTitles
238
274
  .removeClass(className.active)
239
275
  ;
276
+ if(settings.animateChildren) {
277
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
278
+ $openContents
279
+ .children()
280
+ .transition({
281
+ animation : 'fade out',
282
+ useFailSafe : true,
283
+ debug : settings.debug,
284
+ verbose : settings.verbose,
285
+ duration : settings.duration
286
+ })
287
+ ;
288
+ }
289
+ else {
290
+ $openContents
291
+ .children()
292
+ .stop()
293
+ .animate({
294
+ opacity: 0
295
+ }, settings.duration, module.resetOpacity)
296
+ ;
297
+ }
298
+ }
240
299
  $openContents
241
300
  .stop()
242
- .children()
243
- .stop()
244
- .animate({
245
- opacity: 0
246
- }, settings.duration, module.resetOpacity)
247
- .end()
248
301
  .slideUp(settings.duration , settings.easing, function() {
249
302
  $(this).removeClass(className.active);
250
- $.proxy(module.reset.display, this)();
303
+ module.reset.display.call(this);
251
304
  })
252
305
  ;
253
306
  }
@@ -459,23 +512,24 @@ $.fn.accordion = function(parameters) {
459
512
 
460
513
  $.fn.accordion.settings = {
461
514
 
462
- name : 'Accordion',
463
- namespace : 'accordion',
515
+ name : 'Accordion',
516
+ namespace : 'accordion',
464
517
 
465
- debug : false,
466
- verbose : true,
467
- performance : true,
518
+ debug : false,
519
+ verbose : true,
520
+ performance : true,
468
521
 
469
- exclusive : true,
470
- collapsible : true,
471
- closeNested : false,
522
+ exclusive : true,
523
+ collapsible : true,
524
+ closeNested : false,
525
+ animateChildren : true,
472
526
 
473
- duration : 500,
474
- easing : 'easeInOutQuint',
527
+ duration : 500,
528
+ easing : 'easeOutQuint',
475
529
 
476
- onOpen : function(){},
477
- onClose : function(){},
478
- onChange : function(){},
530
+ onOpen : function(){},
531
+ onClose : function(){},
532
+ onChange : function(){},
479
533
 
480
534
  error: {
481
535
  method : 'The method you called is not defined'
@@ -495,9 +549,8 @@ $.fn.accordion.settings = {
495
549
 
496
550
  // Adds easing
497
551
  $.extend( $.easing, {
498
- easeInOutQuint: function (x, t, b, c, d) {
499
- if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
500
- return c/2*((t-=2)*t*t*t*t + 2) + b;
552
+ easeOutQuint: function (x, t, b, c, d) {
553
+ return c*((t=t/d-1)*t*t*t*t + 1) + b;
501
554
  }
502
555
  });
503
556
 
@@ -198,7 +198,7 @@ $.api = $.fn.api = function(parameters) {
198
198
 
199
199
  is: {
200
200
  disabled: function() {
201
- return ($module.filter(settings.filter).size() > 0);
201
+ return ($module.filter(settings.filter).length > 0);
202
202
  },
203
203
  loading: function() {
204
204
  return (module.request && module.request.state() == 'pending');
@@ -342,7 +342,7 @@ $.api = $.fn.api = function(parameters) {
342
342
  request: {
343
343
  complete: function(response) {
344
344
  module.remove.loading();
345
- $.proxy(settings.onComplete, context)(response, $module);
345
+ settings.onComplete.call(context, response, $module);
346
346
  },
347
347
  done: function(response) {
348
348
  module.debug('API Response Received', response);
@@ -350,19 +350,19 @@ $.api = $.fn.api = function(parameters) {
350
350
  if( $.isFunction(settings.successTest) ) {
351
351
  module.debug('Checking JSON returned success', settings.successTest, response);
352
352
  if( settings.successTest(response) ) {
353
- $.proxy(settings.onSuccess, context)(response, $module);
353
+ settings.onSuccess.call(context, response, $module);
354
354
  }
355
355
  else {
356
356
  module.debug('JSON test specified by user and response failed', response);
357
- $.proxy(settings.onFailure, context)(response, $module);
357
+ settings.onFailure.call(context, response, $module);
358
358
  }
359
359
  }
360
360
  else {
361
- $.proxy(settings.onSuccess, context)(response, $module);
361
+ settings.onSuccess.call(context, response, $module);
362
362
  }
363
363
  }
364
364
  else {
365
- $.proxy(settings.onSuccess, context)(response, $module);
365
+ settings.onSuccess.call(context, response, $module);
366
366
  }
367
367
  },
368
368
  error: function(xhr, status, httpMessage) {
@@ -401,10 +401,10 @@ $.api = $.fn.api = function(parameters) {
401
401
  setTimeout(module.remove.error, settings.errorDuration);
402
402
  }
403
403
  module.debug('API Request error:', errorMessage);
404
- $.proxy(settings.onError, context)(errorMessage, context);
404
+ settings.onError.call(context, errorMessage, $module);
405
405
  }
406
406
  else {
407
- $.proxy(settings.onAbort, context)(errorMessage, context);
407
+ settings.onAbort.call(context, errorMessage, $module);
408
408
  module.debug('Request Aborted (Most likely caused by page change or CORS Policy)', status, httpMessage);
409
409
  }
410
410
  }
@@ -462,7 +462,7 @@ $.api = $.fn.api = function(parameters) {
462
462
  var
463
463
  runSettings
464
464
  ;
465
- runSettings = $.proxy(settings.beforeSend, $module)(settings);
465
+ runSettings = settings.beforeSend.call($module, settings);
466
466
  if(runSettings) {
467
467
  if(runSettings.success !== undefined) {
468
468
  module.debug('Legacy success callback detected', runSettings);
@@ -62,13 +62,13 @@ $.fn.checkbox = function(parameters) {
62
62
  if( module.is.checked() ) {
63
63
  module.set.checked();
64
64
  if(settings.fireOnInit) {
65
- $.proxy(settings.onChecked, $input.get())();
65
+ settings.onChecked.call($input.get());
66
66
  }
67
67
  }
68
68
  else {
69
69
  module.remove.checked();
70
70
  if(settings.fireOnInit) {
71
- $.proxy(settings.onUnchecked, $input.get())();
71
+ settings.onUnchecked.call($input.get());
72
72
  }
73
73
  }
74
74
  module.observeChanges();
@@ -120,7 +120,7 @@ $.fn.checkbox = function(parameters) {
120
120
  ? module[event]
121
121
  : module.toggle
122
122
  ;
123
- if($element.size() > 0) {
123
+ if($element.length > 0) {
124
124
  module.debug('Attaching checkbox events to element', selector, event);
125
125
  $element
126
126
  .on('click' + eventNamespace, event)
@@ -137,6 +137,7 @@ $.fn.checkbox = function(parameters) {
137
137
  key = event.which,
138
138
  keyCode = {
139
139
  enter : 13,
140
+ space : 32,
140
141
  escape : 27
141
142
  }
142
143
  ;
@@ -146,9 +147,9 @@ $.fn.checkbox = function(parameters) {
146
147
  .blur()
147
148
  ;
148
149
  }
149
- if(!event.ctrlKey && key == keyCode.enter) {
150
+ if(!event.ctrlKey && (key == keyCode.enter || key == keyCode.space)) {
150
151
  module.verbose('Enter key pressed, toggling checkbox');
151
- $.proxy(module.toggle, this)();
152
+ module.toggle.call(this);
152
153
  event.preventDefault();
153
154
  }
154
155
  }
@@ -193,7 +194,7 @@ $.fn.checkbox = function(parameters) {
193
194
 
194
195
  create: {
195
196
  label: function() {
196
- if($input.prevAll(selector.label).size() > 0) {
197
+ if($input.prevAll(selector.label).length > 0) {
197
198
  $input.prev(selector.label).detach().insertAfter($input);
198
199
  module.debug('Moving existing label', $label);
199
200
  }
@@ -206,7 +207,7 @@ $.fn.checkbox = function(parameters) {
206
207
 
207
208
  has: {
208
209
  label: function() {
209
- return ($label.size() > 0);
210
+ return ($label.length > 0);
210
211
  }
211
212
  },
212
213
 
@@ -243,14 +244,14 @@ $.fn.checkbox = function(parameters) {
243
244
  module.debug('Enabling checkbox functionality');
244
245
  $module.removeClass(className.disabled);
245
246
  $input.prop('disabled', false);
246
- $.proxy(settings.onEnabled, $input.get())();
247
+ settings.onEnabled.call($input.get());
247
248
  },
248
249
 
249
250
  disable: function() {
250
251
  module.debug('Disabling checkbox functionality');
251
252
  $module.addClass(className.disabled);
252
253
  $input.prop('disabled', 'disabled');
253
- $.proxy(settings.onDisabled, $input.get())();
254
+ settings.onDisabled.call($input.get());
254
255
  },
255
256
 
256
257
  check: function() {
@@ -260,8 +261,8 @@ $.fn.checkbox = function(parameters) {
260
261
  .trigger('change')
261
262
  ;
262
263
  module.set.checked();
263
- $.proxy(settings.onChange, $input.get())();
264
- $.proxy(settings.onChecked, $input.get())();
264
+ settings.onChange.call($input.get());
265
+ settings.onChecked.call($input.get());
265
266
  },
266
267
 
267
268
  uncheck: function() {
@@ -271,8 +272,8 @@ $.fn.checkbox = function(parameters) {
271
272
  .trigger('change')
272
273
  ;
273
274
  module.remove.checked();
274
- $.proxy(settings.onChange, $input.get())();
275
- $.proxy(settings.onUnchecked, $input.get())();
275
+ settings.onChange.call($input.get());
276
+ settings.onUnchecked.call($input.get());
276
277
  },
277
278
 
278
279
  toggle: function(event) {
@@ -129,7 +129,7 @@ $.fn.dimmer = function(parameters) {
129
129
  event: {
130
130
  click: function(event) {
131
131
  module.verbose('Determining if event occured on dimmer', event);
132
- if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
132
+ if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
133
133
  module.hide();
134
134
  event.stopImmediatePropagation();
135
135
  }
@@ -172,8 +172,8 @@ $.fn.dimmer = function(parameters) {
172
172
  module.debug('Showing dimmer', $dimmer, settings);
173
173
  if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
174
174
  module.animate.show(callback);
175
- $.proxy(settings.onShow, element)();
176
- $.proxy(settings.onChange, element)();
175
+ settings.onShow.call(element);
176
+ settings.onChange.call(element);
177
177
  }
178
178
  else {
179
179
  module.debug('Dimmer is already shown or disabled');
@@ -188,8 +188,8 @@ $.fn.dimmer = function(parameters) {
188
188
  if( module.is.dimmed() || module.is.animating() ) {
189
189
  module.debug('Hiding dimmer', $dimmer);
190
190
  module.animate.hide(callback);
191
- $.proxy(settings.onHide, element)();
192
- $.proxy(settings.onChange, element)();
191
+ settings.onHide.call(element);
192
+ settings.onChange.call(element);
193
193
  }
194
194
  else {
195
195
  module.debug('Dimmer is not visible');
@@ -303,10 +303,10 @@ $.fn.dimmer = function(parameters) {
303
303
  has: {
304
304
  dimmer: function() {
305
305
  if(settings.dimmerName) {
306
- return ($module.children(selector.dimmer).filter('.' + settings.dimmerName).size() > 0);
306
+ return ($module.children(selector.dimmer).filter('.' + settings.dimmerName).length > 0);
307
307
  }
308
308
  else {
309
- return ( $module.children(selector.dimmer).size() > 0 );
309
+ return ( $module.children(selector.dimmer).length > 0 );
310
310
  }
311
311
  }
312
312
  },
@@ -473,8 +473,8 @@ $.fn.dimmer = function(parameters) {
473
473
  if(moduleSelector) {
474
474
  title += ' \'' + moduleSelector + '\'';
475
475
  }
476
- if($allModules.size() > 1) {
477
- title += ' ' + '(' + $allModules.size() + ')';
476
+ if($allModules.length > 1) {
477
+ title += ' ' + '(' + $allModules.length + ')';
478
478
  }
479
479
  if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
480
480
  console.groupCollapsed(title);