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

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 (243) 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 +36 -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 +1 -1
  76. package/dist/components/menu.min.css +1 -1
  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 +1 -5
  109. package/dist/components/search.min.css +1 -1
  110. package/dist/components/search.min.js +2 -2
  111. package/dist/components/segment.css +3 -2
  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 +1 -1
  148. package/dist/components/toast.js +17 -9
  149. package/dist/components/toast.min.css +1 -1
  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 +203 -108
  158. package/dist/semantic.js +435 -281
  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 +24 -5
  168. package/src/definitions/collections/grid.less +2 -1
  169. package/src/definitions/collections/menu.less +2 -1
  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 +4 -2
  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 +0 -4
  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 +2 -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/modules/dropdown.variables +3 -0
  242. package/src/themes/default/modules/modal.variables +1 -0
  243. package/src/themes/default/modules/popup.variables +3 -1
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.10+11b4099
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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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.10+11b4099 - 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 = [],
@@ -21177,9 +21300,6 @@
21177
21300
  totalTime += data['Execution Time'];
21178
21301
  });
21179
21302
  title += ' ' + totalTime + 'ms';
21180
- if (moduleSelector) {
21181
- title += ' \'' + moduleSelector + '\'';
21182
- }
21183
21303
  if ($allModules.length > 1) {
21184
21304
  title += ' (' + $allModules.length + ')';
21185
21305
  }
@@ -21573,7 +21693,7 @@
21573
21693
  })(jQuery, window, document);
21574
21694
 
