fomantic-ui-sass 2.9.2 → 2.9.3.1

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.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/Gemfile +2 -0
  4. data/Rakefile +2 -0
  5. data/app/assets/javascripts/semantic-ui/accordion.js +1 -5
  6. data/app/assets/javascripts/semantic-ui/api.js +22 -15
  7. data/app/assets/javascripts/semantic-ui/calendar.js +1 -6
  8. data/app/assets/javascripts/semantic-ui/checkbox.js +4 -6
  9. data/app/assets/javascripts/semantic-ui/dimmer.js +1 -5
  10. data/app/assets/javascripts/semantic-ui/dropdown.js +56 -33
  11. data/app/assets/javascripts/semantic-ui/embed.js +1 -6
  12. data/app/assets/javascripts/semantic-ui/flyout.js +40 -58
  13. data/app/assets/javascripts/semantic-ui/form.js +102 -53
  14. data/app/assets/javascripts/semantic-ui/modal.js +45 -33
  15. data/app/assets/javascripts/semantic-ui/nag.js +17 -9
  16. data/app/assets/javascripts/semantic-ui/popup.js +27 -19
  17. data/app/assets/javascripts/semantic-ui/progress.js +1 -6
  18. data/app/assets/javascripts/semantic-ui/rating.js +1 -5
  19. data/app/assets/javascripts/semantic-ui/search.js +4 -7
  20. data/app/assets/javascripts/semantic-ui/shape.js +1 -5
  21. data/app/assets/javascripts/semantic-ui/sidebar.js +15 -38
  22. data/app/assets/javascripts/semantic-ui/site.js +1 -1
  23. data/app/assets/javascripts/semantic-ui/slider.js +130 -34
  24. data/app/assets/javascripts/semantic-ui/state.js +23 -20
  25. data/app/assets/javascripts/semantic-ui/sticky.js +17 -16
  26. data/app/assets/javascripts/semantic-ui/tab.js +18 -8
  27. data/app/assets/javascripts/semantic-ui/toast.js +17 -9
  28. data/app/assets/javascripts/semantic-ui/transition.js +2 -6
  29. data/app/assets/javascripts/semantic-ui/visibility.js +15 -6
  30. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
  31. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +53 -20
  32. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +107 -107
  33. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +13 -7
  34. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +1 -1
  35. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +65 -1
  36. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +2 -2
  37. data/app/assets/stylesheets/semantic-ui/elements/_container.scss +62 -1
  38. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
  39. data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +697 -249
  40. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +3 -2
  41. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +1 -1
  42. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +62 -62
  43. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
  44. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +3 -27
  45. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +21 -2
  46. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +13 -13
  47. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +282 -282
  48. data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +1 -1
  49. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
  50. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +1 -1
  51. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +161 -34
  52. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +1 -1
  53. data/app/assets/stylesheets/semantic-ui/elements/_text.scss +1 -1
  54. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +1 -1
  55. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +1 -1
  56. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
  57. data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +145 -8
  58. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +50 -6
  59. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +3 -3
  60. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +119 -26
  61. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
  62. data/app/assets/stylesheets/semantic-ui/modules/_flyout.scss +1 -1
  63. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +10 -3
  64. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
  65. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +41 -40
  66. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +1 -1
  67. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +1 -1
  68. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +26 -1
  69. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
  70. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +1 -1
  71. data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +1 -1
  72. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -1
  73. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
  74. data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +6 -1
  75. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
  76. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +1 -1
  77. data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
  78. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +6 -1
  79. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +486 -5
  80. data/app/assets/stylesheets/semantic-ui/views/_item.scss +6 -1
  81. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
  82. data/app/helpers/semantic_breadcrumbs_helper.rb +2 -0
  83. data/app/helpers/semantic_flash_helper.rb +2 -0
  84. data/app/helpers/semantic_icon_helper.rb +2 -0
  85. data/fomantic-ui-sass.gemspec +4 -2
  86. data/gemfiles/rails_5.0.gemfile +2 -0
  87. data/gemfiles/rails_5.1.gemfile +2 -0
  88. data/gemfiles/rails_5.2.gemfile +2 -0
  89. data/lib/fomantic/ui/sass/breadcrumbs.rb +2 -0
  90. data/lib/fomantic/ui/sass/engine.rb +5 -3
  91. data/lib/fomantic/ui/sass/version.rb +4 -2
  92. data/lib/fomantic-ui-sass.rb +2 -6
  93. data/spec/dummy/Rakefile +2 -0
  94. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  95. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  96. data/spec/dummy/bin/bundle +2 -0
  97. data/spec/dummy/bin/rails +2 -0
  98. data/spec/dummy/bin/rake +2 -0
  99. data/spec/dummy/config/application.rb +3 -1
  100. data/spec/dummy/config/boot.rb +2 -0
  101. data/spec/dummy/config/environment.rb +2 -0
  102. data/spec/dummy/config/environments/development.rb +3 -1
  103. data/spec/dummy/config/environments/production.rb +2 -0
  104. data/spec/dummy/config/environments/test.rb +3 -1
  105. data/spec/dummy/config/initializers/backtrace_silencers.rb +2 -0
  106. data/spec/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  107. data/spec/dummy/config/initializers/inflections.rb +2 -0
  108. data/spec/dummy/config/initializers/mime_types.rb +2 -0
  109. data/spec/dummy/config/initializers/secret_token.rb +2 -0
  110. data/spec/dummy/config/initializers/session_store.rb +2 -0
  111. data/spec/dummy/config/initializers/wrap_parameters.rb +2 -0
  112. data/spec/dummy/config/routes.rb +2 -0
  113. data/spec/dummy/config.ru +3 -1
  114. data/spec/helpers/semantic_breadcrumbs_helper_spec.rb +2 -0
  115. data/spec/helpers/semantic_flash_helper_spec.rb +2 -0
  116. data/spec/helpers/semantic_icon_helper_spec.rb +2 -0
  117. data/spec/spec_helper.rb +2 -0
  118. data/tasks/converter.rb +9 -19
  119. data/templates/project/manifest.rb +2 -0
  120. metadata +12 -26
