fomantic-ui 2.9.3-beta.1 → 2.9.3-beta.11

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 (246) hide show
  1. package/.all-contributorsrc +9 -0
  2. package/CONTRIBUTORS.md +102 -99
  3. package/dist/components/accordion.css +1 -1
  4. package/dist/components/accordion.js +1 -5
  5. package/dist/components/accordion.min.css +1 -1
  6. package/dist/components/accordion.min.js +2 -2
  7. package/dist/components/ad.css +1 -1
  8. package/dist/components/ad.min.css +1 -1
  9. package/dist/components/api.js +14 -8
  10. package/dist/components/api.min.js +2 -2
  11. package/dist/components/breadcrumb.css +1 -1
  12. package/dist/components/breadcrumb.min.css +1 -1
  13. package/dist/components/button.css +1 -1
  14. package/dist/components/button.min.css +1 -1
  15. package/dist/components/calendar.css +6 -6
  16. package/dist/components/calendar.js +1 -6
  17. package/dist/components/calendar.min.css +2 -2
  18. package/dist/components/calendar.min.js +2 -2
  19. package/dist/components/card.css +1 -1
  20. package/dist/components/card.min.css +1 -1
  21. package/dist/components/checkbox.css +1 -1
  22. package/dist/components/checkbox.js +1 -5
  23. package/dist/components/checkbox.min.css +1 -1
  24. package/dist/components/checkbox.min.js +2 -2
  25. package/dist/components/comment.css +1 -1
  26. package/dist/components/comment.min.css +1 -1
  27. package/dist/components/container.css +1 -1
  28. package/dist/components/container.min.css +1 -1
  29. package/dist/components/dimmer.css +1 -1
  30. package/dist/components/dimmer.js +1 -5
  31. package/dist/components/dimmer.min.css +1 -1
  32. package/dist/components/dimmer.min.js +2 -2
  33. package/dist/components/divider.css +1 -1
  34. package/dist/components/divider.min.css +1 -1
  35. package/dist/components/dropdown.css +19 -2
  36. package/dist/components/dropdown.js +29 -14
  37. package/dist/components/dropdown.min.css +2 -2
  38. package/dist/components/dropdown.min.js +2 -2
  39. package/dist/components/embed.css +1 -1
  40. package/dist/components/embed.js +1 -6
  41. package/dist/components/embed.min.css +1 -1
  42. package/dist/components/embed.min.js +2 -2
  43. package/dist/components/emoji.css +1 -1
  44. package/dist/components/emoji.min.css +1 -1
  45. package/dist/components/feed.css +1 -1
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +1 -1
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +1 -1
  50. package/dist/components/flyout.js +40 -27
  51. package/dist/components/flyout.min.css +1 -1
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +52 -5
  54. package/dist/components/form.js +32 -24
  55. package/dist/components/form.min.css +2 -2
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +1 -1
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +1 -1
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +1 -1
  62. package/dist/components/icon.min.css +1 -1
  63. package/dist/components/image.css +1 -1
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +1 -1
  66. package/dist/components/input.min.css +1 -1
  67. package/dist/components/item.css +1 -1
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +21 -2
  70. package/dist/components/label.min.css +2 -2
  71. package/dist/components/list.css +1 -1
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +1 -1
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +9 -3
  76. package/dist/components/menu.min.css +2 -2
  77. package/dist/components/message.css +1 -1
  78. package/dist/components/message.min.css +1 -1
  79. package/dist/components/modal.css +6 -3
  80. package/dist/components/modal.js +44 -32
  81. package/dist/components/modal.min.css +2 -2
  82. package/dist/components/modal.min.js +2 -2
  83. package/dist/components/nag.css +1 -1
  84. package/dist/components/nag.js +16 -8
  85. package/dist/components/nag.min.css +1 -1
  86. package/dist/components/nag.min.js +2 -2
  87. package/dist/components/placeholder.css +1 -1
  88. package/dist/components/placeholder.min.css +1 -1
  89. package/dist/components/popup.css +41 -40
  90. package/dist/components/popup.js +25 -17
  91. package/dist/components/popup.min.css +2 -2
  92. package/dist/components/popup.min.js +2 -2
  93. package/dist/components/progress.css +1 -1
  94. package/dist/components/progress.js +1 -6
  95. package/dist/components/progress.min.css +1 -1
  96. package/dist/components/progress.min.js +2 -2
  97. package/dist/components/rail.css +1 -1
  98. package/dist/components/rail.min.css +1 -1
  99. package/dist/components/rating.css +1 -1
  100. package/dist/components/rating.js +1 -5
  101. package/dist/components/rating.min.css +1 -1
  102. package/dist/components/rating.min.js +2 -2
  103. package/dist/components/reset.css +1 -1
  104. package/dist/components/reset.min.css +1 -1
  105. package/dist/components/reveal.css +1 -1
  106. package/dist/components/reveal.min.css +1 -1
  107. package/dist/components/search.css +1 -1
  108. package/dist/components/search.js +3 -6
  109. package/dist/components/search.min.css +1 -1
  110. package/dist/components/search.min.js +2 -2
  111. package/dist/components/segment.css +29 -6
  112. package/dist/components/segment.min.css +2 -2
  113. package/dist/components/shape.css +1 -1
  114. package/dist/components/shape.js +1 -5
  115. package/dist/components/shape.min.css +1 -1
  116. package/dist/components/shape.min.js +2 -2
  117. package/dist/components/sidebar.css +1 -1
  118. package/dist/components/sidebar.js +15 -8
  119. package/dist/components/sidebar.min.css +1 -1
  120. package/dist/components/sidebar.min.js +2 -2
  121. package/dist/components/site.css +1 -1
  122. package/dist/components/site.js +1 -1
  123. package/dist/components/site.min.css +1 -1
  124. package/dist/components/site.min.js +1 -1
  125. package/dist/components/slider.css +1 -1
  126. package/dist/components/slider.js +122 -31
  127. package/dist/components/slider.min.css +1 -1
  128. package/dist/components/slider.min.js +2 -2
  129. package/dist/components/state.js +23 -20
  130. package/dist/components/state.min.js +2 -2
  131. package/dist/components/statistic.css +1 -1
  132. package/dist/components/statistic.min.css +1 -1
  133. package/dist/components/step.css +1 -1
  134. package/dist/components/step.min.css +1 -1
  135. package/dist/components/sticky.css +1 -1
  136. package/dist/components/sticky.js +17 -16
  137. package/dist/components/sticky.min.css +1 -1
  138. package/dist/components/sticky.min.js +2 -2
  139. package/dist/components/tab.css +1 -1
  140. package/dist/components/tab.js +14 -6
  141. package/dist/components/tab.min.css +1 -1
  142. package/dist/components/tab.min.js +2 -2
  143. package/dist/components/table.css +1 -1
  144. package/dist/components/table.min.css +1 -1
  145. package/dist/components/text.css +1 -1
  146. package/dist/components/text.min.css +1 -1
  147. package/dist/components/toast.css +6 -1
  148. package/dist/components/toast.js +17 -9
  149. package/dist/components/toast.min.css +2 -2
  150. package/dist/components/toast.min.js +2 -2
  151. package/dist/components/transition.css +1 -1
  152. package/dist/components/transition.js +1 -5
  153. package/dist/components/transition.min.css +1 -1
  154. package/dist/components/transition.min.js +2 -2
  155. package/dist/components/visibility.js +15 -6
  156. package/dist/components/visibility.min.js +2 -2
  157. package/dist/semantic.css +264 -114
  158. package/dist/semantic.js +437 -282
  159. package/dist/semantic.min.css +2 -2
  160. package/dist/semantic.min.js +2 -2
  161. package/package.json +1 -1
  162. package/src/definitions/behaviors/api.js +13 -7
  163. package/src/definitions/behaviors/form.js +31 -23
  164. package/src/definitions/behaviors/state.js +22 -19
  165. package/src/definitions/behaviors/visibility.js +14 -5
  166. package/src/definitions/collections/breadcrumb.less +2 -1
  167. package/src/definitions/collections/form.less +26 -5
  168. package/src/definitions/collections/grid.less +2 -1
  169. package/src/definitions/collections/menu.less +29 -21
  170. package/src/definitions/collections/message.less +2 -1
  171. package/src/definitions/collections/table.less +2 -1
  172. package/src/definitions/elements/button.less +3 -1
  173. package/src/definitions/elements/container.less +2 -1
  174. package/src/definitions/elements/divider.less +2 -1
  175. package/src/definitions/elements/emoji.less +2 -1
  176. package/src/definitions/elements/flag.less +2 -1
  177. package/src/definitions/elements/header.less +2 -1
  178. package/src/definitions/elements/icon.less +2 -1
  179. package/src/definitions/elements/image.less +2 -1
  180. package/src/definitions/elements/input.less +2 -1
  181. package/src/definitions/elements/label.less +23 -2
  182. package/src/definitions/elements/list.less +2 -1
  183. package/src/definitions/elements/loader.less +2 -1
  184. package/src/definitions/elements/placeholder.less +2 -1
  185. package/src/definitions/elements/rail.less +2 -1
  186. package/src/definitions/elements/reveal.less +2 -1
  187. package/src/definitions/elements/segment.less +37 -11
  188. package/src/definitions/elements/step.less +2 -1
  189. package/src/definitions/elements/text.less +2 -1
  190. package/src/definitions/globals/reset.less +2 -1
  191. package/src/definitions/globals/site.less +2 -1
  192. package/src/definitions/modules/accordion.js +0 -4
  193. package/src/definitions/modules/accordion.less +2 -1
  194. package/src/definitions/modules/calendar.js +0 -5
  195. package/src/definitions/modules/calendar.less +3 -2
  196. package/src/definitions/modules/checkbox.js +0 -4
  197. package/src/definitions/modules/checkbox.less +2 -1
  198. package/src/definitions/modules/dimmer.js +0 -4
  199. package/src/definitions/modules/dimmer.less +2 -1
  200. package/src/definitions/modules/dropdown.js +28 -13
  201. package/src/definitions/modules/dropdown.less +22 -2
  202. package/src/definitions/modules/embed.js +0 -5
  203. package/src/definitions/modules/embed.less +2 -1
  204. package/src/definitions/modules/flyout.js +39 -26
  205. package/src/definitions/modules/flyout.less +2 -1
  206. package/src/definitions/modules/modal.js +43 -31
  207. package/src/definitions/modules/modal.less +7 -3
  208. package/src/definitions/modules/nag.js +15 -7
  209. package/src/definitions/modules/nag.less +3 -1
  210. package/src/definitions/modules/popup.js +24 -16
  211. package/src/definitions/modules/popup.less +42 -39
  212. package/src/definitions/modules/progress.js +0 -5
  213. package/src/definitions/modules/progress.less +2 -1
  214. package/src/definitions/modules/rating.js +0 -4
  215. package/src/definitions/modules/rating.less +2 -1
  216. package/src/definitions/modules/search.js +2 -5
  217. package/src/definitions/modules/search.less +2 -1
  218. package/src/definitions/modules/shape.js +0 -4
  219. package/src/definitions/modules/shape.less +2 -1
  220. package/src/definitions/modules/sidebar.js +14 -7
  221. package/src/definitions/modules/sidebar.less +2 -1
  222. package/src/definitions/modules/slider.js +121 -30
  223. package/src/definitions/modules/slider.less +2 -1
  224. package/src/definitions/modules/sticky.js +16 -15
  225. package/src/definitions/modules/sticky.less +2 -1
  226. package/src/definitions/modules/tab.js +13 -5
  227. package/src/definitions/modules/tab.less +2 -1
  228. package/src/definitions/modules/toast.js +16 -8
  229. package/src/definitions/modules/toast.less +9 -1
  230. package/src/definitions/modules/transition.js +0 -4
  231. package/src/definitions/modules/transition.less +2 -1
  232. package/src/definitions/views/ad.less +2 -1
  233. package/src/definitions/views/card.less +2 -1
  234. package/src/definitions/views/comment.less +2 -1
  235. package/src/definitions/views/feed.less +2 -1
  236. package/src/definitions/views/item.less +2 -1
  237. package/src/definitions/views/statistic.less +2 -1
  238. package/src/overrides.less +7 -0
  239. package/src/theme.less +7 -6
  240. package/src/themes/default/elements/label.variables +5 -0
  241. package/src/themes/default/elements/segment.variables +4 -0
  242. package/src/themes/default/globals/site.variables +3 -0
  243. package/src/themes/default/modules/dropdown.variables +3 -0
  244. package/src/themes/default/modules/modal.variables +1 -0
  245. package/src/themes/default/modules/popup.variables +3 -1
  246. package/src/themes/default/modules/toast.variables +1 -0