21575
21695
  /*!
21576
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Shape
21696
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Shape
21577
21697
  * https://github.com/fomantic/Fomantic-UI/
21578
21698
  *
21579
21699
  *
@@ -21609,7 +21729,6 @@
21609
21729
 
21610
21730
  $allModules.each(function () {
21611
21731
  var
21612
- moduleSelector = $allModules.selector || '',
21613
21732
  settings = $.isPlainObject(parameters)
21614
21733
  ? $.extend(true, {}, $.fn.shape.settings, parameters)
21615
21734
  : $.extend({}, $.fn.shape.settings),
@@ -22211,9 +22330,6 @@
22211
22330
  totalTime += data['Execution Time'];
22212
22331
  });
22213
22332
  title += ' ' + totalTime + 'ms';
22214
- if (moduleSelector) {
22215
- title += ' \'' + moduleSelector + '\'';
22216
- }
22217
22333
  if ($allModules.length > 1) {
22218
22334
  title += ' (' + $allModules.length + ')';
22219
22335
  }
@@ -22373,7 +22489,7 @@
22373
22489
  })(jQuery, window, document);
22374
22490
 
22375
22491
  /*!
22376
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Sidebar
22492
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Sidebar
22377
22493
  * https://github.com/fomantic/Fomantic-UI/
22378
22494
  *
22379
22495
  *
@@ -22402,15 +22518,25 @@
22402
22518
  $html = $('html'),
22403
22519
  $head = $('head'),
22404
22520
 
22405
- moduleSelector = $allModules.selector || '',
22406
-
22407
22521
  time = Date.now(),
22408
22522
  performance = [],
22409
22523
 
22410
22524
  query = arguments[0],
22411
22525
  methodInvoked = typeof query === 'string',
22412
22526
  queryArguments = [].slice.call(arguments, 1),
22527
+ contextCheck = function (context, win) {
22528
+ var $context;
22529
+ if ([window, document].indexOf(context) >= 0) {
22530
+ $context = $body;
22531
+ } else {
22532
+ $context = $(win.document).find(context);
22533
+ if ($context.length === 0) {
22534
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
22535
+ }
22536
+ }
22413
22537
 
22538
+ return $context;
22539
+ },
22414
22540
  returnedValue;
22415
22541
 
22416
22542
  $allModules.each(function () {
@@ -22429,7 +22555,7 @@
22429
22555
  moduleNamespace = 'module-' + namespace,
22430
22556
 
22431
22557
  $module = $(this),
22432
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body,
22558
+ $context = contextCheck(settings.context, window),
22433
22559
  isBody = $context[0] === $body[0],
22434
22560
 
22435
22561
  $sidebars = $module.children(selector.sidebar),
@@ -22651,7 +22777,7 @@
22651
22777
 
22652
22778
  refresh: function () {
22653
22779
  module.verbose('Refreshing selector cache');
22654
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body;
22780
+ $context = contextCheck(settings.context, window);
22655
22781
  module.refreshSidebars();
22656
22782
  $pusher = $context.children(selector.pusher);
22657
22783
  $fixed = $context.children(selector.fixed);
@@ -23275,9 +23401,6 @@
23275
23401
  totalTime += data['Execution Time'];
23276
23402
  });
23277
23403
  title += ' ' + totalTime + 'ms';
23278
- if (moduleSelector) {
23279
- title += ' \'' + moduleSelector + '\'';
23280
- }
23281
23404
  if (performance.length > 0) {
23282
23405
  console.groupCollapsed(title);
23283
23406
  if (console.table) {
@@ -23449,7 +23572,7 @@
23449
23572
  })(jQuery, window, document);
23450
23573
 
23451
23574
  /*!
23452
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Sticky
23575
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Sticky
23453
23576
  * https://github.com/fomantic/Fomantic-UI/
23454
23577
  *
23455
23578
  *
@@ -23473,7 +23596,6 @@
23473
23596
  var
23474
23597
  $allModules = $(this),
23475
23598
  $document = $(document),
23476
- moduleSelector = $allModules.selector || '',
23477
23599
 
23478
23600
  time = Date.now(),
23479
23601
  performance = [],
@@ -23481,6 +23603,19 @@
23481
23603
  query = arguments[0],
23482
23604
  methodInvoked = typeof query === 'string',
23483
23605
  queryArguments = [].slice.call(arguments, 1),
23606
+ contextCheck = function (context, win) {
23607
+ var $context;
23608
+ if ([window, document].indexOf(context) >= 0) {
23609
+ $context = $(context);
23610
+ } else {
23611
+ $context = $(win.document).find(context);
23612
+ if ($context.length === 0) {
23613
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
23614
+ }
23615
+ }
23616
+
23617
+ return $context;
23618
+ },
23484
23619
  returnedValue
23485
23620
  ;
23486
23621
 
@@ -23499,7 +23634,7 @@
23499
23634
 
23500
23635
  $module = $(this),
23501
23636
  $window = $(window),
23502
- $scroll = [window, document].indexOf(settings.scrollContext) < 0 ? $document.find(settings.scrollContext) : $(settings.scrollContext),
23637
+ $scroll = contextCheck(settings.scrollContext, window),
23503
23638
  $container,
23504
23639
  $context,
23505
23640
 
@@ -23577,19 +23712,11 @@
23577
23712
  },
23578
23713
 
23579
23714
  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
- }
23715
+ $container = settings.container ? contextCheck(settings.container, window) : $module.offsetParent();
23585
23716
  },
23586
23717
 
23587
23718
  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
- }
23719
+ $context = settings.context ? contextCheck(settings.context, window) : $container;
23593
23720
  if ($context.length === 0) {
23594
23721
  module.error(error.invalidContext, settings.context, $module);
23595
23722
  }
@@ -24205,9 +24332,6 @@
24205
24332
  totalTime += data['Execution Time'];
24206
24333
  });
24207
24334
  title += ' ' + totalTime + 'ms';
24208
- if (moduleSelector) {
24209
- title += ' \'' + moduleSelector + '\'';
24210
- }
24211
24335
  if (performance.length > 0) {
24212
24336
  console.groupCollapsed(title);
24213
24337
  if (console.table) {
@@ -24364,7 +24488,7 @@
24364
24488
  })(jQuery, window, document);
24365
24489
 
24366
24490
  /*!
24367
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Tab
24491
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Tab
24368
24492
  * https://github.com/fomantic/Fomantic-UI/
24369
24493
  *
24370
24494
  *
@@ -24395,14 +24519,25 @@
24395
24519
  ? $(window)
24396
24520
  : $(this),
24397
24521
  $document = $(document),
24398
- moduleSelector = $allModules.selector || '',
24399
24522
  time = Date.now(),
24400
24523
  performance = [],
24401
24524
 
24402
24525
  query = arguments[0],
24403
24526
  methodInvoked = typeof query === 'string',
24404
24527
  queryArguments = [].slice.call(arguments, 1),
24528
+ contextCheck = function (context, win) {
24529
+ var $context;
24530
+ if ([window, document].indexOf(context) >= 0) {
24531
+ $context = $(context);
24532
+ } else {
24533
+ $context = $(win.document).find(context);
24534
+ if ($context.length === 0) {
24535
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
24536
+ }
24537
+ }
24405
24538
 
24539
+ return $context;
24540
+ },
24406
24541
  initializedHistory = false,
24407
24542
  returnedValue
24408
24543
  ;
@@ -24517,7 +24652,7 @@
24517
24652
  $context = $reference.parent();
24518
24653
  module.verbose('Determined parent element for creating context', $context);
24519
24654
  } else if (settings.context) {
24520
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context);
24655
+ $context = contextCheck(settings.context, window);
24521
24656
  module.verbose('Using selector for tab context', settings.context, $context);
24522
24657
  } else {
24523
24658
  $context = $('body');
@@ -25153,9 +25288,6 @@
25153
25288
  totalTime += data['Execution Time'];
25154
25289
  });
25155
25290
  title += ' ' + totalTime + 'ms';
25156
- if (moduleSelector) {
25157
- title += ' \'' + moduleSelector + '\'';
25158
- }
25159
25291
  if (performance.length > 0) {
25160
25292
  console.groupCollapsed(title);
25161
25293
  if (console.table) {
@@ -25320,7 +25452,7 @@
25320
25452
  })(jQuery, window, document);
25321
25453
 
25322
25454
  /*!
25323
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Toast
25455
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Toast
25324
25456
  * https://github.com/fomantic/Fomantic-UI/
25325
25457
  *
25326
25458
  *
@@ -25343,7 +25475,7 @@
25343
25475
  $.fn.toast = function (parameters) {
25344
25476
  var
25345
25477
  $allModules = $(this),
25346
- moduleSelector = $allModules.selector || '',
25478
+ $body = $('body'),
25347
25479
 
25348
25480
  time = Date.now(),
25349
25481
  performance = [],
@@ -25351,6 +25483,19 @@
25351
25483
  query = arguments[0],
25352
25484
  methodInvoked = typeof query === 'string',
25353
25485
  queryArguments = [].slice.call(arguments, 1),
25486
+ contextCheck = function (context, win) {
25487
+ var $context;
25488
+ if ([window, document].indexOf(context) >= 0) {
25489
+ $context = $(context);
25490
+ } else {
25491
+ $context = $(win.document).find(context);
25492
+ if ($context.length === 0) {
25493
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
25494
+ }
25495
+ }
25496
+
25497
+ return $context;
25498
+ },
25354
25499
  returnedValue
25355
25500
  ;
25356
25501
  $allModules.each(function () {
@@ -25376,9 +25521,7 @@
25376
25521
  $progressBar,
25377
25522
  $animationObject,
25378
25523
  $close,
25379
- $context = settings.context
25380
- ? ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
25381
- : $('body'),
25524
+ $context = settings.context ? contextCheck(settings.context, window) : $body,
25382
25525
 
25383
25526
  isToastComponent = $module.hasClass('toast') || $module.hasClass('message') || $module.hasClass('card'),
25384
25527
 
@@ -25427,11 +25570,11 @@
25427
25570
  if ($toastBox) {
25428
25571
  module.debug('Removing toast', $toastBox);
25429
25572
  module.unbind.events();
25573
+ settings.onRemove.call($toastBox, element);
25430
25574
  $toastBox.remove();
25431
25575
  $toastBox = undefined;
25432
25576
  $toast = undefined;
25433
25577
  $animationObject = undefined;
25434
- settings.onRemove.call($toastBox, element);
25435
25578
  $progress = undefined;
25436
25579
  $progressBar = undefined;
25437
25580
  $close = undefined;
@@ -26025,9 +26168,6 @@
26025
26168
  totalTime += data['Execution Time'];
26026
26169
  });
26027
26170
  title += ' ' + totalTime + 'ms';
26028
- if (moduleSelector) {
26029
- title += ' \'' + moduleSelector + '\'';
26030
- }
26031
26171
  if (performance.length > 0) {
26032
26172
  console.groupCollapsed(title);
26033
26173
  if (console.table) {
@@ -26273,7 +26413,7 @@
26273
26413
  })(jQuery, window, document);
26274
26414
 
26275
26415
  /*!
26276
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Transition
26416
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Transition
26277
26417
  * https://github.com/fomantic/Fomantic-UI/
26278
26418
  *
26279
26419
  *
@@ -26296,7 +26436,6 @@
26296
26436
  $.fn.transition = function () {
26297
26437
  var
26298
26438
  $allModules = $(this),
26299
- moduleSelector = $allModules.selector || '',
26300
26439
 
26301
26440
  time = Date.now(),
26302
26441
  performance = [],
@@ -27137,9 +27276,6 @@
27137
27276
  totalTime += data['Execution Time'];
27138
27277
  });
27139
27278
  title += ' ' + totalTime + 'ms';
27140
- if (moduleSelector) {
27141
- title += ' \'' + moduleSelector + '\'';
27142
- }
27143
27279
  if ($allModules.length > 1) {
27144
27280
  title += ' (' + $allModules.length + ')';
27145
27281
  }
@@ -27308,7 +27444,7 @@
27308
27444
  })(jQuery, window, document);
27309
27445
 
27310
27446
  /*!
27311
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - API
27447
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - API
27312
27448
  * https://github.com/fomantic/Fomantic-UI/
27313
27449
  *
27314
27450
  *
@@ -27338,14 +27474,25 @@
27338
27474
  $allModules = isFunction(this)
27339
27475
  ? $(window)
27340
27476
  : $(this),
27341
- moduleSelector = $allModules.selector || '',
27342
27477
  time = Date.now(),
27343
27478
  performance = [],
27344
27479
 
27345
27480
  query = arguments[0],
27346
27481
  methodInvoked = typeof query === 'string',
27347
27482
  queryArguments = [].slice.call(arguments, 1),
27483
+ contextCheck = function (context, win) {
27484
+ var $context;
27485
+ if ([window, document].indexOf(context) >= 0) {
27486
+ $context = $(context);
27487
+ } else {
27488
+ $context = $(win.document).find(context);
27489
+ if ($context.length === 0) {
27490
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
27491
+ }
27492
+ }
27348
27493
 
27494
+ return $context;
27495
+ },
27349
27496
  returnedValue
27350
27497
  ;
27351
27498
 
@@ -27371,9 +27518,7 @@
27371
27518
  $form = $module.closest(selector.form),
27372
27519
 
27373
27520
  // context used for state
27374
- $context = settings.stateContext
27375
- ? ([window, document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
27376
- : $module,
27521
+ $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module,
27377
27522
 
27378
27523
  // request details
27379
27524
  ajaxSettings,
@@ -28283,9 +28428,6 @@
28283
28428
  totalTime += data['Execution Time'];
28284
28429
  });
28285
28430
  title += ' ' + totalTime + 'ms';
28286
- if (moduleSelector) {
28287
- title += ' \'' + moduleSelector + '\'';
28288
- }
28289
28431
  if (performance.length > 0) {
28290
28432
  console.groupCollapsed(title);
28291
28433
  if (console.table) {
@@ -28523,7 +28665,7 @@
28523
28665
  })(jQuery, window, document);
28524
28666
 
28525
28667
  /*!
28526
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - State
28668
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - State
28527
28669
  * https://github.com/fomantic/Fomantic-UI/
28528
28670
  *
28529
28671
  *
@@ -28547,15 +28689,25 @@
28547
28689
  var
28548
28690
  $allModules = $(this),
28549
28691
 
28550
- moduleSelector = $allModules.selector || '',
28551
-
28552
28692
  time = Date.now(),
28553
28693
  performance = [],
28554
28694
 
28555
28695
  query = arguments[0],
28556
28696
  methodInvoked = typeof query === 'string',
28557
28697
  queryArguments = [].slice.call(arguments, 1),
28698
+ contextCheck = function (context, win) {
28699
+ var $context;
28700
+ if ([window, document].indexOf(context) >= 0) {
28701
+ $context = $(context);
28702
+ } else {
28703
+ $context = $(win.document).find(context);
28704
+ if ($context.length === 0) {
28705
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
28706
+ }
28707
+ }
28558
28708
 
28709
+ return $context;
28710
+ },
28559
28711
  returnedValue
28560
28712
  ;
28561
28713
  $allModules.each(function () {
@@ -28575,6 +28727,7 @@
28575
28727
  moduleNamespace = namespace + '-module',
28576
28728
 
28577
28729
  $module = $(this),
28730
+ $context = settings.context ? contextCheck(settings.context, window) : $module,
28578
28731
 
28579
28732
  element = this,
28580
28733
  instance = $module.data(moduleNamespace),
@@ -28592,19 +28745,11 @@
28592
28745
  }
28593
28746
 
28594
28747
  // 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
- }
28748
+ $context
28749
+ .on('mouseenter' + eventNamespace, module.change.text)
28750
+ .on('mouseleave' + eventNamespace, module.reset.text)
28751
+ .on('click' + eventNamespace, module.toggle.state)
28752
+ ;
28608
28753
  module.instantiate();
28609
28754
  },
28610
28755
 
@@ -28618,8 +28763,11 @@
28618
28763
 
28619
28764
  destroy: function () {
28620
28765
  module.verbose('Destroying previous module', instance);
28621
- $module
28766
+ $context
28622
28767
  .off(eventNamespace)
28768
+ ;
28769
+ $module
28770
+ .removeData(metadata.storedText)
28623
28771
  .removeData(moduleNamespace)
28624
28772
  ;
28625
28773
  },
@@ -29013,9 +29161,6 @@
29013
29161
  totalTime += data['Execution Time'];
29014
29162
  });
29015
29163
  title += ' ' + totalTime + 'ms';
29016
- if (moduleSelector) {
29017
- title += ' \'' + moduleSelector + '\'';
29018
- }
29019
29164
  if (performance.length > 0) {
29020
29165
  console.groupCollapsed(title);
29021
29166
  if (console.table) {
@@ -29216,7 +29361,7 @@
29216
29361
  })(jQuery, window, document);
29217
29362
 
29218
29363
  /*!
29219
- * # Fomantic-UI 2.9.3-beta.1+d8dd970 - Visibility
29364
+ * # Fomantic-UI 2.9.3-beta.10+11b4099 - Visibility
29220
29365
  * https://github.com/fomantic/Fomantic-UI/
29221
29366
  *
29222
29367
  *
@@ -29239,7 +29384,6 @@
29239
29384
  $.fn.visibility = function (parameters) {
29240
29385
  var
29241
29386
  $allModules = $(this),
29242
- moduleSelector = $allModules.selector || '',
29243
29387
 
29244
29388
  time = Date.now(),
29245
29389
  performance = [],
@@ -29247,6 +29391,19 @@
29247
29391
  query = arguments[0],
29248
29392
  methodInvoked = typeof query === 'string',
29249
29393
  queryArguments = [].slice.call(arguments, 1),
29394
+ contextCheck = function (context, win) {
29395
+ var $context;
29396
+ if ([window, document].indexOf(context) >= 0) {
29397
+ $context = $(context);
29398
+ } else {
29399
+ $context = $(win.document).find(context);
29400
+ if ($context.length === 0) {
29401
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
29402
+ }
29403
+ }
29404
+
29405
+ return $context;
29406
+ },
29250
29407
  returnedValue,
29251
29408
 
29252
29409
  moduleCount = $allModules.length,
@@ -29270,7 +29427,7 @@
29270
29427
  $window = $(window),
29271
29428
 
29272
29429
  $module = $(this),
29273
- $context = [window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
29430
+ $context = contextCheck(settings.context, window),
29274
29431
 
29275
29432
  $placeholder,
29276
29433
 
@@ -30306,9 +30463,6 @@
30306
30463
  totalTime += data['Execution Time'];
30307
30464
  });
30308
30465
  title += ' ' + totalTime + 'ms';
30309
- if (moduleSelector) {
30310
- title += ' \'' + moduleSelector + '\'';
30311
- }
30312
30466
  if (performance.length > 0) {
30313
30467
  console.groupCollapsed(title);
30314
30468
  if (console.table) {