@@ -26,15 +26,25 @@
26
26
  $document = $(document),
27
27
  $body = $('body'),
28
28
 
29
- moduleSelector = $allModules.selector || '',
30
-
31
29
  time = Date.now(),
32
30
  performance = [],
33
31
 
34
32
  query = arguments[0],
35
33
  methodInvoked = typeof query === 'string',
36
34
  queryArguments = [].slice.call(arguments, 1),
35
+ contextCheck = function (context, win) {
36
+ var $context;
37
+ if ([window, document].indexOf(context) >= 0) {
38
+ $context = $body;
39
+ } else {
40
+ $context = $(win.document).find(context);
41
+ if ($context.length === 0) {
42
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
43
+ }
44
+ }
37
45
 
46
+ return $context;
47
+ },
38
48
  returnedValue
39
49
  ;
40
50
 
@@ -54,7 +64,7 @@
54
64
  moduleNamespace = 'module-' + namespace,
55
65
 
56
66
  $module = $(this),
57
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body,
67
+ $context = contextCheck(settings.context, window),
58
68
  isBody = $context[0] === $body[0],
59
69
  $closeIcon = $module.find(selector.closeIcon),
60
70
  $inputs,
@@ -78,6 +88,7 @@
78
88
  tempBodyMargin = '',
79
89
  keepScrollingClass = false,
80
90
  hadScrollbar = false,
91
+ windowRefocused = false,
81
92
 
82
93
  elementEventNamespace,
83
94
  id,
@@ -241,6 +252,7 @@
241
252
  .off(eventNamespace)
242
253
  ;
243
254
  $window.off(elementEventNamespace);
255
+ $context.off(elementEventNamespace);
244
256
  $dimmer.off(elementEventNamespace);
245
257
  $closeIcon.off(elementEventNamespace);