package/dist/semantic.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.3-beta.1+d8dd970
2
+ * # Fomantic UI - 2.9.3-beta.11+980ea5e
3
3
  * https://github.com/fomantic/Fomantic-UI
4
4
  * https://fomantic-ui.com/
5
5
  *
@@ -9,7 +9,7 @@
9
9
  *
10
10
  */
11
11
  /*!
12
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Site
12
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Site
13
13
  * https://github.com/fomantic/Fomantic-UI/
14
14
  *
15
15
  *
@@ -463,7 +463,7 @@
463
463
  })(jQuery, window, document);
464
464
 
465
465
  /*!
466
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Form Validation
466
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Form Validation
467
467
  * https://github.com/fomantic/Fomantic-UI/
468
468
  *
469
469
  *
@@ -486,7 +486,7 @@
486
486
  $.fn.form = function (parameters) {
487
487
  var
488
488
  $allModules = $(this),
489
- moduleSelector = $allModules.selector || '',
489
+ $window = $(window),
490
490
 
491
491
  time = Date.now(),
492
492
  performance = [],
@@ -525,6 +525,8 @@
525
525
  namespace,
526
526
  moduleNamespace,
527
527
  eventNamespace,
528
+ attachEventsSelector,
529
+ attachEventsAction,
528
530
 
529
531
  submitting = false,
530
532
  dirty = false,
@@ -607,6 +609,9 @@
607
609
  module[action]();
608
610
  event.preventDefault();
609
611
  });
612
+
613
+ attachEventsSelector = selector;
614
+ attachEventsAction = action;
610
615
  },
611
616
 
612
617
  bindEvents: function () {
@@ -632,10 +637,14 @@
632
637
 
633
638
  // Dirty events
634
639
  if (settings.preventLeaving) {
635
- $(window).on('beforeunload' + eventNamespace, module.event.beforeUnload);
640
+ $window.on('beforeunload' + eventNamespace, module.event.beforeUnload);
636
641
  }
637
642
 
638
- $field.on('change click keyup keydown blur', function (e) {
643
+ $field.on('change' + eventNamespace
644
+ + ' click' + eventNamespace
645
+ + ' keyup' + eventNamespace
646
+ + ' keydown' + eventNamespace
647
+ + ' blur' + eventNamespace, function (e) {
639
648
  module.determine.isDirty();
640
649
  });
641
650
 
@@ -646,6 +655,9 @@
646
655
  $module.on('clean' + eventNamespace, function (e) {
647
656
  settings.onClean.call();
648
657
  });
658
+ if (attachEventsSelector) {
659
+ module.attachEvents(attachEventsSelector, attachEventsAction);
660
+ }
649
661
  },
650
662
 
651
663
  clear: function () {
@@ -694,6 +706,7 @@
694
706
  isCheckbox = $field.is(selector.checkbox),
695
707
  isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
696
708
  isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
709
+ isFile = $field.is(selector.file),
697
710
  isErrored = $fieldGroup.hasClass(className.error)
698
711
  ;
699
712
  if (defaultValue === undefined) {
@@ -714,7 +727,7 @@
714
727
  $calendar.calendar('set date', defaultValue);
715
728
  } else {
716
729
  module.verbose('Resetting field value', $field, defaultValue);
717
- $field.val(defaultValue);
730
+ $field.val(isFile ? '' : defaultValue);
718
731
  }
719
732
  });
720
733
  module.remove.states();
@@ -850,6 +863,13 @@
850
863
  $module.off(eventNamespace);
851
864
  $field.off(eventNamespace);
852
865
  $submit.off(eventNamespace);
866
+ if (settings.preventLeaving) {
867
+ $window.off(eventNamespace);
868
+ }
869
+ if (attachEventsSelector) {
870
+ $(attachEventsSelector).off(eventNamespace);
871
+ attachEventsSelector = undefined;
872
+ }
853
873
  },
854
874
 
855
875
  event: {
@@ -951,18 +971,7 @@
951
971
  return rule.type;
952
972
  },
953
973
  changeEvent: function (type, $input) {
954
- if (type === 'checkbox' || type === 'radio' || type === 'hidden' || $input.is('select')) {
955
- return 'change';
956
- }
957
-
958
- return module.get.inputEvent();
959
- },
960
- inputEvent: function () {
961
- return document.createElement('input').oninput !== undefined
962
- ? 'input'
963
- : (document.createElement('input').onpropertychange !== undefined
964
- ? 'propertychange'
965
- : 'keyup');
974
+ return ['file', 'checkbox', 'radio', 'hidden'].indexOf(type) >= 0 || $input.is('select') ? 'change' : 'input';
966
975
  },
967
976
  fieldsFromShorthand: function (fields) {
968
977
  var
@@ -1098,7 +1107,7 @@
1098
1107
  var $field = typeof identifier === 'string'
1099
1108
  ? module.get.field(identifier)
1100
1109
  : identifier,
1101
- $label = $field.closest(selector.group).find('label').eq(0)
1110
+ $label = $field.closest(selector.group).find('label:not(:empty)').eq(0)
1102
1111
  ;
1103
1112
 
1104
1113
  return $label.length === 1
@@ -1567,6 +1576,7 @@
1567
1576
  $field = module.get.field(key),
1568
1577
  $element = $field.parent(),
1569
1578
  $calendar = $field.closest(selector.uiCalendar),
1579
+ isFile = $field.is(selector.file),
1570
1580
  isMultiple = Array.isArray(value),
1571
1581
  isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox'),
1572
1582
  isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
@@ -1609,7 +1619,7 @@
1609
1619
  $calendar.calendar('set date', value);
1610
1620
  } else {
1611
1621
  module.verbose('Setting field value', value, $field);
1612
- $field.val(value);
1622
+ $field.val(isFile ? '' : value);
1613
1623
  }
1614
1624
  }
1615
1625
  });
@@ -1937,9 +1947,6 @@
1937
1947
  totalTime += data['Execution Time'];
1938
1948
  });
1939
1949
  title += ' ' + totalTime + 'ms';
1940
- if (moduleSelector) {
1941
- title += ' \'' + moduleSelector + '\'';
1942
- }
1943
1950
  if ($allModules.length > 1) {
1944
1951
  title += ' (' + $allModules.length + ')';
1945
1952
  }
@@ -2115,9 +2122,10 @@
2115
2122
  selector: {
2116
2123
  checkbox: 'input[type="checkbox"], input[type="radio"]',
2117
2124
  clear: '.clear',
2118
- field: 'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
2125
+ field: 'input:not(.search):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
2126
+ file: 'input[type="file"]',
2119
2127
  group: '.field',
2120
- input: 'input:not([type="file"])',
2128
+ input: 'input',
2121
2129
  message: '.error.message',
2122
2130
  prompt: '.prompt.label',
2123
2131
  radio: 'input[type="radio"]',
@@ -2569,7 +2577,7 @@
2569
2577
  })(jQuery, window, document);
2570
2578
 
2571
2579
  /*!
2572
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Accordion
2580
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Accordion
2573
2581
  * https://github.com/fomantic/Fomantic-UI/
2574
2582
  *
2575
2583
  *
@@ -2615,7 +2623,6 @@
2615
2623
 
2616
2624
  eventNamespace = '.' + namespace,
2617
2625
  moduleNamespace = 'module-' + namespace,
2618
- moduleSelector = $allModules.selector || '',
2619
2626
 
2620
2627
  $module = $(this),
2621
2628
  $title = $module.find(selector.title),
@@ -3022,9 +3029,6 @@
3022
3029
  totalTime += data['Execution Time'];
3023
3030
  });
3024
3031
  title += ' ' + totalTime + 'ms';
3025
- if (moduleSelector) {
3026
- title += ' \'' + moduleSelector + '\'';
3027
- }
3028
3032
  if (performance.length > 0) {
3029
3033
  console.groupCollapsed(title);
3030
3034
  if (console.table) {
@@ -3167,7 +3171,7 @@
3167
3171
  })(jQuery, window, document);
3168
3172
 
3169
3173
  /*!
3170
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Calendar
3174
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Calendar
3171
3175
  * https://github.com/fomantic/Fomantic-UI/
3172
3176
  *
3173
3177
  *
@@ -3192,8 +3196,6 @@
3192
3196
  $allModules = $(this),
3193
3197
  $document = $(document),
3194
3198
 
3195
- moduleSelector = $allModules.selector || '',
3196
-
3197
3199
  time = Date.now(),
3198
3200
  performance = [],
3199
3201
 
@@ -4662,9 +4664,6 @@
4662
4664
  totalTime += data['Execution Time'];
4663
4665
  });
4664
4666
  title += ' ' + totalTime + 'ms';
4665
- if (moduleSelector) {
4666
- title += ' \'' + moduleSelector + '\'';
4667
- }
4668
4667
  if (performance.length > 0) {
4669
4668
  console.groupCollapsed(title);
4670
4669
  if (console.table) {
@@ -5183,7 +5182,7 @@
5183
5182
  })(jQuery, window, document);
5184
5183
 
5185
5184
  /*!
5186
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Checkbox
5185
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Checkbox
5187
5186
  * https://github.com/fomantic/Fomantic-UI/
5188
5187
  *
5189
5188
  *
@@ -5206,7 +5205,6 @@
5206
5205
  $.fn.checkbox = function (parameters) {
5207
5206
  var
5208
5207
  $allModules = $(this),
5209
- moduleSelector = $allModules.selector || '',
5210
5208
 
5211
5209
  time = Date.now(),
5212
5210
  performance = [],
@@ -5921,9 +5919,6 @@
5921
5919
  totalTime += data['Execution Time'];
5922
5920
  });
5923
5921
  title += ' ' + totalTime + 'ms';
5924
- if (moduleSelector) {
5925
- title += ' \'' + moduleSelector + '\'';
5926
- }
5927
5922
  if (performance.length > 0) {
5928
5923
  console.groupCollapsed(title);
5929
5924
  if (console.table) {
@@ -6068,7 +6063,7 @@
6068
6063
  })(jQuery, window, document);
6069
6064
 
6070
6065
  /*!
6071
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Dimmer
6066
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Dimmer
6072
6067
  * https://github.com/fomantic/Fomantic-UI/
6073
6068
  *
6074
6069
  *
@@ -6115,7 +6110,6 @@
6115
6110
 
6116
6111
  eventNamespace = '.' + namespace,
6117
6112
  moduleNamespace = 'module-' + namespace,
6118
- moduleSelector = $allModules.selector || '',
6119
6113
 
6120
6114
  clickEvent = 'ontouchstart' in document.documentElement
6121
6115
  ? 'touchstart'
@@ -6611,9 +6605,6 @@
6611
6605
  totalTime += data['Execution Time'];
6612
6606
  });
6613
6607
  title += ' ' + totalTime + 'ms';
6614
- if (moduleSelector) {
6615
- title += ' \'' + moduleSelector + '\'';
6616
- }
6617
6608
  if ($allModules.length > 1) {
6618
6609
  title += ' (' + $allModules.length + ')';
6619
6610
  }
@@ -6803,7 +6794,7 @@
6803
6794
  })(jQuery, window, document);
6804
6795
 
6805
6796
  /*!
6806
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Dropdown
6797
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Dropdown
6807
6798
  * https://github.com/fomantic/Fomantic-UI/
6808
6799
  *
6809
6800
  *
@@ -6828,14 +6819,25 @@
6828
6819
  $allModules = $(this),
6829
6820
  $document = $(document),
6830
6821
 
6831
- moduleSelector = $allModules.selector || '',
6832
-
6833
6822
  time = Date.now(),
6834
6823
  performance = [],
6835
6824
 
6836
6825
  query = arguments[0],
6837
6826
  methodInvoked = typeof query === 'string',
6838
6827
  queryArguments = [].slice.call(arguments, 1),
6828
+ contextCheck = function (context, win) {
6829
+ var $context;
6830
+ if ([window, document].indexOf(context) >= 0) {
6831
+ $context = $(context);
6832
+ } else {
6833
+ $context = $(win.document).find(context);
6834
+ if ($context.length === 0) {
6835
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
6836
+ }
6837
+ }
6838
+
6839
+ return $context;
6840
+ },
6839
6841
  returnedValue
6840
6842
  ;
6841
6843
 
@@ -6860,7 +6862,7 @@
6860
6862
  moduleNamespace = 'module-' + namespace,
6861
6863
 
6862
6864
  $module = $(this),
6863
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context),
6865
+ $context = contextCheck(settings.context, window),
6864
6866
  $text = $module.find(selector.text),
6865
6867
  $search = $module.find(selector.search),
6866
6868
  $sizer = $module.find(selector.sizer),
@@ -6895,7 +6897,8 @@
6895
6897
  selectObserver,
6896
6898
  menuObserver,
6897
6899
  classObserver,
6898
- module
6900
+ module,
6901
+ tempDisableApiCache = false
6899
6902
  ;
6900
6903
 
6901
6904
  module = {
@@ -7662,11 +7665,12 @@
7662
7665
  if (!$module.api('get request')) {
7663
7666
  module.setup.api();
7664
7667
  }
7665
- apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks);
7668
+ apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks, tempDisableApiCache ? { cache: false } : {});
7666
7669
  $module
7667
7670
  .api('setting', apiSettings)
7668
7671
  .api('query')
7669
7672
  ;
7673
+ tempDisableApiCache = false;
7670
7674
  },
7671
7675
 
7672
7676
  filterItems: function (query) {
@@ -8869,7 +8873,7 @@
8869
8873
  values.push({
8870
8874
  name: name,
8871
8875
  value: value,
8872
- text: text,
8876
+ text: module.escape.htmlEntities(text, true),
8873
8877
  disabled: disabled,
8874
8878
  });
8875
8879
  }
@@ -9192,6 +9196,11 @@
9192
9196
  module.set.value('', null, null, preventChangeTrigger);
9193
9197
  },
9194
9198
 
9199
+ clearCache: function () {
9200
+ module.debug('Clearing API cache once');
9201
+ tempDisableApiCache = true;
9202
+ },
9203
+
9195
9204
  scrollPage: function (direction, $selectedItem) {
9196
9205
  var
9197
9206
  $currentItem = $selectedItem || module.get.selectedItem(),
@@ -10242,7 +10251,7 @@
10242
10251
  return settings.apiSettings && module.can.useAPI();
10243
10252
  },
10244
10253
  noApiCache: function () {
10245
- return settings.apiSettings && !settings.apiSettings.cache;
10254
+ return tempDisableApiCache || (settings.apiSettings && !settings.apiSettings.cache);
10246
10255
  },
10247
10256
  single: function () {
10248
10257
  return !module.is.multiple();
@@ -10252,7 +10261,7 @@
10252
10261
  selectChanged = false
10253
10262
  ;
10254
10263
  $.each(mutations, function (index, mutation) {
10255
- if ($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
10264
+ if ($(mutation.target).is('option, optgroup') || $(mutation.addedNodes).is('select') || ($(mutation.target).is('select') && mutation.type !== 'attributes')) {
10256
10265
  selectChanged = true;
10257
10266
 
10258
10267
  return false;
@@ -10561,7 +10570,7 @@
10561
10570
 
10562
10571
  return text.replace(regExp.escape, '\\$&');
10563
10572
  },
10564
- htmlEntities: function (string) {
10573
+ htmlEntities: function (string, forceAmpersand) {
10565
10574
  var
10566
10575
  badChars = /["'<>`]/g,
10567
10576
  shouldEscape = /["&'<>`]/,
@@ -10577,7 +10586,7 @@
10577
10586
  }
10578
10587
  ;
10579
10588
  if (shouldEscape.test(string)) {
10580
- string = string.replace(/&(?![\d#a-z]{1,12};)/gi, '&amp;');
10589
+ string = string.replace(forceAmpersand ? /&/g : /&(?![\d#a-z]{1,12};)/gi, '&amp;');
10581
10590
 
10582
10591
  return string.replace(badChars, escapedChar);
10583
10592
  }
@@ -10668,9 +10677,6 @@
10668
10677
  totalTime += data['Execution Time'];
10669
10678
  });
10670
10679
  title += ' ' + totalTime + 'ms';
10671
- if (moduleSelector) {
10672
- title += ' \'' + moduleSelector + '\'';
10673
- }
10674
10680
  if (performance.length > 0) {
10675
10681
  console.groupCollapsed(title);
10676
10682
  if (console.table) {
@@ -11138,7 +11144,7 @@
11138
11144
  })(jQuery, window, document);
11139
11145
 
11140
11146
  /*!
11141
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Embed
11147
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Embed
11142
11148
  * https://github.com/fomantic/Fomantic-UI/
11143
11149
  *
11144
11150
  *
@@ -11162,8 +11168,6 @@
11162
11168
  var
11163
11169
  $allModules = $(this),
11164
11170
 
11165
- moduleSelector = $allModules.selector || '',
11166
-
11167
11171
  time = Date.now(),
11168
11172
  performance = [],
11169
11173
 
@@ -11594,9 +11598,6 @@
11594
11598
  totalTime += data['Execution Time'];
11595
11599
  });
11596
11600
  title += ' ' + totalTime + 'ms';
11597
- if (moduleSelector) {
11598
- title += ' \'' + moduleSelector + '\'';
11599
- }
11600
11601
  if ($allModules.length > 1) {
11601
11602
  title += ' (' + $allModules.length + ')';
11602
11603
  }
@@ -11822,7 +11823,7 @@
11822
11823
  })(jQuery, window, document);
11823
11824
 
11824
11825
  /*!
11825
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Flyout
11826
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Flyout
11826
11827
  * https://github.com/fomantic/Fomantic-UI/
11827
11828
  *
11828
11829
  *
@@ -11851,15 +11852,25 @@
11851
11852
  $head = $('head'),
11852
11853
  $body = $('body'),
11853
11854
 
11854
- moduleSelector = $allModules.selector || '',
11855
-
11856
11855
  time = Date.now(),
11857
11856
  performance = [],
11858
11857
 
11859
11858
  query = arguments[0],
11860
11859
  methodInvoked = typeof query === 'string',
11861
11860
  queryArguments = [].slice.call(arguments, 1),
11861
+ contextCheck = function (context, win) {
11862
+ var $context;
11863
+ if ([window, document].indexOf(context) >= 0) {
11864
+ $context = $body;
11865
+ } else {
11866
+ $context = $(win.document).find(context);
11867
+ if ($context.length === 0) {
11868
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
11869
+ }
11870
+ }
11862
11871
 
11872
+ return $context;
11873
+ },
11863
11874
  returnedValue
11864
11875
  ;
11865
11876
 
@@ -11880,7 +11891,7 @@
11880
11891
  moduleNamespace = 'module-' + namespace,
11881
11892
 
11882
11893
  $module = $(this),
11883
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body,
11894
+ $context = contextCheck(settings.context, window),
11884
11895
  $closeIcon = $module.find(selector.close),
11885
11896
  $inputs,
11886
11897
  $focusedElement,
@@ -11899,6 +11910,7 @@
11899
11910
  initialBodyMargin = '',
11900
11911
  tempBodyMargin = '',
11901
11912
  hadScrollbar = false,
11913
+ windowRefocused = false,
11902
11914
 
11903
11915
  elementNamespace,
11904
11916
  id,
@@ -12077,9 +12089,13 @@
12077
12089
  module.setup.heights();
12078
12090
  },
12079
12091
  focus: function () {
12080
- if (module.is.visible() && settings.autofocus && settings.dimPage) {
12092
+ windowRefocused = true;
12093
+ },
12094
+ click: function (event) {
12095
+ if (windowRefocused && document.activeElement !== event.target && module.is.visible() && settings.autofocus && settings.dimPage && $(document.activeElement).closest(selector.flyout).length === 0) {
12081
12096
  requestAnimationFrame(module.set.autofocus);
12082
12097
  }
12098
+ windowRefocused = false;
12083
12099
  },
12084
12100
  clickaway: function (event) {
12085
12101
  if (settings.closable) {
@@ -12186,6 +12202,9 @@
12186
12202
  $window
12187
12203
  .on('focus' + elementNamespace, module.event.focus)
12188
12204
  ;
12205
+ $context
12206
+ .on('click' + elementNamespace, module.event.click)
12207
+ ;
12189
12208
  },
12190
12209
  clickaway: function () {
12191
12210
  module.verbose('Adding clickaway events to context', $context);
@@ -12315,11 +12334,12 @@
12315
12334
 
12316
12335
  return nodes;
12317
12336
  },
12318
- shouldRefreshInputs = false
12337
+ shouldRefreshInputs = false,
12338
+ ignoreAutofocus = true
12319
12339
  ;
12320
12340
  mutations.every(function (mutation) {
12321
12341
  if (mutation.type === 'attributes') {
12322
- if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').length > 0)) {
12342
+ if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').filter(':visible').length > 0)) {
12323
12343
  shouldRefreshInputs = true;
12324
12344
  }
12325
12345
  } else {
@@ -12329,6 +12349,9 @@
12329
12349
  $removedInputs = $(collectNodes(mutation.removedNodes)).filter('a[href], [tabindex], :input');
12330
12350
  if ($addedInputs.length > 0 || $removedInputs.length > 0) {
12331
12351
  shouldRefreshInputs = true;
12352
+ if ($addedInputs.filter(':input').length > 0 || $removedInputs.filter(':input').length > 0) {
12353
+ ignoreAutofocus = false;
12354
+ }
12332
12355
  }
12333
12356
  }
12334
12357
 
@@ -12336,7 +12359,7 @@
12336
12359
  });
12337
12360
 
12338
12361
  if (shouldRefreshInputs) {
12339
- module.refreshInputs();
12362
+ module.refreshInputs(ignoreAutofocus);
12340
12363
  }
12341
12364
  });
12342
12365
  observer.observe(element, {
@@ -12350,7 +12373,7 @@
12350
12373
  },
12351
12374
  refresh: function () {
12352
12375
  module.verbose('Refreshing selector cache');
12353
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body;
12376
+ $context = contextCheck(settings.context, window);
12354
12377
  module.refreshFlyouts();
12355
12378
  $pusher = $context.children(selector.pusher);
12356
12379
  module.clear.cache();
@@ -12361,7 +12384,7 @@
12361
12384
  $flyouts = $context.children(selector.flyout);
12362
12385
  },
12363
12386
 
12364
- refreshInputs: function () {
12387
+ refreshInputs: function (ignoreAutofocus) {
12365
12388
  if ($inputs) {
12366
12389
  $inputs
12367
12390
  .off('keydown' + elementNamespace)
@@ -12373,8 +12396,8 @@
12373
12396
  $inputs = $module.find('a[href], [tabindex], :input:enabled').filter(':visible').filter(function () {
12374
12397
  return $(this).closest('.disabled').length === 0;
12375
12398
  });
12376
- if ($inputs.length === 0) {
12377
- $inputs = $module;
12399
+ if ($inputs.filter(':input').length === 0) {
12400
+ $inputs = $module.add($inputs);
12378
12401
  $module.attr('tabindex', -1);
12379
12402
  } else {
12380
12403
  $module.removeAttr('tabindex');
@@ -12385,7 +12408,7 @@
12385
12408
  $inputs.last()
12386
12409
  .on('keydown' + elementNamespace, module.event.inputKeyDown.last)
12387
12410
  ;
12388
- if (settings.autofocus && $inputs.filter(':focus').length === 0) {
12411
+ if (!ignoreAutofocus && settings.autofocus && $inputs.filter(':focus').length === 0) {
12389
12412
  module.set.autofocus();
12390
12413
  }
12391
12414
  },
@@ -12663,20 +12686,14 @@
12663
12686
  var
12664
12687
  $autofocus = $inputs.filter('[autofocus]'),
12665
12688
  $rawInputs = $inputs.filter(':input'),
12666
- $input = $autofocus.length > 0
12667
- ? $autofocus.first()
12689
+ $input = ($autofocus.length > 0
12690
+ ? $autofocus
12668
12691
  : ($rawInputs.length > 0
12669
12692
  ? $rawInputs
12670
- : $inputs.filter(':not(i.close)')
12671
- ).first()
12693
+ : $module)
12694
+ ).first()
12672
12695
  ;
12673
- // check if only the close icon is remaining
12674
- if ($input.length === 0 && $inputs.length > 0) {
12675
- $input = $inputs.first();
12676
- }
12677
- if ($input.length > 0) {
12678
- $input.trigger('focus');
12679
- }
12696
+ $input.trigger('focus');
12680
12697
  },
12681
12698
  dimmerStyles: function () {
12682
12699
  if (settings.blurring) {
@@ -13067,9 +13084,6 @@
13067
13084
  totalTime += data['Execution Time'];
13068
13085
  });
13069
13086
  title += ' ' + totalTime + 'ms';
13070
- if (moduleSelector) {
13071
- title += ' \'' + moduleSelector + '\'';
13072
- }
13073
13087
  if (performance.length > 0) {
13074
13088
  console.groupCollapsed(title);
13075
13089
  if (console.table) {
@@ -13390,7 +13404,7 @@
13390
13404
  })(jQuery, window, document);
13391
13405
 
13392
13406
  /*!
13393
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Modal
13407
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Modal
13394
13408
  * https://github.com/fomantic/Fomantic-UI/
13395
13409
  *
13396
13410
  *
@@ -13417,15 +13431,25 @@
13417
13431
  $document = $(document),
13418
13432
  $body = $('body'),
13419
13433
 
13420
- moduleSelector = $allModules.selector || '',
13421
-
13422
13434
  time = Date.now(),
13423
13435
  performance = [],
13424
13436
 
13425
13437
  query = arguments[0],
13426
13438
  methodInvoked = typeof query === 'string',
13427
13439
  queryArguments = [].slice.call(arguments, 1),
13440
+ contextCheck = function (context, win) {
13441
+ var $context;
13442
+ if ([window, document].indexOf(context) >= 0) {
13443
+ $context = $body;
13444
+ } else {
13445
+ $context = $(win.document).find(context);
13446
+ if ($context.length === 0) {
13447
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
13448
+ }
13449
+ }
13428
13450
 
13451
+ return $context;
13452
+ },
13429
13453
  returnedValue
13430
13454
  ;
13431
13455
 
@@ -13445,7 +13469,7 @@
13445
13469
  moduleNamespace = 'module-' + namespace,
13446
13470
 
13447
13471
  $module = $(this),
13448
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body,
13472
+ $context = contextCheck(settings.context, window),
13449
13473
  isBody = $context[0] === $body[0],
13450
13474
  $closeIcon = $module.find(selector.closeIcon),
13451
13475
  $inputs,
@@ -13469,6 +13493,7 @@
13469
13493
  tempBodyMargin = '',
13470
13494
  keepScrollingClass = false,
13471
13495
  hadScrollbar = false,
13496
+ windowRefocused = false,
13472
13497
 
13473
13498
  elementEventNamespace,
13474
13499
  id,
@@ -13632,6 +13657,7 @@
13632
13657
  .off(eventNamespace)
13633
13658
  ;
13634
13659
  $window.off(elementEventNamespace);
13660
+ $context.off(elementEventNamespace);
13635
13661
  $dimmer.off(elementEventNamespace);
13636
13662
  $closeIcon.off(elementEventNamespace);
13637
13663
  if ($inputs) {
@@ -13653,11 +13679,12 @@
13653
13679
  return nodes;
13654
13680
  },
13655
13681
  shouldRefresh = false,
13656
- shouldRefreshInputs = false
13682
+ shouldRefreshInputs = false,
13683
+ ignoreAutofocus = true
13657
13684
  ;
13658
13685
  mutations.every(function (mutation) {
13659
13686
  if (mutation.type === 'attributes') {
13660
- if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').length > 0)) {
13687
+ if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').filter(':visible').length > 0)) {
13661
13688
  shouldRefreshInputs = true;
13662
13689
  }
13663
13690
  } else {
@@ -13668,6 +13695,9 @@
13668
13695
  $removedInputs = $(collectNodes(mutation.removedNodes)).filter('a[href], [tabindex], :input');
13669
13696
  if ($addedInputs.length > 0 || $removedInputs.length > 0) {
13670
13697
  shouldRefreshInputs = true;
13698
+ if ($addedInputs.filter(':input').length > 0 || $removedInputs.filter(':input').length > 0) {
13699
+ ignoreAutofocus = false;
13700
+ }
13671
13701
  }
13672
13702
  }
13673
13703
 
@@ -13679,7 +13709,7 @@
13679
13709
  module.refresh();
13680
13710
  }
13681
13711
  if (shouldRefreshInputs) {
13682
- module.refreshInputs();
13712
+ module.refreshInputs(ignoreAutofocus);
13683
13713
  }
13684
13714
  });
13685
13715
  observer.observe(element, {
@@ -13707,7 +13737,7 @@
13707
13737
  $allModals = $otherModals.add($module);
13708
13738
  },
13709
13739
 
13710
- refreshInputs: function () {
13740
+ refreshInputs: function (ignoreAutofocus) {
13711
13741
  if ($inputs) {
13712
13742
  $inputs
13713
13743
  .off('keydown' + elementEventNamespace)
@@ -13716,8 +13746,8 @@
13716
13746
  $inputs = $module.find('a[href], [tabindex], :input:enabled').filter(':visible').filter(function () {
13717
13747
  return $(this).closest('.disabled').length === 0;
13718
13748
  });
13719
- if ($inputs.length === 0) {
13720
- $inputs = $module;
13749
+ if ($inputs.filter(':input').length === 0) {
13750
+ $inputs = $module.add($inputs);
13721
13751
  $module.attr('tabindex', -1);
13722
13752
  } else {
13723
13753
  $module.removeAttr('tabindex');
@@ -13728,7 +13758,7 @@
13728
13758
  $inputs.last()
13729
13759
  .on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
13730
13760
  ;
13731
- if (settings.autofocus && $inputs.filter(':focus').length === 0) {
13761
+ if (!ignoreAutofocus && settings.autofocus && $inputs.filter(':focus').length === 0) {
13732
13762
  module.set.autofocus();
13733
13763
  }
13734
13764
  },
@@ -13766,6 +13796,9 @@
13766
13796
  .on('resize' + elementEventNamespace, module.event.resize)
13767
13797
  .on('focus' + elementEventNamespace, module.event.focus)
13768
13798
  ;
13799
+ $context
13800
+ .on('click' + elementEventNamespace, module.event.click)
13801
+ ;
13769
13802
  },
13770
13803
  scrollLock: function () {
13771
13804
  // touch events default to passive, due to changes in chrome to optimize mobile perf
@@ -13923,9 +13956,13 @@
13923
13956
  }
13924
13957
  },
13925
13958
  focus: function () {
13926
- if ($dimmable.dimmer('is active') && module.is.active() && settings.autofocus) {
13959
+ windowRefocused = true;
13960
+ },
13961
+ click: function (event) {
13962
+ if (windowRefocused && document.activeElement !== event.target && $dimmable.dimmer('is active') && module.is.active() && settings.autofocus && $(document.activeElement).closest(selector.modal).length === 0) {
13927
13963
  requestAnimationFrame(module.set.autofocus);
13928
13964
  }
13965
+ windowRefocused = false;
13929
13966
  },
13930
13967
  },
13931
13968
 
@@ -13990,7 +14027,7 @@
13990
14027
  ignoreRepeatedEvents = false;
13991
14028
  if (settings.allowMultiple) {
13992
14029
  if (module.others.active()) {
13993
- $otherModals.filter('.' + className.active).find(selector.dimmer).addClass('active');
14030
+ $otherModals.filter('.' + className.active).find(selector.dimmer).removeClass('out').addClass('transition fade in active');
13994
14031
  }
13995
14032
 
13996
14033
  if (settings.detachable) {
@@ -14062,6 +14099,8 @@
14062
14099
  onStart: function () {
14063
14100
  if (!module.others.active() && !module.others.animating() && !keepDimmed) {
14064
14101
  module.hideDimmer();
14102
+ } else if (settings.allowMultiple) {
14103
+ (hideOthersToo ? $allModals : $previousModal).find(selector.dimmer).removeClass('in').addClass('out');
14065
14104
  }
14066
14105
  if (settings.keyboardShortcuts && !module.others.active()) {
14067
14106
  module.remove.keyboardShortcuts();
@@ -14074,11 +14113,7 @@
14074
14113
  $previousModal.addClass(className.front);
14075
14114
  $module.removeClass(className.front);
14076
14115
 
14077
- if (hideOthersToo) {
14078
- $allModals.find(selector.dimmer).removeClass('active');
14079
- } else {
14080
- $previousModal.find(selector.dimmer).removeClass('active');
14081
- }
14116
+ (hideOthersToo ? $allModals : $previousModal).find(selector.dimmer).removeClass('active');
14082
14117
  }
14083
14118
  if (isFunction(settings.onHidden)) {
14084
14119
  settings.onHidden.call(element);
@@ -14435,20 +14470,14 @@
14435
14470
  var
14436
14471
  $autofocus = $inputs.filter('[autofocus]'),
14437
14472
  $rawInputs = $inputs.filter(':input'),
14438
- $input = $autofocus.length > 0
14439
- ? $autofocus.first()
14473
+ $input = ($autofocus.length > 0
14474
+ ? $autofocus
14440
14475
  : ($rawInputs.length > 0
14441
14476
  ? $rawInputs
14442
- : $inputs.filter(':not(i.close)')
14443
- ).first()
14477
+ : $module)
14478
+ ).first()
14444
14479
  ;
14445
- // check if only the close icon is remaining
14446
- if ($input.length === 0 && $inputs.length > 0) {
14447
- $input = $inputs.first();
14448
- }
14449
- if ($input.length > 0) {
14450
- $input.trigger('focus');
14451
- }
14480
+ $input.trigger('focus');
14452
14481
  },
14453
14482
  bodyMargin: function () {
14454
14483
  var position = module.can.leftBodyScrollbar() ? 'left' : 'right';
@@ -14662,9 +14691,6 @@
14662
14691
  totalTime += data['Execution Time'];
14663
14692
  });
14664
14693
  title += ' ' + totalTime + 'ms';
14665
- if (moduleSelector) {
14666
- title += ' \'' + moduleSelector + '\'';
14667
- }
14668
14694
  if (performance.length > 0) {
14669
14695
  console.groupCollapsed(title);
14670
14696
  if (console.table) {
@@ -15012,7 +15038,7 @@
15012
15038
  })(jQuery, window, document);
15013
15039
 
15014
15040
  /*!
15015
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Nag
15041
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Nag
15016
15042
  * https://github.com/fomantic/Fomantic-UI/
15017
15043
  *
15018
15044
  *
@@ -15035,7 +15061,7 @@
15035
15061
  $.fn.nag = function (parameters) {
15036
15062
  var
15037
15063
  $allModules = $(this),
15038
- moduleSelector = $allModules.selector || '',
15064
+ $body = $('body'),
15039
15065
 
15040
15066
  time = Date.now(),
15041
15067
  performance = [],
@@ -15043,6 +15069,19 @@
15043
15069
  query = arguments[0],
15044
15070
  methodInvoked = typeof query === 'string',
15045
15071
  queryArguments = [].slice.call(arguments, 1),
15072
+ contextCheck = function (context, win) {
15073
+ var $context;
15074
+ if ([window, document].indexOf(context) >= 0) {
15075
+ $context = $(context);
15076
+ } else {
15077
+ $context = $(win.document).find(context);
15078
+ if ($context.length === 0) {
15079
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
15080
+ }
15081
+ }
15082
+
15083
+ return $context;
15084
+ },
15046
15085
  returnedValue
15047
15086
  ;
15048
15087
  $allModules.each(function () {
@@ -15060,9 +15099,7 @@
15060
15099
 
15061
15100
  $module = $(this),
15062
15101
 
15063
- $context = settings.context
15064
- ? ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
15065
- : $('body'),
15102
+ $context = settings.context ? contextCheck(settings.context, window) : $body,
15066
15103
 
15067
15104
  element = this,
15068
15105
  instance = $module.data(moduleNamespace),
@@ -15392,9 +15429,6 @@
15392
15429
  totalTime += data['Execution Time'];
15393
15430
  });
15394
15431
  title += ' ' + totalTime + 'ms';
15395
- if (moduleSelector) {
15396
- title += ' \'' + moduleSelector + '\'';
15397
- }
15398
15432
  if (performance.length > 0) {
15399
15433
  console.groupCollapsed(title);
15400
15434
  if (console.table) {
@@ -15565,7 +15599,7 @@
15565
15599
  })(jQuery, window, document);
15566
15600
 
15567
15601
  /*!
15568
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Popup
15602
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Popup
15569
15603
  * https://github.com/fomantic/Fomantic-UI/
15570
15604
  *
15571
15605
  *
@@ -15592,8 +15626,6 @@
15592
15626
  $window = $(window),
15593
15627
  $body = $('body'),
15594
15628
 
15595
- moduleSelector = $allModules.selector || '',
15596
-
15597
15629
  clickEvent = 'ontouchstart' in document.documentElement
15598
15630
  ? 'touchstart'
15599
15631
  : 'click',
@@ -15604,6 +15636,19 @@
15604
15636
  query = arguments[0],
15605
15637
  methodInvoked = typeof query === 'string',
15606
15638
  queryArguments = [].slice.call(arguments, 1),
15639
+ contextCheck = function (context, win) {
15640
+ var $context;
15641
+ if ([window, document].indexOf(context) >= 0) {
15642
+ $context = $(context);
15643
+ } else {
15644
+ $context = $(win.document).find(context);
15645
+ if ($context.length === 0) {
15646
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
15647
+ }
15648
+ }
15649
+
15650
+ return $context;
15651
+ },
15607
15652
 
15608
15653
  returnedValue
15609
15654
  ;
@@ -15623,12 +15668,10 @@
15623
15668
  moduleNamespace = 'module-' + namespace,
15624
15669
 
15625
15670
  $module = $(this),
15626
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context),
15627
- $scrollContext = [window, document].indexOf(settings.scrollContext) < 0 ? $document.find(settings.scrollContext) : $(settings.scrollContext),
15628
- $boundary = [window, document].indexOf(settings.boundary) < 0 ? $document.find(settings.boundary) : $(settings.boundary),
15629
- $target = settings.target
15630
- ? ([window, document].indexOf(settings.target) < 0 ? $document.find(settings.target) : $(settings.target))
15631
- : $module,
15671
+ $context = contextCheck(settings.context, window),
15672
+ $scrollContext = contextCheck(settings.scrollContext, window),
15673
+ $boundary = contextCheck(settings.boundary, window),
15674
+ $target = settings.target ? contextCheck(settings.target, window) : $module,
15632
15675
 
15633
15676
  $popup,
15634
15677
  $offsetParent,
@@ -15805,9 +15848,11 @@
15805
15848
  // generates popup html from metadata
15806
15849
  create: function () {
15807
15850
  var
15851
+ targetSibling = $target.next(selector.popup),
15852
+ contentFallback = !settings.popup && targetSibling.length === 0 ? $module.attr('title') : false,
15808
15853
  html = module.get.html(),
15809
15854
  title = module.get.title(),
15810
- content = module.get.content()
15855
+ content = module.get.content(contentFallback)
15811
15856
  ;
15812
15857
 
15813
15858
  if (html || content || title) {
@@ -15848,10 +15893,10 @@
15848
15893
  if (settings.hoverable) {
15849
15894
  module.bind.popup();
15850
15895
  }
15851
- } else if ($target.next(selector.popup).length > 0) {
15896
+ } else if (targetSibling.length > 0) {
15852
15897
  module.verbose('Pre-existing popup found');
15853
15898
  settings.inline = true;
15854
- settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
15899
+ settings.popup = targetSibling.data(metadata.activator, $module);
15855
15900
  module.refresh();
15856
15901
  if (settings.hoverable) {
15857
15902
  module.bind.popup();
@@ -16041,10 +16086,10 @@
16041
16086
 
16042
16087
  return $module.data(metadata.title) || settings.title;
16043
16088
  },
16044
- content: function () {
16089
+ content: function (fallback) {
16045
16090
  $module.removeData(metadata.content);
16046
16091
 
16047
- return $module.data(metadata.content) || settings.content || $module.attr('title');
16092
+ return $module.data(metadata.content) || settings.content || fallback;
16048
16093
  },
16049
16094
  variation: function () {
16050
16095
  $module.removeData(metadata.variation);
@@ -16812,9 +16857,6 @@
16812
16857
  totalTime += data['Execution Time'];
16813
16858
  });
16814
16859
  title += ' ' + totalTime + 'ms';
16815
- if (moduleSelector) {
16816
- title += ' \'' + moduleSelector + '\'';
16817
- }
16818
16860
  if (performance.length > 0) {
16819
16861
  console.groupCollapsed(title);
16820
16862
  if (console.table) {
@@ -17113,7 +17155,7 @@
17113
17155
  })(jQuery, window, document);
17114
17156
 
17115
17157
  /*!
17116
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Progress
17158
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Progress
17117
17159
  * https://github.com/fomantic/Fomantic-UI/
17118
17160
  *
17119
17161
  *
@@ -17137,8 +17179,6 @@
17137
17179
  var
17138
17180
  $allModules = $(this),
17139
17181
 
17140
- moduleSelector = $allModules.selector || '',
17141
-
17142
17182
  time = Date.now(),
17143
17183
  performance = [],
17144
17184
 
@@ -17920,9 +17960,6 @@
17920
17960
  totalTime += data['Execution Time'];
17921
17961
  });
17922
17962
  title += ' ' + totalTime + 'ms';
17923
- if (moduleSelector) {
17924
- title += ' \'' + moduleSelector + '\'';
17925
- }
17926
17963
  if (performance.length > 0) {
17927
17964
  console.groupCollapsed(title);
17928
17965
  if (console.table) {
@@ -18096,7 +18133,7 @@
18096
18133
  })(jQuery, window, document);
18097
18134
 
18098
18135
  /*!
18099
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Slider
18136
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Slider
18100
18137
  * https://github.com/fomantic/Fomantic-UI/
18101
18138
  *
18102
18139
  *
@@ -18122,8 +18159,6 @@
18122
18159
  $document = $(document),
18123
18160
  $window = $(window),
18124
18161
 
18125
- moduleSelector = $allModules.selector || '',
18126
-
18127
18162
  time = Date.now(),
18128
18163
  performance = [],
18129
18164
 
@@ -18202,9 +18237,7 @@
18202
18237
  module.setup.layout();
18203
18238
  module.setup.labels();
18204
18239
 
18205
- if (!module.is.disabled()) {
18206
- module.bind.events();
18207
- }
18240
+ module.bind.events();
18208
18241
 
18209
18242
  module.read.metadata();
18210
18243
  module.read.settings();
@@ -18236,20 +18269,32 @@
18236
18269
  $module.attr('tabindex', 0);
18237
18270
  }
18238
18271
  if ($module.find('.inner').length === 0) {
18239
- $module.append("<div class='inner'>"
18240
- + "<div class='track'></div>"
18241
- + "<div class='track-fill'></div>"
18242
- + "<div class='thumb'></div>"
18272
+ $module.append('<div class="inner">'
18273
+ + '<div class="track"></div>'
18274
+ + '<div class="track-fill"></div>'
18275
+ + '<div class="thumb"></div>'
18243
18276
  + '</div>');
18244
18277
  }
18245
18278
  precision = module.get.precision();
18246
18279
  $thumb = $module.find('.thumb:not(.second)');
18280
+ if (settings.showThumbTooltip) {
18281
+ $thumb
18282
+ .attr('data-position', settings.tooltipConfig.position)
18283
+ .attr('data-variation', settings.tooltipConfig.variation)
18284
+ ;
18285
+ }
18247
18286
  $currThumb = $thumb;
18248
18287
  if (module.is.range()) {
18249
18288
  if ($module.find('.thumb.second').length === 0) {
18250
- $module.find('.inner').append("<div class='thumb second'></div>");
18289
+ $module.find('.inner').append('<div class="thumb second"></div>');
18251
18290
  }
18252
18291
  $secondThumb = $module.find('.thumb.second');
18292
+ if (settings.showThumbTooltip) {
18293
+ $secondThumb
18294
+ .attr('data-position', settings.tooltipConfig.position)
18295
+ .attr('data-variation', settings.tooltipConfig.variation)
18296
+ ;
18297
+ }
18253
18298
  }
18254
18299
  $track = $module.find('.track');
18255
18300
  $trackFill = $module.find('.track-fill');
@@ -18303,9 +18348,10 @@
18303
18348
  for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
18304
18349
  var
18305
18350
  labelText = module.get.label(i),
18306
- $label = labelText !== ''
18351
+ showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
18352
+ $label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
18307
18353
  ? (!(i % module.get.gapRatio())
18308
- ? $('<li class="label">' + labelText + '</li>')
18354
+ ? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
18309
18355
  : $('<li class="halftick label"></li>'))
18310
18356
  : null,
18311
18357
  ratio = i / len
@@ -18449,6 +18495,18 @@
18449
18495
  ;
18450
18496
  $currThumb = initialPosition > newPos ? $thumb : $secondThumb;
18451
18497
  }
18498
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
18499
+ var currentRangeDiff = module.get.currentRangeDiff(value),
18500
+ isSecondThumb = $currThumb.hasClass('second')
18501
+ ;
18502
+ if ((settings.minRange && currentRangeDiff < settings.minRange)
18503
+ || (settings.maxRange && currentRangeDiff > settings.maxRange)
18504
+ || (settings.preventCrossover && !isSecondThumb && value > module.secondThumbVal)
18505
+ || (settings.preventCrossover && isSecondThumb && value < module.thumbVal)
18506
+ ) {
18507
+ return;
18508
+ }
18509
+ }
18452
18510
  if (module.get.step() === 0 || module.is.smooth()) {
18453
18511
  var
18454
18512
  thumbVal = module.thumbVal,
@@ -18484,6 +18542,17 @@
18484
18542
  return;
18485
18543
  }
18486
18544
  var value = module.determine.valueFromEvent(event);
18545
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
18546
+ if ($currThumb === undefined) {
18547
+ $currThumb = value <= module.get.currentThumbValue() ? $thumb : $secondThumb;
18548
+ }
18549
+ var currentRangeDiff = module.get.currentRangeDiff(value);
18550
+ if (settings.minRange && currentRangeDiff < settings.minRange) {
18551
+ value = module.get.edgeValue(value, settings.minRange);
18552
+ } else if (settings.maxRange && currentRangeDiff > settings.maxRange) {
18553
+ value = module.get.edgeValue(value, settings.maxRange);
18554
+ }
18555
+ }
18487
18556
  module.set.value(value);
18488
18557
  module.unbind.slidingEvents();
18489
18558
  touchIdentifier = undefined;
@@ -18500,6 +18569,9 @@
18500
18569
  }
18501
18570
  },
18502
18571
  keydown: function (event, first) {
18572
+ if (module.is.disabled()) {
18573
+ return;
18574
+ }
18503
18575
  if (settings.preventCrossover && module.is.range() && module.thumbVal === module.secondThumbVal) {
18504
18576
  $currThumb = undefined;
18505
18577
  }
@@ -18536,7 +18608,7 @@
18536
18608
  }
18537
18609
  },
18538
18610
  activateFocus: function (event) {
18539
- if (!module.is.focused() && module.is.hover() && module.determine.keyMovement(event) !== NO_STEP) {
18611
+ if (!module.is.disabled() && !module.is.focused() && module.is.hover() && module.determine.keyMovement(event) !== NO_STEP) {
18540
18612
  event.preventDefault();
18541
18613
  module.event.keydown(event, true);
18542
18614
  $module.trigger('focus');
@@ -18601,7 +18673,13 @@
18601
18673
 
18602
18674
  is: {
18603
18675
  range: function () {
18604
- return $module.hasClass(settings.className.range);
18676
+ var isRange = $module.hasClass(className.range);
18677
+ if (!isRange && (settings.minRange || settings.maxRange)) {
18678
+ $module.addClass(className.range);
18679
+ isRange = true;
18680
+ }
18681
+
18682
+ return isRange;
18605
18683
  },
18606
18684
  hover: function () {
18607
18685
  return isHover;
@@ -18610,23 +18688,56 @@
18610
18688
  return $module.is(':focus');
18611
18689
  },
18612
18690
  disabled: function () {
18613
- return $module.hasClass(settings.className.disabled);
18691
+ return $module.hasClass(className.disabled);
18614
18692
  },
18615
18693
  labeled: function () {
18616
- return $module.hasClass(settings.className.labeled);
18694
+ var isLabeled = $module.hasClass(className.labeled);
18695
+ if (!isLabeled && (settings.restrictedLabels.length > 0 || settings.showLabelTicks !== false)) {
18696
+ $module.addClass(className.labeled);
18697
+ isLabeled = true;
18698
+ }
18699
+
18700
+ return isLabeled;
18617
18701
  },
18618
18702
  reversed: function () {
18619
- return $module.hasClass(settings.className.reversed);
18703
+ return $module.hasClass(className.reversed);
18620
18704
  },
18621
18705
  vertical: function () {
18622
- return $module.hasClass(settings.className.vertical);
18706
+ return $module.hasClass(className.vertical);
18623
18707
  },
18624
18708
  smooth: function () {
18625
- return settings.smooth || $module.hasClass(settings.className.smooth);
18709
+ return settings.smooth || $module.hasClass(className.smooth);
18626
18710
  },
18627
18711
  },
18628
18712
 
18629
18713
  get: {
18714
+ currentRangeDiff: function (value) {
18715
+ var currentRangeDiff;
18716
+ if ($currThumb.hasClass('second')) {
18717
+ currentRangeDiff = module.thumbVal < value
18718
+ ? value - module.thumbVal
18719
+ : module.thumbVal - value;
18720
+ } else {
18721
+ currentRangeDiff = module.secondThumbVal > value
18722
+ ? module.secondThumbVal - value
18723
+ : value - module.secondThumbVal;
18724
+ }
18725
+
18726
+ return currentRangeDiff;
18727
+ },
18728
+ edgeValue: function (value, edgeValue) {
18729
+ if ($currThumb.hasClass('second')) {
18730
+ value = module.thumbVal < value
18731
+ ? module.thumbVal + edgeValue
18732
+ : module.thumbVal - edgeValue;
18733
+ } else {
18734
+ value = module.secondThumbVal < value
18735
+ ? module.secondThumbVal + edgeValue
18736
+ : module.secondThumbVal - edgeValue;
18737
+ }
18738
+
18739
+ return value;
18740
+ },
18630
18741
  trackOffset: function () {
18631
18742
  if (module.is.vertical()) {
18632
18743
  return $track.offset().top;
@@ -18830,13 +18941,10 @@
18830
18941
  return thumbDelta <= secondThumbDelta ? thumbPos : secondThumbPos;
18831
18942
  },
18832
18943
  thumbPos: function ($element) {
18833
- var
18834
- pos = module.is.vertical()
18835
- ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
18836
- : (module.is.reversed() ? $element.css('right') : $element.css('left'))
18944
+ return module.is.vertical()
18945
+ ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
18946
+ : (module.is.reversed() ? $element.css('right') : $element.css('left'))
18837
18947
  ;
18838
-
18839
- return pos;
18840
18948
  },
18841
18949
  positionFromValue: function (val) {
18842
18950
  var
@@ -18860,6 +18968,7 @@
18860
18968
  position = Math.round(ratio * trackLength),
18861
18969
  adjustedPos = step === 0 ? position : Math.round(position / step) * step
18862
18970
  ;
18971
+ module.verbose('Determined position: ' + position + ' from ratio: ' + ratio);
18863
18972
 
18864
18973
  return adjustedPos;
18865
18974
  },
@@ -19083,12 +19192,12 @@
19083
19192
  }
19084
19193
  if (!$currThumb.hasClass('second')) {
19085
19194
  if (settings.preventCrossover && module.is.range()) {
19086
- newValue = Math.min(module.secondThumbVal, newValue);
19195
+ newValue = Math.min(module.secondThumbVal - (settings.minRange || 0), newValue);
19087
19196
  }
19088
19197
  module.thumbVal = newValue;
19089
19198
  } else {
19090
19199
  if (settings.preventCrossover && module.is.range()) {
19091
- newValue = Math.max(module.thumbVal, newValue);
19200
+ newValue = Math.max(module.thumbVal + (settings.minRange || 0), newValue);
19092
19201
  }
19093
19202
  module.secondThumbVal = newValue;
19094
19203
  }
@@ -19107,6 +19216,10 @@
19107
19216
  thumbVal = module.thumbVal || module.get.min(),
19108
19217
  secondThumbVal = module.secondThumbVal || module.get.min()
19109
19218
  ;
19219
+ if (settings.showThumbTooltip) {
19220
+ var precision = module.get.precision();
19221
+ $targetThumb.attr('data-tooltip', Math.round(newValue * precision) / precision);
19222
+ }
19110
19223
  if (module.is.range()) {
19111
19224
  if (!$targetThumb.hasClass('second')) {
19112
19225
  position = newPos;
@@ -19195,6 +19308,14 @@
19195
19308
  settings: function () {
19196
19309
  if (settings.start !== false) {
19197
19310
  if (module.is.range()) {
19311
+ var rangeDiff = settings.end - settings.start;
19312
+ if (rangeDiff < 0
19313
+ || (settings.minRange && rangeDiff < settings.minRange)
19314
+ || (settings.maxRange && rangeDiff > settings.maxRange)
19315
+ || (settings.minRange && settings.maxRange && settings.minRange > settings.maxRange)
19316
+ ) {
19317
+ module.error(error.invalidRanges, settings.start, settings.end, settings.minRange, settings.maxRange);
19318
+ }
19198
19319
  module.debug('Start position set from settings', settings.start, settings.end);
19199
19320
  module.set.rangeValue(settings.start, settings.end);
19200
19321
  } else {
@@ -19288,9 +19409,6 @@
19288
19409
  totalTime += data['Execution Time'];
19289
19410
  });
19290
19411
  title += ' ' + totalTime + 'ms';
19291
- if (moduleSelector) {
19292
- title += ' \'' + moduleSelector + '\'';
19293
- }
19294
19412
  if (performance.length > 0) {
19295
19413
  console.groupCollapsed(title);
19296
19414
  if (console.table) {
@@ -19390,6 +19508,7 @@
19390
19508
  error: {
19391
19509
  method: 'The method you called is not defined.',
19392
19510
  notrange: 'This slider is not a range slider',
19511
+ invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
19393
19512
  },
19394
19513
 
19395
19514
  metadata: {
@@ -19402,6 +19521,8 @@
19402
19521
  step: 1,
19403
19522
  start: 0,
19404
19523
  end: 20,
19524
+ minRange: false,
19525
+ maxRange: false,
19405
19526
  labelType: 'number',
19406
19527
  showLabelTicks: false,
19407
19528
  smooth: false,
@@ -19438,6 +19559,13 @@
19438
19559
  downArrow: 40,
19439
19560
  },
19440
19561
 
19562
+ restrictedLabels: [],
19563
+ showThumbTooltip: false,
19564
+ tooltipConfig: {
19565
+ position: 'top center',
19566
+ variation: 'tiny black',
19567
+ },
19568
+
19441
19569
  labelTypes: {
19442
19570
  number: 'number',
19443
19571
  letter: 'letter',
@@ -19449,7 +19577,7 @@
19449
19577
  })(jQuery, window, document);
19450
19578
 
19451
19579
  /*!
19452
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Rating
19580
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Rating
19453
19581
  * https://github.com/fomantic/Fomantic-UI/
19454
19582
  *
19455
19583
  *
@@ -19472,7 +19600,6 @@
19472
19600
  $.fn.rating = function (parameters) {
19473
19601
  var
19474
19602
  $allModules = $(this),
19475
- moduleSelector = $allModules.selector || '',
19476
19603
 
19477
19604
  time = Date.now(),
19478
19605
  performance = [],
@@ -19832,9 +19959,6 @@
19832
19959
  totalTime += data['Execution Time'];
19833
19960
  });
19834
19961
  title += ' ' + totalTime + 'ms';
19835
- if (moduleSelector) {
19836
- title += ' \'' + moduleSelector + '\'';
19837
- }
19838
19962
  if ($allModules.length > 1) {
19839
19963
  title += ' (' + $allModules.length + ')';
19840
19964
  }
@@ -19992,7 +20116,7 @@
19992
20116
  })(jQuery, window, document);
19993
20117
 
19994
20118
  /*!
19995
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Search
20119
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Search
19996
20120
  * https://github.com/fomantic/Fomantic-UI/
19997
20121
  *
19998
20122
  *
@@ -20015,7 +20139,6 @@
20015
20139
  $.fn.search = function (parameters) {
20016
20140
  var
20017
20141
  $allModules = $(this),
20018
- moduleSelector = $allModules.selector || '',
20019
20142
 
20020
20143
  time = Date.now(),
20021
20144
  performance = [],
@@ -20555,6 +20678,7 @@
20555
20678
  if (cache) {
20556
20679
  module.debug('Reading result from cache', searchTerm);
20557
20680
  module.save.results(cache.results);
20681
+ settings.onResults.call(element, cache.results, true);
20558
20682
  module.addResults(cache.html);
20559
20683
  module.inject.id(cache.results);
20560
20684
  callback();
@@ -21177,9 +21301,6 @@
21177
21301
  totalTime += data['Execution Time'];
21178
21302
  });
21179
21303
  title += ' ' + totalTime + 'ms';
21180
- if (moduleSelector) {
21181
- title += ' \'' + moduleSelector + '\'';
21182
- }
21183
21304
  if ($allModules.length > 1) {
21184
21305
  title += ' (' + $allModules.length + ')';
21185
21306
  }
@@ -21342,7 +21463,7 @@
21342
21463
  onResultsAdd: false,
21343
21464
 
21344
21465
  onSearchQuery: function (query) {},
21345
- onResults: function (response) {},
21466
+ onResults: function (response, fromCache) {},
21346
21467
 
21347
21468
  onResultsOpen: function () {},
21348
21469
  onResultsClose: function () {},
@@ -21573,7 +21694,7 @@
21573
21694
  })(jQuery, window, document);
21574
21695
 
21575
21696
  /*!
21576
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Shape
21697
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Shape
21577
21698
  * https://github.com/fomantic/Fomantic-UI/
21578
21699
  *
21579
21700
  *
@@ -21609,7 +21730,6 @@
21609
21730
 
21610
21731
  $allModules.each(function () {
21611
21732
  var
21612
- moduleSelector = $allModules.selector || '',
21613
21733
  settings = $.isPlainObject(parameters)
21614
21734
  ? $.extend(true, {}, $.fn.shape.settings, parameters)
21615
21735
  : $.extend({}, $.fn.shape.settings),
@@ -22211,9 +22331,6 @@
22211
22331
  totalTime += data['Execution Time'];
22212
22332
  });
22213
22333
  title += ' ' + totalTime + 'ms';
22214
- if (moduleSelector) {
22215
- title += ' \'' + moduleSelector + '\'';
22216
- }
22217
22334
  if ($allModules.length > 1) {
22218
22335
  title += ' (' + $allModules.length + ')';
22219
22336
  }
@@ -22373,7 +22490,7 @@
22373
22490
  })(jQuery, window, document);
22374
22491
 
22375
22492
  /*!
22376
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Sidebar
22493
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Sidebar
22377
22494
  * https://github.com/fomantic/Fomantic-UI/
22378
22495
  *
22379
22496
  *
@@ -22402,15 +22519,25 @@
22402
22519
  $html = $('html'),
22403
22520
  $head = $('head'),
22404
22521
 
22405
- moduleSelector = $allModules.selector || '',
22406
-
22407
22522
  time = Date.now(),
22408
22523
  performance = [],
22409
22524
 
22410
22525
  query = arguments[0],
22411
22526
  methodInvoked = typeof query === 'string',
22412
22527
  queryArguments = [].slice.call(arguments, 1),
22528
+ contextCheck = function (context, win) {
22529
+ var $context;
22530
+ if ([window, document].indexOf(context) >= 0) {
22531
+ $context = $body;
22532
+ } else {
22533
+ $context = $(win.document).find(context);
22534
+ if ($context.length === 0) {
22535
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
22536
+ }
22537
+ }
22413
22538
 
22539
+ return $context;
22540
+ },
22414
22541
  returnedValue;
22415
22542
 
22416
22543
  $allModules.each(function () {
@@ -22429,7 +22556,7 @@
22429
22556
  moduleNamespace = 'module-' + namespace,
22430
22557
 
22431
22558
  $module = $(this),
22432
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body,
22559
+ $context = contextCheck(settings.context, window),
22433
22560
  isBody = $context[0] === $body[0],
22434
22561
 
22435
22562
  $sidebars = $module.children(selector.sidebar),
@@ -22651,7 +22778,7 @@
22651
22778
 
22652
22779
  refresh: function () {
22653
22780
  module.verbose('Refreshing selector cache');
22654
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body;
22781
+ $context = contextCheck(settings.context, window);
22655
22782
  module.refreshSidebars();
22656
22783
  $pusher = $context.children(selector.pusher);
22657
22784
  $fixed = $context.children(selector.fixed);
@@ -23275,9 +23402,6 @@
23275
23402
  totalTime += data['Execution Time'];
23276
23403
  });
23277
23404
  title += ' ' + totalTime + 'ms';
23278
- if (moduleSelector) {
23279
- title += ' \'' + moduleSelector + '\'';
23280
- }
23281
23405
  if (performance.length > 0) {
23282
23406
  console.groupCollapsed(title);
23283
23407
  if (console.table) {
@@ -23449,7 +23573,7 @@
23449
23573
  })(jQuery, window, document);
23450
23574
 
23451
23575
  /*!
23452
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Sticky
23576
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Sticky
23453
23577
  * https://github.com/fomantic/Fomantic-UI/
23454
23578
  *
23455
23579
  *
@@ -23473,7 +23597,6 @@
23473
23597
  var
23474
23598
  $allModules = $(this),
23475
23599
  $document = $(document),
23476
- moduleSelector = $allModules.selector || '',
23477
23600
 
23478
23601
  time = Date.now(),
23479
23602
  performance = [],
@@ -23481,6 +23604,19 @@
23481
23604
  query = arguments[0],
23482
23605
  methodInvoked = typeof query === 'string',
23483
23606
  queryArguments = [].slice.call(arguments, 1),
23607
+ contextCheck = function (context, win) {
23608
+ var $context;
23609
+ if ([window, document].indexOf(context) >= 0) {
23610
+ $context = $(context);
23611
+ } else {
23612
+ $context = $(win.document).find(context);
23613
+ if ($context.length === 0) {
23614
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
23615
+ }
23616
+ }
23617
+
23618
+ return $context;
23619
+ },
23484
23620
  returnedValue
23485
23621
  ;
23486
23622
 
@@ -23499,7 +23635,7 @@
23499
23635
 
23500
23636
  $module = $(this),
23501
23637
  $window = $(window),
23502
- $scroll = [window, document].indexOf(settings.scrollContext) < 0 ? $document.find(settings.scrollContext) : $(settings.scrollContext),
23638
+ $scroll = contextCheck(settings.scrollContext, window),
23503
23639
  $container,
23504
23640
  $context,
23505
23641
 
@@ -23577,19 +23713,11 @@
23577
23713
  },
23578
23714
 
23579
23715
  determineContainer: function () {
23580
- if (settings.container) {
23581
- $container = [window, document].indexOf(settings.container) < 0 ? $document.find(settings.container) : $(settings.container);
23582
- } else {
23583
- $container = $module.offsetParent();
23584
- }
23716
+ $container = settings.container ? contextCheck(settings.container, window) : $module.offsetParent();
23585
23717
  },
23586
23718
 
23587
23719
  determineContext: function () {
23588
- if (settings.context) {
23589
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context);
23590
- } else {
23591
- $context = $container;
23592
- }
23720
+ $context = settings.context ? contextCheck(settings.context, window) : $container;
23593
23721
  if ($context.length === 0) {
23594
23722
  module.error(error.invalidContext, settings.context, $module);
23595
23723
  }
@@ -24205,9 +24333,6 @@
24205
24333
  totalTime += data['Execution Time'];
24206
24334
  });
24207
24335
  title += ' ' + totalTime + 'ms';
24208
- if (moduleSelector) {
24209
- title += ' \'' + moduleSelector + '\'';
24210
- }
24211
24336
  if (performance.length > 0) {
24212
24337
  console.groupCollapsed(title);
24213
24338
  if (console.table) {
@@ -24364,7 +24489,7 @@
24364
24489
  })(jQuery, window, document);
24365
24490
 
24366
24491
  /*!
24367
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Tab
24492
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Tab
24368
24493
  * https://github.com/fomantic/Fomantic-UI/
24369
24494
  *
24370
24495
  *
@@ -24395,14 +24520,25 @@
24395
24520
  ? $(window)
24396
24521
  : $(this),
24397
24522
  $document = $(document),
24398
- moduleSelector = $allModules.selector || '',
24399
24523
  time = Date.now(),
24400
24524
  performance = [],
24401
24525
 
24402
24526
  query = arguments[0],
24403
24527
  methodInvoked = typeof query === 'string',
24404
24528
  queryArguments = [].slice.call(arguments, 1),
24529
+ contextCheck = function (context, win) {
24530
+ var $context;
24531
+ if ([window, document].indexOf(context) >= 0) {
24532
+ $context = $(context);
24533
+ } else {
24534
+ $context = $(win.document).find(context);
24535
+ if ($context.length === 0) {
24536
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
24537
+ }
24538
+ }
24405
24539
 
24540
+ return $context;
24541
+ },
24406
24542
  initializedHistory = false,
24407
24543
  returnedValue
24408
24544
  ;
@@ -24517,7 +24653,7 @@
24517
24653
  $context = $reference.parent();
24518
24654
  module.verbose('Determined parent element for creating context', $context);
24519
24655
  } else if (settings.context) {
24520
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context);
24656
+ $context = contextCheck(settings.context, window);
24521
24657
  module.verbose('Using selector for tab context', settings.context, $context);
24522
24658
  } else {
24523
24659
  $context = $('body');
@@ -25153,9 +25289,6 @@
25153
25289
  totalTime += data['Execution Time'];
25154
25290
  });
25155
25291
  title += ' ' + totalTime + 'ms';
25156
- if (moduleSelector) {
25157
- title += ' \'' + moduleSelector + '\'';
25158
- }
25159
25292
  if (performance.length > 0) {
25160
25293
  console.groupCollapsed(title);
25161
25294
  if (console.table) {
@@ -25320,7 +25453,7 @@
25320
25453
  })(jQuery, window, document);
25321
25454
 
25322
25455
  /*!
25323
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Toast
25456
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Toast
25324
25457
  * https://github.com/fomantic/Fomantic-UI/
25325
25458
  *
25326
25459
  *
@@ -25343,7 +25476,7 @@
25343
25476
  $.fn.toast = function (parameters) {
25344
25477
  var
25345
25478
  $allModules = $(this),
25346
- moduleSelector = $allModules.selector || '',
25479
+ $body = $('body'),
25347
25480
 
25348
25481
  time = Date.now(),
25349
25482
  performance = [],
@@ -25351,6 +25484,19 @@
25351
25484
  query = arguments[0],
25352
25485
  methodInvoked = typeof query === 'string',
25353
25486
  queryArguments = [].slice.call(arguments, 1),
25487
+ contextCheck = function (context, win) {
25488
+ var $context;
25489
+ if ([window, document].indexOf(context) >= 0) {
25490
+ $context = $(context);
25491
+ } else {
25492
+ $context = $(win.document).find(context);
25493
+ if ($context.length === 0) {
25494
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
25495
+ }
25496
+ }
25497
+
25498
+ return $context;
25499
+ },
25354
25500
  returnedValue
25355
25501
  ;
25356
25502
  $allModules.each(function () {
@@ -25376,9 +25522,7 @@
25376
25522
  $progressBar,
25377
25523
  $animationObject,
25378
25524
  $close,
25379
- $context = settings.context
25380
- ? ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
25381
- : $('body'),
25525
+ $context = settings.context ? contextCheck(settings.context, window) : $body,
25382
25526
 
25383
25527
  isToastComponent = $module.hasClass('toast') || $module.hasClass('message') || $module.hasClass('card'),
25384
25528
 
@@ -25427,11 +25571,11 @@
25427
25571
  if ($toastBox) {
25428
25572
  module.debug('Removing toast', $toastBox);
25429
25573
  module.unbind.events();
25574
+ settings.onRemove.call($toastBox, element);
25430
25575
  $toastBox.remove();
25431
25576
  $toastBox = undefined;
25432
25577
  $toast = undefined;
25433
25578
  $animationObject = undefined;
25434
- settings.onRemove.call($toastBox, element);
25435
25579
  $progress = undefined;
25436
25580
  $progressBar = undefined;
25437
25581
  $close = undefined;
@@ -26025,9 +26169,6 @@
26025
26169
  totalTime += data['Execution Time'];
26026
26170
  });
26027
26171
  title += ' ' + totalTime + 'ms';
26028
- if (moduleSelector) {
26029
- title += ' \'' + moduleSelector + '\'';
26030
- }
26031
26172
  if (performance.length > 0) {
26032
26173
  console.groupCollapsed(title);
26033
26174
  if (console.table) {
@@ -26273,7 +26414,7 @@
26273
26414
  })(jQuery, window, document);
26274
26415
 
26275
26416
  /*!
26276
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Transition
26417
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Transition
26277
26418
  * https://github.com/fomantic/Fomantic-UI/
26278
26419
  *
26279
26420
  *
@@ -26296,7 +26437,6 @@
26296
26437
  $.fn.transition = function () {
26297
26438
  var
26298
26439
  $allModules = $(this),
26299
- moduleSelector = $allModules.selector || '',
26300
26440
 
26301
26441
  time = Date.now(),
26302
26442
  performance = [],
@@ -27137,9 +27277,6 @@
27137
27277
  totalTime += data['Execution Time'];
27138
27278
  });
27139
27279
  title += ' ' + totalTime + 'ms';
27140
- if (moduleSelector) {
27141
- title += ' \'' + moduleSelector + '\'';
27142
- }
27143
27280
  if ($allModules.length > 1) {
27144
27281
  title += ' (' + $allModules.length + ')';
27145
27282
  }
@@ -27308,7 +27445,7 @@
27308
27445
  })(jQuery, window, document);
27309
27446
 
27310
27447
  /*!
27311
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - API
27448
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - API
27312
27449
  * https://github.com/fomantic/Fomantic-UI/
27313
27450
  *
27314
27451
  *
@@ -27338,14 +27475,25 @@
27338
27475
  $allModules = isFunction(this)
27339
27476
  ? $(window)
27340
27477
  : $(this),
27341
- moduleSelector = $allModules.selector || '',
27342
27478
  time = Date.now(),
27343
27479
  performance = [],
27344
27480
 
27345
27481
  query = arguments[0],
27346
27482
  methodInvoked = typeof query === 'string',
27347
27483
  queryArguments = [].slice.call(arguments, 1),
27484
+ contextCheck = function (context, win) {
27485
+ var $context;
27486
+ if ([window, document].indexOf(context) >= 0) {
27487
+ $context = $(context);
27488
+ } else {
27489
+ $context = $(win.document).find(context);
27490
+ if ($context.length === 0) {
27491
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
27492
+ }
27493
+ }
27348
27494
 
27495
+ return $context;
27496
+ },
27349
27497
  returnedValue
27350
27498
  ;
27351
27499
 
@@ -27371,9 +27519,7 @@
27371
27519
  $form = $module.closest(selector.form),
27372
27520
 
27373
27521
  // context used for state
27374
- $context = settings.stateContext
27375
- ? ([window, document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
27376
- : $module,
27522
+ $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module,
27377
27523
 
27378
27524
  // request details
27379
27525
  ajaxSettings,
@@ -28283,9 +28429,6 @@
28283
28429
  totalTime += data['Execution Time'];
28284
28430
  });
28285
28431
  title += ' ' + totalTime + 'ms';
28286
- if (moduleSelector) {
28287
- title += ' \'' + moduleSelector + '\'';
28288
- }
28289
28432
  if (performance.length > 0) {
28290
28433
  console.groupCollapsed(title);
28291
28434
  if (console.table) {
@@ -28523,7 +28666,7 @@
28523
28666
  })(jQuery, window, document);
28524
28667
 
28525
28668
  /*!
28526
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - State
28669
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - State
28527
28670
  * https://github.com/fomantic/Fomantic-UI/
28528
28671
  *
28529
28672
  *
@@ -28547,15 +28690,25 @@
28547
28690
  var
28548
28691
  $allModules = $(this),
28549
28692
 
28550
- moduleSelector = $allModules.selector || '',
28551
-
28552
28693
  time = Date.now(),
28553
28694
  performance = [],
28554
28695
 
28555
28696
  query = arguments[0],
28556
28697
  methodInvoked = typeof query === 'string',
28557
28698
  queryArguments = [].slice.call(arguments, 1),
28699
+ contextCheck = function (context, win) {
28700
+ var $context;
28701
+ if ([window, document].indexOf(context) >= 0) {
28702
+ $context = $(context);
28703
+ } else {
28704
+ $context = $(win.document).find(context);
28705
+ if ($context.length === 0) {
28706
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
28707
+ }
28708
+ }
28558
28709
 
28710
+ return $context;
28711
+ },
28559
28712
  returnedValue
28560
28713
  ;
28561
28714
  $allModules.each(function () {
@@ -28575,6 +28728,7 @@
28575
28728
  moduleNamespace = namespace + '-module',
28576
28729
 
28577
28730
  $module = $(this),
28731
+ $context = settings.context ? contextCheck(settings.context, window) : $module,
28578
28732
 
28579
28733
  element = this,
28580
28734
  instance = $module.data(moduleNamespace),
@@ -28592,19 +28746,11 @@
28592
28746
  }
28593
28747
 
28594
28748
  // bind events with delegated events
28595
- if (settings.context && moduleSelector !== '') {
28596
- ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
28597
- .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
28598
- .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
28599
- .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
28600
- ;
28601
- } else {
28602
- $module
28603
- .on('mouseenter' + eventNamespace, module.change.text)
28604
- .on('mouseleave' + eventNamespace, module.reset.text)
28605
- .on('click' + eventNamespace, module.toggle.state)
28606
- ;
28607
- }
28749
+ $context
28750
+ .on('mouseenter' + eventNamespace, module.change.text)
28751
+ .on('mouseleave' + eventNamespace, module.reset.text)
28752
+ .on('click' + eventNamespace, module.toggle.state)
28753
+ ;
28608
28754
  module.instantiate();
28609
28755
  },
28610
28756
 
@@ -28618,8 +28764,11 @@
28618
28764
 
28619
28765
  destroy: function () {
28620
28766
  module.verbose('Destroying previous module', instance);
28621
- $module
28767
+ $context
28622
28768
  .off(eventNamespace)
28769
+ ;
28770
+ $module
28771
+ .removeData(metadata.storedText)
28623
28772
  .removeData(moduleNamespace)
28624
28773
  ;
28625
28774
  },
@@ -29013,9 +29162,6 @@
29013
29162
  totalTime += data['Execution Time'];
29014
29163
  });
29015
29164
  title += ' ' + totalTime + 'ms';
29016
- if (moduleSelector) {
29017
- title += ' \'' + moduleSelector + '\'';
29018
- }
29019
29165
  if (performance.length > 0) {
29020
29166
  console.groupCollapsed(title);
29021
29167
  if (console.table) {
@@ -29216,7 +29362,7 @@
29216
29362
  })(jQuery, window, document);
29217
29363
 
29218
29364
  /*!
29219
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Visibility
29365
+ * # Fomantic-UI 2.9.3-beta.11+980ea5e - Visibility
29220
29366
  * https://github.com/fomantic/Fomantic-UI/
29221
29367
  *
29222
29368
  *
@@ -29239,7 +29385,6 @@
29239
29385
  $.fn.visibility = function (parameters) {
29240
29386
  var
29241
29387
  $allModules = $(this),
29242
- moduleSelector = $allModules.selector || '',
29243
29388
 
29244
29389
  time = Date.now(),
29245
29390
  performance = [],
@@ -29247,6 +29392,19 @@
29247
29392
  query = arguments[0],
29248
29393
  methodInvoked = typeof query === 'string',
29249
29394
  queryArguments = [].slice.call(arguments, 1),
29395
+ contextCheck = function (context, win) {
29396
+ var $context;
29397
+ if ([window, document].indexOf(context) >= 0) {
29398
+ $context = $(context);
29399
+ } else {
29400
+ $context = $(win.document).find(context);
29401
+ if ($context.length === 0) {
29402
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
29403
+ }
29404
+ }
29405
+
29406
+ return $context;
29407
+ },
29250
29408
  returnedValue,
29251
29409
 
29252
29410
  moduleCount = $allModules.length,
@@ -29270,7 +29428,7 @@
29270
29428
  $window = $(window),
29271
29429
 
29272
29430
  $module = $(this),
29273
- $context = [window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
29431
+ $context = contextCheck(settings.context, window),
29274
29432
 
29275
29433
  $placeholder,
29276
29434
 
@@ -30306,9 +30464,6 @@
30306
30464
  totalTime += data['Execution Time'];
30307
30465
  });
30308
30466
  title += ' ' + totalTime + 'ms';
30309
- if (moduleSelector) {
30310
- title += ' \'' + moduleSelector + '\'';
30311
- }
30312
30467
  if (performance.length > 0) {
30313
30468
  console.groupCollapsed(title);
30314
30469
  if (console.table) {