246
258
  if ($inputs) {
@@ -262,11 +274,12 @@
262
274
  return nodes;
263
275
  },
264
276
  shouldRefresh = false,
265
- shouldRefreshInputs = false
277
+ shouldRefreshInputs = false,
278
+ ignoreAutofocus = true
266
279
  ;
267
280
  mutations.every(function (mutation) {
268
281
  if (mutation.type === 'attributes') {
269
- if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').length > 0)) {
282
+ if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').filter(':visible').length > 0)) {
270
283
  shouldRefreshInputs = true;
271
284
  }
272
285
  } else {
@@ -277,6 +290,9 @@
277
290
  $removedInputs = $(collectNodes(mutation.removedNodes)).filter('a[href], [tabindex], :input');
278
291
  if ($addedInputs.length > 0 || $removedInputs.length > 0) {
279
292
  shouldRefreshInputs = true;
293
+ if ($addedInputs.filter(':input').length > 0 || $removedInputs.filter(':input').length > 0) {
294
+ ignoreAutofocus = false;
295
+ }
280
296
  }
281
297
  }
282
298
 
@@ -288,7 +304,7 @@
288
304
  module.refresh();
289
305
  }
290
306
  if (shouldRefreshInputs) {
291
- module.refreshInputs();
307
+ module.refreshInputs(ignoreAutofocus);
292
308
  }
293
309
  });
294
310
  observer.observe(element, {
@@ -316,7 +332,7 @@
316
332
  $allModals = $otherModals.add($module);
317
333
  },
318
334
 
319
- refreshInputs: function () {
335
+ refreshInputs: function (ignoreAutofocus) {
320
336
  if ($inputs) {
321
337
  $inputs
322
338
  .off('keydown' + elementEventNamespace)
@@ -325,8 +341,8 @@
325
341
  $inputs = $module.find('a[href], [tabindex], :input:enabled').filter(':visible').filter(function () {
326
342
  return $(this).closest('.disabled').length === 0;
327
343
  });
328
- if ($inputs.length === 0) {
329
- $inputs = $module;
344
+ if ($inputs.filter(':input').length === 0) {
345
+ $inputs = $module.add($inputs);
330
346
  $module.attr('tabindex', -1);
331
347
  } else {
332
348
  $module.removeAttr('tabindex');
@@ -337,7 +353,7 @@
337
353
  $inputs.last()
338
354
  .on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
339
355
  ;
340
- if (settings.autofocus && $inputs.filter(':focus').length === 0) {
356
+ if (!ignoreAutofocus && settings.autofocus && $inputs.filter(':focus').length === 0) {
341
357
  module.set.autofocus();
342
358
  }
343
359
  },
@@ -375,6 +391,9 @@
375
391
  .on('resize' + elementEventNamespace, module.event.resize)
376
392
  .on('focus' + elementEventNamespace, module.event.focus)
377
393
  ;
394
+ $context
395
+ .on('click' + elementEventNamespace, module.event.click)
396
+ ;
378
397
  },
379
398
  scrollLock: function () {
380
399
  // touch events default to passive, due to changes in chrome to optimize mobile perf
@@ -508,7 +527,7 @@
508
527
  },
509
528
  debounce: function (method, delay) {
510
529
  clearTimeout(module.timer);
511
- module.timer = setTimeout(method, delay);
530
+ module.timer = setTimeout(function () { method(); }, delay);
512
531
  },
513
532
  keyboard: function (event) {
514
533
  var
@@ -532,9 +551,13 @@
532
551
  }
533
552
  },
534
553
  focus: function () {
535
- if ($dimmable.dimmer('is active') && module.is.active() && settings.autofocus) {
554
+ windowRefocused = true;
555
+ },
556
+ click: function (event) {
557
+ if (windowRefocused && document.activeElement !== event.target && $dimmable.dimmer('is active') && module.is.active() && settings.autofocus && $(document.activeElement).closest(selector.modal).length === 0) {
536
558
  requestAnimationFrame(module.set.autofocus);
537
559
  }
560
+ windowRefocused = false;
538
561
  },
539
562
  },
540
563
 
@@ -599,7 +622,7 @@
599
622
  ignoreRepeatedEvents = false;
600
623
  if (settings.allowMultiple) {
601
624
  if (module.others.active()) {
602
- $otherModals.filter('.' + className.active).find(selector.dimmer).addClass('active');
625
+ $otherModals.filter('.' + className.active).find(selector.dimmer).removeClass('out').addClass('transition fade in active');
603
626
  }
604
627
 
605
628
  if (settings.detachable) {
@@ -671,6 +694,8 @@
671
694
  onStart: function () {
672
695
  if (!module.others.active() && !module.others.animating() && !keepDimmed) {
673
696
  module.hideDimmer();
697
+ } else if (settings.allowMultiple) {
698
+ (hideOthersToo ? $allModals : $previousModal).find(selector.dimmer).removeClass('in').addClass('out');
674
699
  }
675
700
  if (settings.keyboardShortcuts && !module.others.active()) {
676
701
  module.remove.keyboardShortcuts();
@@ -683,11 +708,7 @@
683
708
  $previousModal.addClass(className.front);
684
709
  $module.removeClass(className.front);
685
710
 
686
- if (hideOthersToo) {
687
- $allModals.find(selector.dimmer).removeClass('active');
688
- } else {
689
- $previousModal.find(selector.dimmer).removeClass('active');
690
- }
711
+ (hideOthersToo ? $allModals : $previousModal).find(selector.dimmer).removeClass('active');
691
712
  }
692
713
  if (isFunction(settings.onHidden)) {
693
714
  settings.onHidden.call(element);
@@ -1044,20 +1065,14 @@
1044
1065
  var
1045
1066
  $autofocus = $inputs.filter('[autofocus]'),
1046
1067
  $rawInputs = $inputs.filter(':input'),
1047
- $input = $autofocus.length > 0
1048
- ? $autofocus.first()
1068
+ $input = ($autofocus.length > 0
1069
+ ? $autofocus
1049
1070
  : ($rawInputs.length > 0
1050
1071
  ? $rawInputs
1051
- : $inputs.filter(':not(i.close)')
1052
- ).first()
1072
+ : $module)
1073
+ ).first()
1053
1074
  ;
1054
- // check if only the close icon is remaining
1055
- if ($input.length === 0 && $inputs.length > 0) {
1056
- $input = $inputs.first();
1057
- }
1058
- if ($input.length > 0) {
1059
- $input.trigger('focus');
1060
- }
1075
+ $input.trigger('focus');
1061
1076
  },
1062
1077
  bodyMargin: function () {
1063
1078
  var position = module.can.leftBodyScrollbar() ? 'left' : 'right';
@@ -1258,7 +1273,7 @@
1258
1273
  });
1259
1274
  }
1260
1275
  clearTimeout(module.performance.timer);
1261
- module.performance.timer = setTimeout(module.performance.display, 500);
1276
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1262
1277
  },
1263
1278
  display: function () {
1264
1279
  var
@@ -1271,9 +1286,6 @@
1271
1286
  totalTime += data['Execution Time'];
1272
1287
  });
1273
1288
  title += ' ' + totalTime + 'ms';
1274
- if (moduleSelector) {
1275
- title += ' \'' + moduleSelector + '\'';
1276
- }
1277
1289
  if (performance.length > 0) {
1278
1290
  console.groupCollapsed(title);
1279
1291
  if (console.table) {
@@ -22,7 +22,7 @@
22
22
  $.fn.nag = function (parameters) {
23
23
  var
24
24
  $allModules = $(this),
25
- moduleSelector = $allModules.selector || '',
25
+ $body = $('body'),
26
26
 
27
27
  time = Date.now(),
28
28
  performance = [],
@@ -30,6 +30,19 @@
30
30
  query = arguments[0],
31
31
  methodInvoked = typeof query === 'string',
32
32
  queryArguments = [].slice.call(arguments, 1),
33
+ contextCheck = function (context, win) {
34
+ var $context;
35
+ if ([window, document].indexOf(context) >= 0) {
36
+ $context = $(context);
37
+ } else {
38
+ $context = $(win.document).find(context);
39
+ if ($context.length === 0) {
40
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
41
+ }
42
+ }
43
+
44
+ return $context;
45
+ },
33
46
  returnedValue
34
47
  ;
35
48
  $allModules.each(function () {
@@ -47,9 +60,7 @@
47
60
 
48
61
  $module = $(this),
49
62
 
50
- $context = settings.context
51
- ? ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
52
- : $('body'),
63
+ $context = settings.context ? contextCheck(settings.context, window) : $body,
53
64
 
54
65
  element = this,
55
66
  instance = $module.data(moduleNamespace),
@@ -77,7 +88,7 @@
77
88
  }
78
89
 
79
90
  if (settings.displayTime > 0) {
80
- setTimeout(module.hide, settings.displayTime);
91
+ setTimeout(function () { module.hide(); }, settings.displayTime);
81
92
  }
82
93
  module.show();
83
94
  },
@@ -366,7 +377,7 @@
366
377
  });
367
378
  }
368
379
  clearTimeout(module.performance.timer);
369
- module.performance.timer = setTimeout(module.performance.display, 500);
380
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
370
381
  },
371
382
  display: function () {
372
383
  var
@@ -379,9 +390,6 @@
379
390
  totalTime += data['Execution Time'];
380
391
  });
381
392
  title += ' ' + totalTime + 'ms';
382
- if (moduleSelector) {
383
- title += ' \'' + moduleSelector + '\'';
384
- }
385
393
  if (performance.length > 0) {
386
394
  console.groupCollapsed(title);
387
395
  if (console.table) {
@@ -26,8 +26,6 @@
26
26
  $window = $(window),
27
27
  $body = $('body'),
28
28
 
29
- moduleSelector = $allModules.selector || '',
30
-
31
29
  clickEvent = 'ontouchstart' in document.documentElement
32
30
  ? 'touchstart'
33
31
  : 'click',
@@ -38,6 +36,19 @@
38
36
  query = arguments[0],
39
37
  methodInvoked = typeof query === 'string',
40
38
  queryArguments = [].slice.call(arguments, 1),
39
+ contextCheck = function (context, win) {
40
+ var $context;
41
+ if ([window, document].indexOf(context) >= 0) {
42
+ $context = $(context);
43
+ } else {
44
+ $context = $(win.document).find(context);
45
+ if ($context.length === 0) {
46
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
47
+ }
48
+ }
49
+
50
+ return $context;
51
+ },
41
52
 
42
53
  returnedValue
43
54
  ;
@@ -57,12 +68,10 @@
57
68
  moduleNamespace = 'module-' + namespace,
58
69
 
59
70
  $module = $(this),
60
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context),
61
- $scrollContext = [window, document].indexOf(settings.scrollContext) < 0 ? $document.find(settings.scrollContext) : $(settings.scrollContext),
62
- $boundary = [window, document].indexOf(settings.boundary) < 0 ? $document.find(settings.boundary) : $(settings.boundary),
63
- $target = settings.target
64
- ? ([window, document].indexOf(settings.target) < 0 ? $document.find(settings.target) : $(settings.target))
65
- : $module,
71
+ $context = contextCheck(settings.context, window),
72
+ $scrollContext = contextCheck(settings.scrollContext, window),
73
+ $boundary = contextCheck(settings.boundary, window),
74
+ $target = settings.target ? contextCheck(settings.target, window) : $module,
66
75
 
67
76
  $popup,
68
77
  $offsetParent,
@@ -185,7 +194,7 @@
185
194
  ;
186
195
  clearTimeout(module.hideTimer);
187
196
  if (!openedWithTouch || (openedWithTouch && settings.addTouchEvents)) {
188
- module.showTimer = setTimeout(module.show, delay);
197
+ module.showTimer = setTimeout(function () { module.show(); }, delay);
189
198
  }
190
199
  },
191
200
  end: function () {
@@ -195,7 +204,7 @@
195
204
  : settings.delay
196
205
  ;
197
206
  clearTimeout(module.showTimer);
198
- module.hideTimer = setTimeout(module.hide, delay);
207
+ module.hideTimer = setTimeout(function () { module.hide(); }, delay);
199
208
  },
200
209
  touchstart: function (event) {
201
210
  openedWithTouch = true;
@@ -239,9 +248,11 @@
239
248
  // generates popup html from metadata
240
249
  create: function () {
241
250
  var
251
+ targetSibling = $target.next(selector.popup),
252
+ contentFallback = !settings.popup && targetSibling.length === 0 ? $module.attr('title') : false,
242
253
  html = module.get.html(),
243
254
  title = module.get.title(),
244
- content = module.get.content()
255
+ content = module.get.content(contentFallback)
245
256
  ;
246
257
 
247
258
  if (html || content || title) {
@@ -282,10 +293,10 @@
282
293
  if (settings.hoverable) {
283
294
  module.bind.popup();
284
295
  }
285
- } else if ($target.next(selector.popup).length > 0) {
296
+ } else if (targetSibling.length > 0) {
286
297
  module.verbose('Pre-existing popup found');
287
298
  settings.inline = true;
288
- settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
299
+ settings.popup = targetSibling.data(metadata.activator, $module);
289
300
  module.refresh();
290
301
  if (settings.hoverable) {
291
302
  module.bind.popup();
@@ -475,10 +486,10 @@
475
486
 
476
487
  return $module.data(metadata.title) || settings.title;
477
488
  },
478
- content: function () {
489
+ content: function (fallback) {
479
490
  $module.removeData(metadata.content);
480
491
 
481
- return $module.data(metadata.content) || settings.content || $module.attr('title');
492
+ return $module.data(metadata.content) || settings.content || fallback;
482
493
  },
483
494
  variation: function () {
484
495
  $module.removeData(metadata.variation);
@@ -1233,7 +1244,7 @@
1233
1244
  });
1234
1245
  }
1235
1246
  clearTimeout(module.performance.timer);
1236
- module.performance.timer = setTimeout(module.performance.display, 500);
1247
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1237
1248
  },
1238
1249
  display: function () {
1239
1250
  var
@@ -1246,9 +1257,6 @@
1246
1257
  totalTime += data['Execution Time'];
1247
1258
  });
1248
1259
  title += ' ' + totalTime + 'ms';
1249
- if (moduleSelector) {
1250
- title += ' \'' + moduleSelector + '\'';
1251
- }
1252
1260
  if (performance.length > 0) {
1253
1261
  console.groupCollapsed(title);
1254
1262
  if (console.table) {
@@ -23,8 +23,6 @@
23
23
  var
24
24
  $allModules = $(this),
25
25
 
26
- moduleSelector = $allModules.selector || '',
27
-
28
26
  time = Date.now(),
29
27
  performance = [],
30
28
 
@@ -793,7 +791,7 @@
793
791
  });
794
792
  }
795
793
  clearTimeout(module.performance.timer);
796
- module.performance.timer = setTimeout(module.performance.display, 500);
794
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
797
795
  },
798
796
  display: function () {
799
797
  var
@@ -806,9 +804,6 @@
806
804
  totalTime += data['Execution Time'];
807
805
  });
808
806
  title += ' ' + totalTime + 'ms';
809
- if (moduleSelector) {
810
- title += ' \'' + moduleSelector + '\'';
811
- }
812
807
  if (performance.length > 0) {
813
808
  console.groupCollapsed(title);
814
809
  if (console.table) {
@@ -22,7 +22,6 @@
22
22
  $.fn.rating = function (parameters) {
23
23
  var
24
24
  $allModules = $(this),
25
- moduleSelector = $allModules.selector || '',
26
25
 
27
26
  time = Date.now(),
28
27
  performance = [],
@@ -369,7 +368,7 @@
369
368
  });
370
369
  }
371
370
  clearTimeout(module.performance.timer);
372
- module.performance.timer = setTimeout(module.performance.display, 500);
371
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
373
372
  },
374
373
  display: function () {
375
374
  var
@@ -382,9 +381,6 @@
382
381
  totalTime += data['Execution Time'];
383
382
  });
384
383
  title += ' ' + totalTime + 'ms';
385
- if (moduleSelector) {
386
- title += ' \'' + moduleSelector + '\'';
387
- }
388
384
  if ($allModules.length > 1) {
389
385
  title += ' (' + $allModules.length + ')';
390
386
  }
@@ -22,7 +22,6 @@
22
22
  $.fn.search = function (parameters) {
23
23
  var
24
24
  $allModules = $(this),
25
- moduleSelector = $allModules.selector || '',
26
25
 
27
26
  time = Date.now(),
28
27
  performance = [],
@@ -170,7 +169,7 @@
170
169
  callback = function () {
171
170
  module.cancel.query();
172
171
  module.remove.focus();
173
- module.timer = setTimeout(module.hideResults, settings.hideDelay);
172
+ module.timer = setTimeout(function () { module.hideResults(); }, settings.hideDelay);
174
173
  }
175
174
  ;
176
175
  if (pageLostFocus) {
@@ -562,6 +561,7 @@
562
561
  if (cache) {
563
562
  module.debug('Reading result from cache', searchTerm);
564
563
  module.save.results(cache.results);
564
+ settings.onResults.call(element, cache.results, true);
565
565
  module.addResults(cache.html);
566
566
  module.inject.id(cache.results);
567
567
  callback();
@@ -1171,7 +1171,7 @@
1171
1171
  });
1172
1172
  }
1173
1173
  clearTimeout(module.performance.timer);
1174
- module.performance.timer = setTimeout(module.performance.display, 500);
1174
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1175
1175
  },
1176
1176
  display: function () {
1177
1177
  var
@@ -1184,9 +1184,6 @@
1184
1184
  totalTime += data['Execution Time'];
1185
1185
  });
1186
1186
  title += ' ' + totalTime + 'ms';
1187
- if (moduleSelector) {
1188
- title += ' \'' + moduleSelector + '\'';
1189
- }
1190
1187
  if ($allModules.length > 1) {
1191
1188
  title += ' (' + $allModules.length + ')';
1192
1189
  }
@@ -1349,7 +1346,7 @@
1349
1346
  onResultsAdd: false,
1350
1347
 
1351
1348
  onSearchQuery: function (query) {},
1352
- onResults: function (response) {},
1349
+ onResults: function (response, fromCache) {},
1353
1350
 
1354
1351
  onResultsOpen: function () {},
1355
1352
  onResultsClose: function () {},
@@ -35,7 +35,6 @@
35
35
 
36
36
  $allModules.each(function () {
37
37
  var
38
- moduleSelector = $allModules.selector || '',
39
38
  settings = $.isPlainObject(parameters)
40
39
  ? $.extend(true, {}, $.fn.shape.settings, parameters)
41
40
  : $.extend({}, $.fn.shape.settings),
@@ -624,7 +623,7 @@
624
623
  });
625
624
  }
626
625
  clearTimeout(module.performance.timer);
627
- module.performance.timer = setTimeout(module.performance.display, 500);
626
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
628
627
  },
629
628
  display: function () {
630
629
  var
@@ -637,9 +636,6 @@
637
636
  totalTime += data['Execution Time'];
638
637
  });
639
638
  title += ' ' + totalTime + 'ms';
640
- if (moduleSelector) {
641
- title += ' \'' + moduleSelector + '\'';
642
- }
643
639
  if ($allModules.length > 1) {
644
640
  title += ' (' + $allModules.length + ')';
645
641
  }