fomantic-ui 2.9.3-beta.8 → 2.9.3

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 (290) hide show
  1. package/.all-contributorsrc +2 -2
  2. package/.github/FUNDING.yml +1 -1
  3. package/.github/auto_assign.yml +1 -1
  4. package/.github/workflows/ci.yml +5 -5
  5. package/.github/workflows/nightly.yml +1 -1
  6. package/.github/workflows/release.yml +1 -1
  7. package/CHANGELOG.md +131 -0
  8. package/CONTRIBUTORS.md +1 -1
  9. package/README.md +5 -2
  10. package/SECURITY.md +2 -1
  11. package/dist/components/accordion.css +1 -1
  12. package/dist/components/accordion.js +2 -2
  13. package/dist/components/accordion.min.css +1 -1
  14. package/dist/components/accordion.min.js +2 -2
  15. package/dist/components/ad.css +1 -1
  16. package/dist/components/ad.min.css +1 -1
  17. package/dist/components/api.js +10 -9
  18. package/dist/components/api.min.js +2 -2
  19. package/dist/components/breadcrumb.css +1 -1
  20. package/dist/components/breadcrumb.min.css +1 -1
  21. package/dist/components/button.css +2 -2
  22. package/dist/components/button.min.css +2 -2
  23. package/dist/components/calendar.css +140 -3
  24. package/dist/components/calendar.js +2 -2
  25. package/dist/components/calendar.min.css +2 -2
  26. package/dist/components/calendar.min.js +2 -2
  27. package/dist/components/card.css +1 -1
  28. package/dist/components/card.min.css +1 -1
  29. package/dist/components/checkbox.css +50 -6
  30. package/dist/components/checkbox.js +5 -3
  31. package/dist/components/checkbox.min.css +2 -2
  32. package/dist/components/checkbox.min.js +2 -2
  33. package/dist/components/comment.css +6 -1
  34. package/dist/components/comment.min.css +2 -2
  35. package/dist/components/container.css +62 -1
  36. package/dist/components/container.min.css +2 -2
  37. package/dist/components/dimmer.css +3 -3
  38. package/dist/components/dimmer.js +2 -2
  39. package/dist/components/dimmer.min.css +2 -2
  40. package/dist/components/dimmer.min.js +2 -2
  41. package/dist/components/divider.css +1 -1
  42. package/dist/components/divider.min.css +1 -1
  43. package/dist/components/dropdown.css +101 -25
  44. package/dist/components/dropdown.js +29 -21
  45. package/dist/components/dropdown.min.css +2 -2
  46. package/dist/components/dropdown.min.js +2 -2
  47. package/dist/components/embed.css +1 -1
  48. package/dist/components/embed.js +2 -2
  49. package/dist/components/embed.min.css +1 -1
  50. package/dist/components/embed.min.js +2 -2
  51. package/dist/components/emoji.css +697 -249
  52. package/dist/components/emoji.min.css +2 -2
  53. package/dist/components/feed.css +486 -5
  54. package/dist/components/feed.min.css +2 -2
  55. package/dist/components/flag.css +3 -2
  56. package/dist/components/flag.min.css +2 -2
  57. package/dist/components/flyout.css +1 -1
  58. package/dist/components/flyout.js +2 -33
  59. package/dist/components/flyout.min.css +1 -1
  60. package/dist/components/flyout.min.js +2 -2
  61. package/dist/components/form.css +34 -32
  62. package/dist/components/form.js +72 -31
  63. package/dist/components/form.min.css +2 -2
  64. package/dist/components/form.min.js +2 -2
  65. package/dist/components/grid.css +107 -107
  66. package/dist/components/grid.min.css +2 -2
  67. package/dist/components/header.css +1 -1
  68. package/dist/components/header.min.css +1 -1
  69. package/dist/components/icon.css +62 -62
  70. package/dist/components/icon.min.css +2 -2
  71. package/dist/components/image.css +1 -1
  72. package/dist/components/image.min.css +1 -1
  73. package/dist/components/input.css +3 -27
  74. package/dist/components/input.min.css +2 -2
  75. package/dist/components/item.css +6 -1
  76. package/dist/components/item.min.css +2 -2
  77. package/dist/components/label.css +21 -2
  78. package/dist/components/label.min.css +2 -2
  79. package/dist/components/list.css +13 -13
  80. package/dist/components/list.min.css +2 -2
  81. package/dist/components/loader.css +282 -282
  82. package/dist/components/loader.min.css +2 -2
  83. package/dist/components/menu.css +13 -7
  84. package/dist/components/menu.min.css +2 -2
  85. package/dist/components/message.css +1 -1
  86. package/dist/components/message.min.css +1 -1
  87. package/dist/components/modal.css +5 -1
  88. package/dist/components/modal.js +3 -3
  89. package/dist/components/modal.min.css +2 -2
  90. package/dist/components/modal.min.js +2 -2
  91. package/dist/components/nag.css +1 -1
  92. package/dist/components/nag.js +3 -3
  93. package/dist/components/nag.min.css +1 -1
  94. package/dist/components/nag.min.js +2 -2
  95. package/dist/components/placeholder.css +1 -1
  96. package/dist/components/placeholder.min.css +1 -1
  97. package/dist/components/popup.css +3 -3
  98. package/dist/components/popup.js +11 -9
  99. package/dist/components/popup.min.css +2 -2
  100. package/dist/components/popup.min.js +2 -2
  101. package/dist/components/progress.css +1 -1
  102. package/dist/components/progress.js +2 -2
  103. package/dist/components/progress.min.css +1 -1
  104. package/dist/components/progress.min.js +2 -2
  105. package/dist/components/rail.css +1 -1
  106. package/dist/components/rail.min.css +1 -1
  107. package/dist/components/rating.css +1 -1
  108. package/dist/components/rating.js +2 -2
  109. package/dist/components/rating.min.css +1 -1
  110. package/dist/components/rating.min.js +2 -2
  111. package/dist/components/reset.css +1 -1
  112. package/dist/components/reset.min.css +1 -1
  113. package/dist/components/reveal.css +1 -1
  114. package/dist/components/reveal.min.css +1 -1
  115. package/dist/components/search.css +26 -1
  116. package/dist/components/search.js +5 -4
  117. package/dist/components/search.min.css +2 -2
  118. package/dist/components/search.min.js +2 -2
  119. package/dist/components/segment.css +159 -33
  120. package/dist/components/segment.min.css +2 -2
  121. package/dist/components/shape.css +1 -1
  122. package/dist/components/shape.js +2 -2
  123. package/dist/components/shape.min.css +1 -1
  124. package/dist/components/shape.min.js +2 -2
  125. package/dist/components/sidebar.css +1 -1
  126. package/dist/components/sidebar.js +2 -32
  127. package/dist/components/sidebar.min.css +1 -1
  128. package/dist/components/sidebar.min.js +2 -2
  129. package/dist/components/site.css +1 -1
  130. package/dist/components/site.js +2 -2
  131. package/dist/components/site.min.css +1 -1
  132. package/dist/components/site.min.js +2 -2
  133. package/dist/components/slider.css +1 -1
  134. package/dist/components/slider.js +126 -26
  135. package/dist/components/slider.min.css +1 -1
  136. package/dist/components/slider.min.js +2 -2
  137. package/dist/components/state.js +2 -2
  138. package/dist/components/state.min.js +2 -2
  139. package/dist/components/statistic.css +1 -1
  140. package/dist/components/statistic.min.css +1 -1
  141. package/dist/components/step.css +1 -1
  142. package/dist/components/step.min.css +1 -1
  143. package/dist/components/sticky.css +1 -1
  144. package/dist/components/sticky.js +2 -2
  145. package/dist/components/sticky.min.css +1 -1
  146. package/dist/components/sticky.min.js +2 -2
  147. package/dist/components/tab.css +1 -1
  148. package/dist/components/tab.js +6 -4
  149. package/dist/components/tab.min.css +1 -1
  150. package/dist/components/tab.min.js +2 -2
  151. package/dist/components/table.css +65 -1
  152. package/dist/components/table.min.css +2 -2
  153. package/dist/components/text.css +1 -1
  154. package/dist/components/text.min.css +1 -1
  155. package/dist/components/toast.css +6 -1
  156. package/dist/components/toast.js +2 -2
  157. package/dist/components/toast.min.css +2 -2
  158. package/dist/components/toast.min.js +2 -2
  159. package/dist/components/transition.css +1 -1
  160. package/dist/components/transition.js +3 -3
  161. package/dist/components/transition.min.css +1 -1
  162. package/dist/components/transition.min.js +2 -2
  163. package/dist/components/visibility.js +2 -2
  164. package/dist/components/visibility.min.js +2 -2
  165. package/dist/semantic.css +2822 -954
  166. package/dist/semantic.js +302 -206
  167. package/dist/semantic.min.css +2 -2
  168. package/dist/semantic.min.js +2 -2
  169. package/package.json +5 -4
  170. package/scripts/nightly-version.js +2 -2
  171. package/src/definitions/behaviors/api.js +9 -8
  172. package/src/definitions/behaviors/form.js +71 -30
  173. package/src/definitions/behaviors/state.js +1 -1
  174. package/src/definitions/behaviors/visibility.js +1 -1
  175. package/src/definitions/collections/form.less +9 -14
  176. package/src/definitions/collections/grid.less +106 -106
  177. package/src/definitions/collections/menu.less +29 -22
  178. package/src/definitions/collections/table.less +66 -0
  179. package/src/definitions/elements/button.less +1 -1
  180. package/src/definitions/elements/container.less +63 -0
  181. package/src/definitions/elements/icon.less +5 -5
  182. package/src/definitions/elements/input.less +2 -2
  183. package/src/definitions/elements/label.less +21 -1
  184. package/src/definitions/elements/list.less +13 -13
  185. package/src/definitions/elements/loader.less +71 -71
  186. package/src/definitions/elements/segment.less +110 -13
  187. package/src/definitions/globals/site.js +1 -1
  188. package/src/definitions/modules/accordion.js +1 -1
  189. package/src/definitions/modules/calendar.js +1 -1
  190. package/src/definitions/modules/calendar.less +40 -11
  191. package/src/definitions/modules/checkbox.js +4 -2
  192. package/src/definitions/modules/checkbox.less +61 -5
  193. package/src/definitions/modules/dimmer.js +1 -1
  194. package/src/definitions/modules/dimmer.less +2 -2
  195. package/src/definitions/modules/dropdown.js +28 -20
  196. package/src/definitions/modules/dropdown.less +124 -21
  197. package/src/definitions/modules/embed.js +1 -1
  198. package/src/definitions/modules/flyout.js +1 -32
  199. package/src/definitions/modules/modal.js +2 -2
  200. package/src/definitions/modules/modal.less +6 -0
  201. package/src/definitions/modules/nag.js +2 -2
  202. package/src/definitions/modules/popup.js +10 -8
  203. package/src/definitions/modules/popup.less +4 -4
  204. package/src/definitions/modules/progress.js +1 -1
  205. package/src/definitions/modules/rating.js +1 -1
  206. package/src/definitions/modules/search.js +4 -3
  207. package/src/definitions/modules/search.less +31 -0
  208. package/src/definitions/modules/shape.js +1 -1
  209. package/src/definitions/modules/sidebar.js +1 -31
  210. package/src/definitions/modules/slider.js +125 -25
  211. package/src/definitions/modules/sticky.js +1 -1
  212. package/src/definitions/modules/tab.js +5 -3
  213. package/src/definitions/modules/toast.js +1 -1
  214. package/src/definitions/modules/toast.less +7 -0
  215. package/src/definitions/modules/transition.js +2 -2
  216. package/src/definitions/views/comment.less +7 -0
  217. package/src/definitions/views/feed.less +238 -32
  218. package/src/definitions/views/item.less +7 -0
  219. package/src/theme.less +1 -1
  220. package/src/themes/amazon/elements/button.variables +5 -1
  221. package/src/themes/bootstrap3/elements/button.variables +5 -1
  222. package/src/themes/chubby/elements/header.variables +6 -1
  223. package/src/themes/default/collections/message.variables +3 -9
  224. package/src/themes/default/collections/table.variables +11 -8
  225. package/src/themes/default/elements/button.variables +8 -10
  226. package/src/themes/default/elements/container.variables +3 -0
  227. package/src/themes/default/elements/emoji.variables +179 -67
  228. package/src/themes/default/elements/flag.variables +1 -1
  229. package/src/themes/default/elements/label.variables +6 -1
  230. package/src/themes/default/elements/segment.variables +8 -0
  231. package/src/themes/default/globals/site.variables +362 -341
  232. package/src/themes/default/globals/variation.variables +24 -1
  233. package/src/themes/default/modules/calendar.variables +11 -0
  234. package/src/themes/default/modules/checkbox.variables +12 -0
  235. package/src/themes/default/modules/dropdown.variables +10 -4
  236. package/src/themes/default/modules/modal.variables +3 -0
  237. package/src/themes/default/modules/popup.variables +1 -1
  238. package/src/themes/default/modules/search.variables +3 -0
  239. package/src/themes/default/modules/toast.variables +6 -5
  240. package/src/themes/default/views/card.variables +4 -12
  241. package/src/themes/default/views/feed.variables +55 -1
  242. package/src/themes/default/views/item.variables +5 -5
  243. package/src/themes/flat/collections/form.variables +4 -4
  244. package/src/themes/flat/globals/site.variables +1 -1
  245. package/src/themes/github/elements/button.variables +5 -1
  246. package/src/themes/joypixels/elements/emoji.variables +182 -70
  247. package/src/themes/material/globals/site.variables +1 -1
  248. package/src/themes/twitter/elements/button.variables +5 -1
  249. package/src/themes/twitter/elements/emoji.variables +178 -66
  250. package/tasks/admin/components/create.js +1 -2
  251. package/tasks/admin/components/init.js +3 -4
  252. package/tasks/admin/components/update.js +2 -3
  253. package/tasks/admin/distributions/create.js +9 -5
  254. package/tasks/admin/distributions/init.js +3 -4
  255. package/tasks/admin/distributions/update.js +2 -3
  256. package/tasks/config/project/install.js +3 -0
  257. package/tasks/config/tasks.js +1 -8
  258. package/tasks/config/user.js +1 -1
  259. package/tasks/docs/build.js +2 -2
  260. package/tasks/docs/metadata.js +1 -1
  261. package/tasks/docs/serve.js +1 -1
  262. package/tasks/install.js +19 -10
  263. package/tasks/watch.js +1 -2
  264. package/types/fomantic-ui-accordion.d.ts +244 -0
  265. package/types/fomantic-ui-api.d.ts +555 -0
  266. package/types/fomantic-ui-calendar.d.ts +766 -0
  267. package/types/fomantic-ui-checkbox.d.ts +332 -0
  268. package/types/fomantic-ui-dimmer.d.ts +408 -0
  269. package/types/fomantic-ui-dropdown.d.ts +1183 -0
  270. package/types/fomantic-ui-embed.d.ts +326 -0
  271. package/types/fomantic-ui-flyout.d.ts +525 -0
  272. package/types/fomantic-ui-form.d.ts +651 -0
  273. package/types/fomantic-ui-modal.d.ts +471 -0
  274. package/types/fomantic-ui-nag.d.ts +270 -0
  275. package/types/fomantic-ui-popup.d.ts +523 -0
  276. package/types/fomantic-ui-progress.d.ts +459 -0
  277. package/types/fomantic-ui-rating.d.ts +187 -0
  278. package/types/fomantic-ui-search.d.ts +496 -0
  279. package/types/fomantic-ui-shape.d.ts +274 -0
  280. package/types/fomantic-ui-sidebar.d.ts +402 -0
  281. package/types/fomantic-ui-slider.d.ts +316 -0
  282. package/types/fomantic-ui-sticky.d.ts +215 -0
  283. package/types/fomantic-ui-tab.d.ts +361 -0
  284. package/types/fomantic-ui-tests.ts +25 -0
  285. package/types/fomantic-ui-toast.d.ts +514 -0
  286. package/types/fomantic-ui-transition.d.ts +355 -0
  287. package/types/fomantic-ui-visibility.d.ts +355 -0
  288. package/types/index.d.ts +63 -0
  289. package/types/tsconfig.json +23 -0
  290. package/types/tslint.json +1 -0
package/dist/semantic.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.3-beta.8+1d7449f
2
+ * # Fomantic UI - 2.9.3
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.8+1d7449f - Site
12
+ * # Fomantic-UI 2.9.3 - Site
13
13
  * https://github.com/fomantic/Fomantic-UI/
14
14
  *
15
15
  *
@@ -302,7 +302,7 @@
302
302
  });
303
303
  }
304
304
  clearTimeout(module.performance.timer);
305
- module.performance.timer = setTimeout(module.performance.display, 500);
305
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
306
306
  },
307
307
  display: function () {
308
308
  var
@@ -463,7 +463,7 @@
463
463
  })(jQuery, window, document);
464
464
 
465
465
  /*!
466
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Form Validation
466
+ * # Fomantic-UI 2.9.3 - Form Validation
467
467
  * https://github.com/fomantic/Fomantic-UI/
468
468
  *
469
469
  *
@@ -541,6 +541,7 @@
541
541
  initialize: function () {
542
542
  // settings grabbed at run time
543
543
  module.get.settings();
544
+ $module.addClass(className.initial);
544
545
  if (methodInvoked) {
545
546
  if (instance === undefined) {
546
547
  module.instantiate();
@@ -594,10 +595,13 @@
594
595
  module.bindEvents();
595
596
  },
596
597
 
597
- submit: function () {
598
+ submit: function (event) {
598
599
  module.verbose('Submitting form', $module);
599
600
  submitting = true;
600
601
  $module.trigger('submit');
602
+ if (event) {
603
+ event.preventDefault();
604
+ }
601
605
  },
602
606
 
603
607
  attachEvents: function (selector, action) {
@@ -623,6 +627,7 @@
623
627
  .on('click' + eventNamespace, selector.reset, module.reset)
624
628
  .on('click' + eventNamespace, selector.clear, module.clear)
625
629
  ;
630
+ $field.on('invalid' + eventNamespace, module.event.field.invalid);
626
631
  if (settings.keyboardShortcuts) {
627
632
  $module.on('keydown' + eventNamespace, selector.field, module.event.field.keydown);
628
633
  }
@@ -738,8 +743,12 @@
738
743
  var
739
744
  allValid = true
740
745
  ;
741
- $.each(validation, function (fieldName, field) {
742
- if (!module.validate.field(field, fieldName, true)) {
746
+ $field.each(function (index, el) {
747
+ var $el = $(el),
748
+ validation = module.get.validation($el) || {},
749
+ identifier = module.get.identifier(validation, $el)
750
+ ;
751
+ if (!module.validate.field(validation, identifier, true)) {
743
752
  allValid = false;
744
753
  }
745
754
  });
@@ -895,9 +904,8 @@
895
904
  if (!event.ctrlKey && key === keyCode.enter && isInput && !isInDropdown && !isCheckbox) {
896
905
  if (!keyHeldDown) {
897
906
  $field.one('keyup' + eventNamespace, module.event.field.keyup);
898
- module.submit();
907
+ module.submit(event);
899
908
  module.debug('Enter pressed on input submitting form');
900
- event.preventDefault();
901
909
  }
902
910
  keyHeldDown = true;
903
911
  }
@@ -905,15 +913,18 @@
905
913
  keyup: function () {
906
914
  keyHeldDown = false;
907
915
  },
916
+ invalid: function (event) {
917
+ event.preventDefault();
918
+ },
908
919
  blur: function (event) {
909
920
  var
910
921
  $field = $(this),
911
- $fieldGroup = $field.closest($group),
912
- validationRules = module.get.validation($field)
922
+ validationRules = module.get.validation($field) || {},
923
+ identifier = module.get.identifier(validationRules, $field)
913
924
  ;
914
- if (validationRules && (settings.on === 'blur' || ($fieldGroup.hasClass(className.error) && settings.revalidate))) {
925
+ if (settings.on === 'blur' || (!$module.hasClass(className.initial) && settings.revalidate)) {
915
926
  module.debug('Revalidating field', $field, validationRules);
916
- module.validate.field(validationRules);
927
+ module.validate.field(validationRules, identifier);
917
928
  if (!settings.inline) {
918
929
  module.validate.form(false, true);
919
930
  }
@@ -922,14 +933,14 @@
922
933
  change: function (event) {
923
934
  var
924
935
  $field = $(this),
925
- $fieldGroup = $field.closest($group),
926
- validationRules = module.get.validation($field)
936
+ validationRules = module.get.validation($field) || {},
937
+ identifier = module.get.identifier(validationRules, $field)
927
938
  ;
928
- if (validationRules && (settings.on === 'change' || ($fieldGroup.hasClass(className.error) && settings.revalidate))) {
939
+ if (settings.on === 'change' || (!$module.hasClass(className.initial) && settings.revalidate)) {
929
940
  clearTimeout(module.timer);
930
941
  module.timer = setTimeout(function () {
931
942
  module.debug('Revalidating field', $field, validationRules);
932
- module.validate.field(validationRules);
943
+ module.validate.field(validationRules, identifier);
933
944
  if (!settings.inline) {
934
945
  module.validate.form(false, true);
935
946
  }
@@ -995,6 +1006,9 @@
995
1006
 
996
1007
  return fullFields;
997
1008
  },
1009
+ identifier: function (validation, $el) {
1010
+ return validation.identifier || $el.attr('id') || $el.attr('name') || $el.data(metadata.validate);
1011
+ },
998
1012
  prompt: function (rule, field) {
999
1013
  var
1000
1014
  ruleName = module.get.ruleName(rule),
@@ -1361,7 +1375,8 @@
1361
1375
  $field = module.get.field(identifier),
1362
1376
  $fieldGroup = $field.closest($group),
1363
1377
  $prompt = $fieldGroup.children(selector.prompt),
1364
- promptExists = $prompt.length > 0
1378
+ promptExists = $prompt.length > 0,
1379
+ canTransition = settings.transition && module.can.useElement('transition')
1365
1380
  ;
1366
1381
  module.verbose('Adding field error state', identifier);
1367
1382
  if (!internal) {
@@ -1370,8 +1385,22 @@
1370
1385
  ;
1371
1386
  }
1372
1387
  if (settings.inline) {
1388
+ if (promptExists) {
1389
+ if (canTransition) {
1390
+ if ($prompt.transition('is animating')) {
1391
+ $prompt.transition('stop all');
1392
+ }
1393
+ } else if ($prompt.is(':animated')) {
1394
+ $prompt.stop(true, true);
1395
+ }
1396
+ $prompt = $fieldGroup.children(selector.prompt);
1397
+ promptExists = $prompt.length > 0;
1398
+ }
1373
1399
  if (!promptExists) {
1374
1400
  $prompt = $('<div/>').addClass(className.label);
1401
+ if (!canTransition) {
1402
+ $prompt.css('display', 'none');
1403
+ }
1375
1404
  $prompt
1376
1405
  .appendTo($fieldGroup)
1377
1406
  ;
@@ -1380,7 +1409,7 @@
1380
1409
  .html(settings.templates.prompt(errors))
1381
1410
  ;
1382
1411
  if (!promptExists) {
1383
- if (settings.transition && module.can.useElement('transition')) {
1412
+ if (canTransition) {
1384
1413
  module.verbose('Displaying error with css transition', settings.transition);
1385
1414
  $prompt.transition(settings.transition + ' in', settings.duration);
1386
1415
  } else {
@@ -1389,9 +1418,9 @@
1389
1418
  .fadeIn(settings.duration)
1390
1419
  ;
1391
1420
  }
1392
- } else {
1393
- module.verbose('Inline errors are disabled, no inline error added', identifier);
1394
1421
  }
1422
+ } else {
1423
+ module.verbose('Inline errors are disabled, no inline error added', identifier);
1395
1424
  }
1396
1425
  },
1397
1426
  errors: function (errors) {
@@ -1438,7 +1467,7 @@
1438
1467
  $message.empty();
1439
1468
  },
1440
1469
  states: function () {
1441
- $module.removeClass(className.error).removeClass(className.success);
1470
+ $module.removeClass(className.error).removeClass(className.success).addClass(className.initial);
1442
1471
  if (!settings.inline) {
1443
1472
  module.remove.errors();
1444
1473
  }
@@ -1675,7 +1704,7 @@
1675
1704
  return rule.type === 'empty';
1676
1705
  }) !== 0
1677
1706
  : false,
1678
- identifier = validation.identifier || $el.attr('id') || $el.attr('name') || $el.data(metadata.validate)
1707
+ identifier = module.get.identifier(validation, $el)
1679
1708
  ;
1680
1709
  if (isRequired && !isDisabled && !hasEmptyRule && identifier !== undefined) {
1681
1710
  if (isCheckbox) {
@@ -1707,7 +1736,7 @@
1707
1736
  if (keyHeldDown) {
1708
1737
  return false;
1709
1738
  }
1710
-
1739
+ $module.removeClass(className.initial);
1711
1740
  // reset errors
1712
1741
  formErrors = [];
1713
1742
  if (module.determine.isValid()) {
@@ -1779,13 +1808,25 @@
1779
1808
  ? module.get.field(field.depends)
1780
1809
  : false,
1781
1810
  fieldValid = true,
1782
- fieldErrors = []
1811
+ fieldErrors = [],
1812
+ isDisabled = $field.filter(':not(:disabled)').length === 0,
1813
+ validationMessage = $field[0].validationMessage,
1814
+ errorLimit
1783
1815
  ;
1784
1816
  if (!field.identifier) {
1785
1817
  module.debug('Using field name as identifier', identifier);
1786
1818
  field.identifier = identifier;
1787
1819
  }
1788
- var isDisabled = $field.filter(':not(:disabled)').length === 0;
1820
+ if (validationMessage) {
1821
+ module.debug('Field is natively invalid', identifier);
1822
+ fieldErrors.push(validationMessage);
1823
+ fieldValid = false;
1824
+ if (showErrors) {
1825
+ $field.closest($group).addClass(className.error);
1826
+ }
1827
+ } else if (showErrors) {
1828
+ $field.closest($group).removeClass(className.error);
1829
+ }
1789
1830
  if (isDisabled) {
1790
1831
  module.debug('Field is disabled. Skipping', identifier);
1791
1832
  } else if (field.optional && module.is.blank($field)) {
@@ -1793,11 +1834,9 @@
1793
1834
  } else if (field.depends && module.is.empty($dependsField)) {
1794
1835
  module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField);
1795
1836
  } else if (field.rules !== undefined) {
1796
- if (showErrors) {
1797
- $field.closest($group).removeClass(className.error);
1798
- }
1837
+ errorLimit = field.errorLimit || settings.errorLimit;
1799
1838
  $.each(field.rules, function (index, rule) {
1800
- if (module.has.field(identifier)) {
1839
+ if (module.has.field(identifier) && (!errorLimit || fieldErrors.length < errorLimit)) {
1801
1840
  var invalidFields = module.validate.rule(field, rule, true) || [];
1802
1841
  if (invalidFields.length > 0) {
1803
1842
  module.debug('Field is invalid', identifier, rule.type);
@@ -1812,7 +1851,7 @@
1812
1851
  }
1813
1852
  if (fieldValid) {
1814
1853
  if (showErrors) {
1815
- module.remove.prompt(identifier, fieldErrors);
1854
+ module.remove.prompt(identifier);
1816
1855
  settings.onValid.call($field);
1817
1856
  }
1818
1857
  } else {
@@ -1934,7 +1973,7 @@
1934
1973
  });
1935
1974
  }
1936
1975
  clearTimeout(module.performance.timer);
1937
- module.performance.timer = setTimeout(module.performance.display, 500);
1976
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1938
1977
  },
1939
1978
  display: function () {
1940
1979
  var
@@ -2049,6 +2088,7 @@
2049
2088
  preventLeaving: false,
2050
2089
  errorFocus: true,
2051
2090
  dateHandling: 'date', // 'date', 'input', 'formatter'
2091
+ errorLimit: 0,
2052
2092
 
2053
2093
  onValid: function () {},
2054
2094
  onInvalid: function () {},
@@ -2102,8 +2142,8 @@
2102
2142
  isExactly: '{name} must be exactly "{ruleValue}"',
2103
2143
  not: '{name} cannot be set to "{ruleValue}"',
2104
2144
  notExactly: '{name} cannot be set to exactly "{ruleValue}"',
2105
- contain: '{name} must contain "{ruleValue}"',
2106
- containExactly: '{name} must contain exactly "{ruleValue}"',
2145
+ contains: '{name} must contain "{ruleValue}"',
2146
+ containsExactly: '{name} must contain exactly "{ruleValue}"',
2107
2147
  doesntContain: '{name} cannot contain "{ruleValue}"',
2108
2148
  doesntContainExactly: '{name} cannot contain exactly "{ruleValue}"',
2109
2149
  minLength: '{name} must be at least {ruleValue} characters',
@@ -2137,6 +2177,7 @@
2137
2177
  },
2138
2178
 
2139
2179
  className: {
2180
+ initial: 'initial',
2140
2181
  error: 'error',
2141
2182
  label: 'ui basic red pointing prompt label',
2142
2183
  pressed: 'down',
@@ -2577,7 +2618,7 @@
2577
2618
  })(jQuery, window, document);
2578
2619
 
2579
2620
  /*!
2580
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Accordion
2621
+ * # Fomantic-UI 2.9.3 - Accordion
2581
2622
  * https://github.com/fomantic/Fomantic-UI/
2582
2623
  *
2583
2624
  *
@@ -3016,7 +3057,7 @@
3016
3057
  });
3017
3058
  }
3018
3059
  clearTimeout(module.performance.timer);
3019
- module.performance.timer = setTimeout(module.performance.display, 500);
3060
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
3020
3061
  },
3021
3062
  display: function () {
3022
3063
  var
@@ -3171,7 +3212,7 @@
3171
3212
  })(jQuery, window, document);
3172
3213
 
3173
3214
  /*!
3174
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Calendar
3215
+ * # Fomantic-UI 2.9.3 - Calendar
3175
3216
  * https://github.com/fomantic/Fomantic-UI/
3176
3217
  *
3177
3218
  *
@@ -4651,7 +4692,7 @@
4651
4692
  });
4652
4693
  }
4653
4694
  clearTimeout(module.performance.timer);
4654
- module.performance.timer = setTimeout(module.performance.display, 500);
4695
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
4655
4696
  },
4656
4697
  display: function () {
4657
4698
  var
@@ -5182,7 +5223,7 @@
5182
5223
  })(jQuery, window, document);
5183
5224
 
5184
5225
  /*!
5185
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Checkbox
5226
+ * # Fomantic-UI 2.9.3 - Checkbox
5186
5227
  * https://github.com/fomantic/Fomantic-UI/
5187
5228
  *
5188
5229
  *
@@ -5424,7 +5465,9 @@
5424
5465
  $input.trigger('blur');
5425
5466
  shortcutPressed = true;
5426
5467
  event.stopPropagation();
5427
- } else if (!event.ctrlKey && module.can.change()) {
5468
+ } else if (!module.can.change()) {
5469
+ shortcutPressed = true;
5470
+ } else if (!event.ctrlKey) {
5428
5471
  if (key === keyCode.space || (key === keyCode.enter && settings.enableEnterKey)) {
5429
5472
  module.verbose('Enter/space key pressed, toggling checkbox');
5430
5473
  module.toggle();
@@ -5906,7 +5949,7 @@
5906
5949
  });
5907
5950
  }
5908
5951
  clearTimeout(module.performance.timer);
5909
- module.performance.timer = setTimeout(module.performance.display, 500);
5952
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
5910
5953
  },
5911
5954
  display: function () {
5912
5955
  var
@@ -6063,7 +6106,7 @@
6063
6106
  })(jQuery, window, document);
6064
6107
 
6065
6108
  /*!
6066
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Dimmer
6109
+ * # Fomantic-UI 2.9.3 - Dimmer
6067
6110
  * https://github.com/fomantic/Fomantic-UI/
6068
6111
  *
6069
6112
  *
@@ -6592,7 +6635,7 @@
6592
6635
  });
6593
6636
  }
6594
6637
  clearTimeout(module.performance.timer);
6595
- module.performance.timer = setTimeout(module.performance.display, 500);
6638
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
6596
6639
  },
6597
6640
  display: function () {
6598
6641
  var
@@ -6794,7 +6837,7 @@
6794
6837
  })(jQuery, window, document);
6795
6838
 
6796
6839
  /*!
6797
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Dropdown
6840
+ * # Fomantic-UI 2.9.3 - Dropdown
6798
6841
  * https://github.com/fomantic/Fomantic-UI/
6799
6842
  *
6800
6843
  *
@@ -7158,7 +7201,7 @@
7158
7201
  module.verbose('Adding clear icon');
7159
7202
  $clear = $('<i />')
7160
7203
  .addClass('remove icon')
7161
- .insertBefore($text)
7204
+ .insertAfter($icon)
7162
7205
  ;
7163
7206
  }
7164
7207
  if (module.is.search() && !module.has.search()) {
@@ -7324,7 +7367,7 @@
7324
7367
  callback = isFunction(callback)
7325
7368
  ? callback
7326
7369
  : function () {};
7327
- if ((focused || iconClicked) && module.is.remote() && module.is.noApiCache()) {
7370
+ if ((focused || iconClicked) && module.is.remote() && module.is.noApiCache() && !module.has.maxSelections()) {
7328
7371
  module.clearItems();
7329
7372
  }
7330
7373
  if (!module.can.show() && module.is.remote()) {
@@ -7374,7 +7417,10 @@
7374
7417
  if ($subMenu.length > 0) {
7375
7418
  module.verbose('Hiding sub-menu', $subMenu);
7376
7419
  $subMenu.each(function () {
7377
- module.animate.hide(false, $(this));
7420
+ var $sub = $(this);
7421
+ if (!module.is.animating($sub)) {
7422
+ module.animate.hide(false, $sub);
7423
+ }
7378
7424
  });
7379
7425
  }
7380
7426
  }
@@ -7569,6 +7615,8 @@
7569
7615
  }
7570
7616
  ;
7571
7617
  if (settings.useLabels && module.has.maxSelections()) {
7618
+ module.show();
7619
+
7572
7620
  return;
7573
7621
  }
7574
7622
  if (settings.apiSettings) {
@@ -7892,8 +7940,8 @@
7892
7940
  notFoundTokens = []
7893
7941
  ;
7894
7942
  tokens.forEach(function (value) {
7895
- if (module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true) === false) {
7896
- notFoundTokens.push(value);
7943
+ if (module.set.selected(module.escape.htmlEntities(value.trim()), null, false, true) === false) {
7944
+ notFoundTokens.push(value.trim());
7897
7945
  }
7898
7946
  });
7899
7947
  event.preventDefault();
@@ -8026,7 +8074,7 @@
8026
8074
  module.set.filtered();
8027
8075
  }
8028
8076
  clearTimeout(module.timer);
8029
- module.timer = setTimeout(module.search, settings.delay.search);
8077
+ module.timer = setTimeout(function () { module.search(); }, settings.delay.search);
8030
8078
  },
8031
8079
  label: {
8032
8080
  click: function (event) {
@@ -8202,11 +8250,13 @@
8202
8250
  if (settings.allowAdditions) {
8203
8251
  module.remove.userAddition();
8204
8252
  }
8205
- module.remove.filteredItem();
8253
+ if (!settings.keepSearchTerm) {
8254
+ module.remove.filteredItem();
8255
+ module.remove.searchTerm();
8256
+ }
8206
8257
  if (!module.is.visible() && $target.length > 0) {
8207
8258
  module.show();
8208
8259
  }
8209
- module.remove.searchTerm();
8210
8260
  if (!module.is.focusedOnSearch() && skipRefocus !== true) {
8211
8261
  module.focusSearch(true);
8212
8262
  }
@@ -8392,7 +8442,9 @@
8392
8442
  module.verbose('Selecting item from keyboard shortcut', $selectedItem);
8393
8443
  module.event.item.click.call($selectedItem, event);
8394
8444
  if (module.is.searchSelection()) {
8395
- module.remove.searchTerm();
8445
+ if (!settings.keepSearchTerm) {
8446
+ module.remove.searchTerm();
8447
+ }
8396
8448
  if (module.is.multiple()) {
8397
8449
  $search.trigger('focus');
8398
8450
  }
@@ -8609,7 +8661,7 @@
8609
8661
  ? value
8610
8662
  : text;
8611
8663
  if (module.can.activate($(element))) {
8612
- module.set.selected(value, $(element));
8664
+ module.set.selected(value, $(element), false, settings.keepSearchTerm);
8613
8665
  if (!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
8614
8666
  module.hideAndClear();
8615
8667
  }
@@ -8961,7 +9013,7 @@
8961
9013
  return;
8962
9014
  }
8963
9015
  if (isMultiple) {
8964
- if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String)) !== -1) {
9016
+ if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String).map(module.escape.htmlEntities)) !== -1) {
8965
9017
  $selectedItem = $selectedItem
8966
9018
  ? $selectedItem.add($choice)
8967
9019
  : $choice;
@@ -9022,7 +9074,7 @@
9022
9074
  return false;
9023
9075
  }
9024
9076
 
9025
- return true;
9077
+ return false;
9026
9078
  },
9027
9079
  disabled: function () {
9028
9080
  $search.attr('tabindex', module.is.disabled() ? -1 : 0);
@@ -9112,7 +9164,7 @@
9112
9164
  $.each(values, function (value, name) {
9113
9165
  module.set.text(name);
9114
9166
  });
9115
- } else {
9167
+ } else if (settings.useLabels) {
9116
9168
  $.each(values, function (value, name) {
9117
9169
  module.add.label(value, name);
9118
9170
  });
@@ -9259,7 +9311,7 @@
9259
9311
  valueIsSet = searchValue !== ''
9260
9312
  ;
9261
9313
  if (isMultiple && hasSearchValue) {
9262
- module.verbose('Adjusting input width', searchWidth, settings.glyphWidth);
9314
+ module.verbose('Adjusting input width', searchWidth);
9263
9315
  $search.css('width', searchWidth + 'px');
9264
9316
  }
9265
9317
  if (hasSearchValue || (isSearchMultiple && valueIsSet)) {
@@ -9558,7 +9610,7 @@
9558
9610
  return false;
9559
9611
  }
9560
9612
  module.debug('Setting selected menu item to', $selectedItem);
9561
- if (module.is.multiple()) {
9613
+ if (module.is.multiple() && !keepSearchTerm) {
9562
9614
  module.remove.searchWidth();
9563
9615
  }
9564
9616
  if (module.is.single()) {
@@ -10533,12 +10585,12 @@
10533
10585
  show: function () {
10534
10586
  module.verbose('Delaying show event to ensure user intent');
10535
10587
  clearTimeout(module.timer);
10536
- module.timer = setTimeout(module.show, settings.delay.show);
10588
+ module.timer = setTimeout(function () { module.show(); }, settings.delay.show);
10537
10589
  },
10538
10590
  hide: function () {
10539
10591
  module.verbose('Delaying hide event to ensure user intent');
10540
10592
  clearTimeout(module.timer);
10541
- module.timer = setTimeout(module.hide, settings.delay.hide);
10593
+ module.timer = setTimeout(function () { module.hide(); }, settings.delay.hide);
10542
10594
  },
10543
10595
  },
10544
10596
 
@@ -10664,7 +10716,7 @@
10664
10716
  });
10665
10717
  }
10666
10718
  clearTimeout(module.performance.timer);
10667
- module.performance.timer = setTimeout(module.performance.display, 500);
10719
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
10668
10720
  },
10669
10721
  display: function () {
10670
10722
  var
@@ -10801,6 +10853,7 @@
10801
10853
  forceSelection: false, // force a choice on blur with search selection
10802
10854
 
10803
10855
  allowAdditions: false, // whether multiple select should allow user added values
10856
+ keepSearchTerm: false, // whether the search value should be kept and menu stays filtered on item selection
10804
10857
  ignoreCase: false, // whether to consider case sensitivity when creating labels
10805
10858
  ignoreSearchCase: true, // whether to consider case sensitivity when filtering items
10806
10859
  hideAdditions: true, // whether or not to hide special message prompting a user they can enter a value
@@ -10820,8 +10873,6 @@
10820
10873
  duration: 200, // duration of transition
10821
10874
  displayType: false, // displayType of transition
10822
10875
 
10823
- glyphWidth: 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
10824
-
10825
10876
  headerDivider: true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
10826
10877
 
10827
10878
  collapseOnActionable: true, // whether the dropdown should collapse upon selection of an actionable item
@@ -11144,7 +11195,7 @@
11144
11195
  })(jQuery, window, document);
11145
11196
 
11146
11197
  /*!
11147
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Embed
11198
+ * # Fomantic-UI 2.9.3 - Embed
11148
11199
  * https://github.com/fomantic/Fomantic-UI/
11149
11200
  *
11150
11201
  *
@@ -11585,7 +11636,7 @@
11585
11636
  });
11586
11637
  }
11587
11638
  clearTimeout(module.performance.timer);
11588
- module.performance.timer = setTimeout(module.performance.display, 500);
11639
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
11589
11640
  },
11590
11641
  display: function () {
11591
11642
  var
@@ -11823,7 +11874,7 @@
11823
11874
  })(jQuery, window, document);
11824
11875
 
11825
11876
  /*!
11826
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Flyout
11877
+ * # Fomantic-UI 2.9.3 - Flyout
11827
11878
  * https://github.com/fomantic/Fomantic-UI/
11828
11879
  *
11829
11880
  *
@@ -12057,9 +12108,6 @@
12057
12108
  .off(eventNamespace)
12058
12109
  .removeData(moduleNamespace)
12059
12110
  ;
12060
- if (module.is.ios()) {
12061
- module.remove.ios();
12062
- }
12063
12111
  $closeIcon.off(elementNamespace);
12064
12112
  if ($inputs) {
12065
12113
  $inputs.off(elementNamespace);
@@ -12714,12 +12762,6 @@
12714
12762
  });
12715
12763
  },
12716
12764
 
12717
- // ios only (scroll on html not document). This prevent auto-resize canvas/scroll in ios
12718
- // (This is no longer necessary in latest iOS)
12719
- ios: function () {
12720
- $html.addClass(className.ios);
12721
- },
12722
-
12723
12765
  // container
12724
12766
  pushed: function () {
12725
12767
  $context.addClass(className.pushed);
@@ -12769,11 +12811,6 @@
12769
12811
  ;
12770
12812
  },
12771
12813
 
12772
- // ios scroll on html not document
12773
- ios: function () {
12774
- $html.removeClass(className.ios);
12775
- },
12776
-
12777
12814
  // context
12778
12815
  pushed: function () {
12779
12816
  $context.removeClass(className.pushed);
@@ -12895,20 +12932,6 @@
12895
12932
 
12896
12933
  return module.cache.isIE;
12897
12934
  },
12898
- ios: function () {
12899
- var
12900
- userAgent = navigator.userAgent,
12901
- isIOS = userAgent.match(regExp.ios),
12902
- isMobileChrome = userAgent.match(regExp.mobileChrome)
12903
- ;
12904
- if (isIOS && !isMobileChrome) {
12905
- module.verbose('Browser was found to be iOS', userAgent);
12906
-
12907
- return true;
12908
- }
12909
-
12910
- return false;
12911
- },
12912
12935
  mobile: function () {
12913
12936
  var
12914
12937
  userAgent = navigator.userAgent,
@@ -13071,7 +13094,7 @@
13071
13094
  });
13072
13095
  }
13073
13096
  clearTimeout(module.performance.timer);
13074
- module.performance.timer = setTimeout(module.performance.display, 500);
13097
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
13075
13098
  },
13076
13099
  display: function () {
13077
13100
  var
@@ -13255,7 +13278,6 @@
13255
13278
  blurring: 'blurring',
13256
13279
  closing: 'closing',
13257
13280
  dimmed: 'dimmed',
13258
- ios: 'ios',
13259
13281
  locked: 'locked',
13260
13282
  pushable: 'pushable',
13261
13283
  pushed: 'pushed',
@@ -13288,8 +13310,6 @@
13288
13310
  },
13289
13311
 
13290
13312
  regExp: {
13291
- ios: /(iPad|iPhone|iPod)/g,
13292
- mobileChrome: /(CriOS)/g,
13293
13313
  mobile: /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g,
13294
13314
  },
13295
13315
 
@@ -13404,7 +13424,7 @@
13404
13424
  })(jQuery, window, document);
13405
13425
 
13406
13426
  /*!
13407
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Modal
13427
+ * # Fomantic-UI 2.9.3 - Modal
13408
13428
  * https://github.com/fomantic/Fomantic-UI/
13409
13429
  *
13410
13430
  *
@@ -13932,7 +13952,7 @@
13932
13952
  },
13933
13953
  debounce: function (method, delay) {
13934
13954
  clearTimeout(module.timer);
13935
- module.timer = setTimeout(method, delay);
13955
+ module.timer = setTimeout(function () { method(); }, delay);
13936
13956
  },
13937
13957
  keyboard: function (event) {
13938
13958
  var
@@ -14678,7 +14698,7 @@
14678
14698
  });
14679
14699
  }
14680
14700
  clearTimeout(module.performance.timer);
14681
- module.performance.timer = setTimeout(module.performance.display, 500);
14701
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
14682
14702
  },
14683
14703
  display: function () {
14684
14704
  var
@@ -15038,7 +15058,7 @@
15038
15058
  })(jQuery, window, document);
15039
15059
 
15040
15060
  /*!
15041
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Nag
15061
+ * # Fomantic-UI 2.9.3 - Nag
15042
15062
  * https://github.com/fomantic/Fomantic-UI/
15043
15063
  *
15044
15064
  *
@@ -15127,7 +15147,7 @@
15127
15147
  }
15128
15148
 
15129
15149
  if (settings.displayTime > 0) {
15130
- setTimeout(module.hide, settings.displayTime);
15150
+ setTimeout(function () { module.hide(); }, settings.displayTime);
15131
15151
  }
15132
15152
  module.show();
15133
15153
  },
@@ -15416,7 +15436,7 @@
15416
15436
  });
15417
15437
  }
15418
15438
  clearTimeout(module.performance.timer);
15419
- module.performance.timer = setTimeout(module.performance.display, 500);
15439
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
15420
15440
  },
15421
15441
  display: function () {
15422
15442
  var
@@ -15599,7 +15619,7 @@
15599
15619
  })(jQuery, window, document);
15600
15620
 
15601
15621
  /*!
15602
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Popup
15622
+ * # Fomantic-UI 2.9.3 - Popup
15603
15623
  * https://github.com/fomantic/Fomantic-UI/
15604
15624
  *
15605
15625
  *
@@ -15794,7 +15814,7 @@
15794
15814
  ;
15795
15815
  clearTimeout(module.hideTimer);
15796
15816
  if (!openedWithTouch || (openedWithTouch && settings.addTouchEvents)) {
15797
- module.showTimer = setTimeout(module.show, delay);
15817
+ module.showTimer = setTimeout(function () { module.show(); }, delay);
15798
15818
  }
15799
15819
  },
15800
15820
  end: function () {
@@ -15804,7 +15824,7 @@
15804
15824
  : settings.delay
15805
15825
  ;
15806
15826
  clearTimeout(module.showTimer);
15807
- module.hideTimer = setTimeout(module.hide, delay);
15827
+ module.hideTimer = setTimeout(function () { module.hide(); }, delay);
15808
15828
  },
15809
15829
  touchstart: function (event) {
15810
15830
  openedWithTouch = true;
@@ -15848,9 +15868,11 @@
15848
15868
  // generates popup html from metadata
15849
15869
  create: function () {
15850
15870
  var
15871
+ targetSibling = $target.next(selector.popup),
15872
+ contentFallback = !settings.popup && targetSibling.length === 0 ? $module.attr('title') : false,
15851
15873
  html = module.get.html(),
15852
15874
  title = module.get.title(),
15853
- content = module.get.content()
15875
+ content = module.get.content(contentFallback)
15854
15876
  ;
15855
15877
 
15856
15878
  if (html || content || title) {
@@ -15891,10 +15913,10 @@
15891
15913
  if (settings.hoverable) {
15892
15914
  module.bind.popup();
15893
15915
  }
15894
- } else if ($target.next(selector.popup).length > 0) {
15916
+ } else if (targetSibling.length > 0) {
15895
15917
  module.verbose('Pre-existing popup found');
15896
15918
  settings.inline = true;
15897
- settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
15919
+ settings.popup = targetSibling.data(metadata.activator, $module);
15898
15920
  module.refresh();
15899
15921
  if (settings.hoverable) {
15900
15922
  module.bind.popup();
@@ -16084,10 +16106,10 @@
16084
16106
 
16085
16107
  return $module.data(metadata.title) || settings.title;
16086
16108
  },
16087
- content: function () {
16109
+ content: function (fallback) {
16088
16110
  $module.removeData(metadata.content);
16089
16111
 
16090
- return $module.data(metadata.content) || settings.content || $module.attr('title');
16112
+ return $module.data(metadata.content) || settings.content || fallback;
16091
16113
  },
16092
16114
  variation: function () {
16093
16115
  $module.removeData(metadata.variation);
@@ -16842,7 +16864,7 @@
16842
16864
  });
16843
16865
  }
16844
16866
  clearTimeout(module.performance.timer);
16845
- module.performance.timer = setTimeout(module.performance.display, 500);
16867
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
16846
16868
  },
16847
16869
  display: function () {
16848
16870
  var
@@ -17153,7 +17175,7 @@
17153
17175
  })(jQuery, window, document);
17154
17176
 
17155
17177
  /*!
17156
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Progress
17178
+ * # Fomantic-UI 2.9.3 - Progress
17157
17179
  * https://github.com/fomantic/Fomantic-UI/
17158
17180
  *
17159
17181
  *
@@ -17945,7 +17967,7 @@
17945
17967
  });
17946
17968
  }
17947
17969
  clearTimeout(module.performance.timer);
17948
- module.performance.timer = setTimeout(module.performance.display, 500);
17970
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
17949
17971
  },
17950
17972
  display: function () {
17951
17973
  var
@@ -18131,7 +18153,7 @@
18131
18153
  })(jQuery, window, document);
18132
18154
 
18133
18155
  /*!
18134
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Slider
18156
+ * # Fomantic-UI 2.9.3 - Slider
18135
18157
  * https://github.com/fomantic/Fomantic-UI/
18136
18158
  *
18137
18159
  *
@@ -18267,20 +18289,32 @@
18267
18289
  $module.attr('tabindex', 0);
18268
18290
  }
18269
18291
  if ($module.find('.inner').length === 0) {
18270
- $module.append("<div class='inner'>"
18271
- + "<div class='track'></div>"
18272
- + "<div class='track-fill'></div>"
18273
- + "<div class='thumb'></div>"
18292
+ $module.append('<div class="inner">'
18293
+ + '<div class="track"></div>'
18294
+ + '<div class="track-fill"></div>'
18295
+ + '<div class="thumb"></div>'
18274
18296
  + '</div>');
18275
18297
  }
18276
18298
  precision = module.get.precision();
18277
18299
  $thumb = $module.find('.thumb:not(.second)');
18300
+ if (settings.showThumbTooltip) {
18301
+ $thumb
18302
+ .attr('data-position', settings.tooltipConfig.position)
18303
+ .attr('data-variation', settings.tooltipConfig.variation)
18304
+ ;
18305
+ }
18278
18306
  $currThumb = $thumb;
18279
18307
  if (module.is.range()) {
18280
18308
  if ($module.find('.thumb.second').length === 0) {
18281
- $module.find('.inner').append("<div class='thumb second'></div>");
18309
+ $module.find('.inner').append('<div class="thumb second"></div>');
18282
18310
  }
18283
18311
  $secondThumb = $module.find('.thumb.second');
18312
+ if (settings.showThumbTooltip) {
18313
+ $secondThumb
18314
+ .attr('data-position', settings.tooltipConfig.position)
18315
+ .attr('data-variation', settings.tooltipConfig.variation)
18316
+ ;
18317
+ }
18284
18318
  }
18285
18319
  $track = $module.find('.track');
18286
18320
  $trackFill = $module.find('.track-fill');
@@ -18334,9 +18368,10 @@
18334
18368
  for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
18335
18369
  var
18336
18370
  labelText = module.get.label(i),
18337
- $label = labelText !== ''
18371
+ showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
18372
+ $label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
18338
18373
  ? (!(i % module.get.gapRatio())
18339
- ? $('<li class="label">' + labelText + '</li>')
18374
+ ? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
18340
18375
  : $('<li class="halftick label"></li>'))
18341
18376
  : null,
18342
18377
  ratio = i / len
@@ -18480,6 +18515,18 @@
18480
18515
  ;
18481
18516
  $currThumb = initialPosition > newPos ? $thumb : $secondThumb;
18482
18517
  }
18518
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
18519
+ var currentRangeDiff = module.get.currentRangeDiff(value),
18520
+ isSecondThumb = $currThumb.hasClass('second')
18521
+ ;
18522
+ if ((settings.minRange && currentRangeDiff < settings.minRange)
18523
+ || (settings.maxRange && currentRangeDiff > settings.maxRange)
18524
+ || (settings.preventCrossover && !isSecondThumb && value > module.secondThumbVal)
18525
+ || (settings.preventCrossover && isSecondThumb && value < module.thumbVal)
18526
+ ) {
18527
+ return;
18528
+ }
18529
+ }
18483
18530
  if (module.get.step() === 0 || module.is.smooth()) {
18484
18531
  var
18485
18532
  thumbVal = module.thumbVal,
@@ -18515,6 +18562,17 @@
18515
18562
  return;
18516
18563
  }
18517
18564
  var value = module.determine.valueFromEvent(event);
18565
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
18566
+ if ($currThumb === undefined) {
18567
+ $currThumb = value <= module.get.currentThumbValue() ? $thumb : $secondThumb;
18568
+ }
18569
+ var currentRangeDiff = module.get.currentRangeDiff(value);
18570
+ if (settings.minRange && currentRangeDiff < settings.minRange) {
18571
+ value = module.get.edgeValue(value, settings.minRange);
18572
+ } else if (settings.maxRange && currentRangeDiff > settings.maxRange) {
18573
+ value = module.get.edgeValue(value, settings.maxRange);
18574
+ }
18575
+ }
18518
18576
  module.set.value(value);
18519
18577
  module.unbind.slidingEvents();
18520
18578
  touchIdentifier = undefined;
@@ -18635,7 +18693,13 @@
18635
18693
 
18636
18694
  is: {
18637
18695
  range: function () {
18638
- return $module.hasClass(settings.className.range);
18696
+ var isRange = $module.hasClass(className.range);
18697
+ if (!isRange && (settings.minRange || settings.maxRange)) {
18698
+ $module.addClass(className.range);
18699
+ isRange = true;
18700
+ }
18701
+
18702
+ return isRange;
18639
18703
  },
18640
18704
  hover: function () {
18641
18705
  return isHover;
@@ -18644,23 +18708,56 @@
18644
18708
  return $module.is(':focus');
18645
18709
  },
18646
18710
  disabled: function () {
18647
- return $module.hasClass(settings.className.disabled);
18711
+ return $module.hasClass(className.disabled);
18648
18712
  },
18649
18713
  labeled: function () {
18650
- return $module.hasClass(settings.className.labeled);
18714
+ var isLabeled = $module.hasClass(className.labeled);
18715
+ if (!isLabeled && (settings.restrictedLabels.length > 0 || settings.showLabelTicks !== false)) {
18716
+ $module.addClass(className.labeled);
18717
+ isLabeled = true;
18718
+ }
18719
+
18720
+ return isLabeled;
18651
18721
  },
18652
18722
  reversed: function () {
18653
- return $module.hasClass(settings.className.reversed);
18723
+ return $module.hasClass(className.reversed);
18654
18724
  },
18655
18725
  vertical: function () {
18656
- return $module.hasClass(settings.className.vertical);
18726
+ return $module.hasClass(className.vertical);
18657
18727
  },
18658
18728
  smooth: function () {
18659
- return settings.smooth || $module.hasClass(settings.className.smooth);
18729
+ return settings.smooth || $module.hasClass(className.smooth);
18660
18730
  },
18661
18731
  },
18662
18732
 
18663
18733
  get: {
18734
+ currentRangeDiff: function (value) {
18735
+ var currentRangeDiff;
18736
+ if ($currThumb.hasClass('second')) {
18737
+ currentRangeDiff = module.thumbVal < value
18738
+ ? value - module.thumbVal
18739
+ : module.thumbVal - value;
18740
+ } else {
18741
+ currentRangeDiff = module.secondThumbVal > value
18742
+ ? module.secondThumbVal - value
18743
+ : value - module.secondThumbVal;
18744
+ }
18745
+
18746
+ return currentRangeDiff;
18747
+ },
18748
+ edgeValue: function (value, edgeValue) {
18749
+ if ($currThumb.hasClass('second')) {
18750
+ value = module.thumbVal < value
18751
+ ? module.thumbVal + edgeValue
18752
+ : module.thumbVal - edgeValue;
18753
+ } else {
18754
+ value = module.secondThumbVal < value
18755
+ ? module.secondThumbVal + edgeValue
18756
+ : module.secondThumbVal - edgeValue;
18757
+ }
18758
+
18759
+ return value;
18760
+ },
18664
18761
  trackOffset: function () {
18665
18762
  if (module.is.vertical()) {
18666
18763
  return $track.offset().top;
@@ -18731,7 +18828,8 @@
18731
18828
  var
18732
18829
  step = module.get.step(),
18733
18830
  min = module.get.min(),
18734
- quotient = step === 0 ? 0 : Math.floor((settings.max - min) / step),
18831
+ precision = module.get.precision(),
18832
+ quotient = step === 0 ? 0 : Math.floor(Math.round(((settings.max - min) / step) * precision) / precision),
18735
18833
  remainder = step === 0 ? 0 : (settings.max - min) % step
18736
18834
  ;
18737
18835
 
@@ -18741,7 +18839,9 @@
18741
18839
  return settings.step;
18742
18840
  },
18743
18841
  numLabels: function () {
18744
- var value = Math.round((module.get.max() - module.get.min()) / (module.get.step() === 0 ? 1 : module.get.step()));
18842
+ var step = module.get.step(),
18843
+ precision = module.get.precision(),
18844
+ value = Math.round(((module.get.max() - module.get.min()) / (step === 0 ? 1 : step)) * precision) / precision;
18745
18845
  module.debug('Determined that there should be ' + value + ' labels');
18746
18846
 
18747
18847
  return value;
@@ -18756,7 +18856,9 @@
18756
18856
 
18757
18857
  switch (settings.labelType) {
18758
18858
  case settings.labelTypes.number: {
18759
- return Math.round(((value * (module.get.step() === 0 ? 1 : module.get.step())) + module.get.min()) * precision) / precision;
18859
+ var step = module.get.step();
18860
+
18861
+ return Math.round(((value * (step === 0 ? 1 : step)) + module.get.min()) * precision) / precision;
18760
18862
  }
18761
18863
  case settings.labelTypes.letter: {
18762
18864
  return alphabet[value % 26];
@@ -18864,13 +18966,10 @@
18864
18966
  return thumbDelta <= secondThumbDelta ? thumbPos : secondThumbPos;
18865
18967
  },
18866
18968
  thumbPos: function ($element) {
18867
- var
18868
- pos = module.is.vertical()
18869
- ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
18870
- : (module.is.reversed() ? $element.css('right') : $element.css('left'))
18969
+ return module.is.vertical()
18970
+ ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
18971
+ : (module.is.reversed() ? $element.css('right') : $element.css('left'))
18871
18972
  ;
18872
-
18873
- return pos;
18874
18973
  },
18875
18974
  positionFromValue: function (val) {
18876
18975
  var
@@ -18894,6 +18993,7 @@
18894
18993
  position = Math.round(ratio * trackLength),
18895
18994
  adjustedPos = step === 0 ? position : Math.round(position / step) * step
18896
18995
  ;
18996
+ module.verbose('Determined position: ' + position + ' from ratio: ' + ratio);
18897
18997
 
18898
18998
  return adjustedPos;
18899
18999
  },
@@ -19117,12 +19217,12 @@
19117
19217
  }
19118
19218
  if (!$currThumb.hasClass('second')) {
19119
19219
  if (settings.preventCrossover && module.is.range()) {
19120
- newValue = Math.min(module.secondThumbVal, newValue);
19220
+ newValue = Math.min(module.secondThumbVal - (settings.minRange || 0), newValue);
19121
19221
  }
19122
19222
  module.thumbVal = newValue;
19123
19223
  } else {
19124
19224
  if (settings.preventCrossover && module.is.range()) {
19125
- newValue = Math.max(module.thumbVal, newValue);
19225
+ newValue = Math.max(module.thumbVal + (settings.minRange || 0), newValue);
19126
19226
  }
19127
19227
  module.secondThumbVal = newValue;
19128
19228
  }
@@ -19141,6 +19241,10 @@
19141
19241
  thumbVal = module.thumbVal || module.get.min(),
19142
19242
  secondThumbVal = module.secondThumbVal || module.get.min()
19143
19243
  ;
19244
+ if (settings.showThumbTooltip) {
19245
+ var precision = module.get.precision();
19246
+ $targetThumb.attr('data-tooltip', Math.round(newValue * precision) / precision);
19247
+ }
19144
19248
  if (module.is.range()) {
19145
19249
  if (!$targetThumb.hasClass('second')) {
19146
19250
  position = newPos;
@@ -19229,6 +19333,14 @@
19229
19333
  settings: function () {
19230
19334
  if (settings.start !== false) {
19231
19335
  if (module.is.range()) {
19336
+ var rangeDiff = settings.end - settings.start;
19337
+ if (rangeDiff < 0
19338
+ || (settings.minRange && rangeDiff < settings.minRange)
19339
+ || (settings.maxRange && rangeDiff > settings.maxRange)
19340
+ || (settings.minRange && settings.maxRange && settings.minRange > settings.maxRange)
19341
+ ) {
19342
+ module.error(error.invalidRanges, settings.start, settings.end, settings.minRange, settings.maxRange);
19343
+ }
19232
19344
  module.debug('Start position set from settings', settings.start, settings.end);
19233
19345
  module.set.rangeValue(settings.start, settings.end);
19234
19346
  } else {
@@ -19309,7 +19421,7 @@
19309
19421
  });
19310
19422
  }
19311
19423
  clearTimeout(module.performance.timer);
19312
- module.performance.timer = setTimeout(module.performance.display, 500);
19424
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
19313
19425
  },
19314
19426
  display: function () {
19315
19427
  var
@@ -19421,6 +19533,7 @@
19421
19533
  error: {
19422
19534
  method: 'The method you called is not defined.',
19423
19535
  notrange: 'This slider is not a range slider',
19536
+ invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
19424
19537
  },
19425
19538
 
19426
19539
  metadata: {
@@ -19433,6 +19546,8 @@
19433
19546
  step: 1,
19434
19547
  start: 0,
19435
19548
  end: 20,
19549
+ minRange: false,
19550
+ maxRange: false,
19436
19551
  labelType: 'number',
19437
19552
  showLabelTicks: false,
19438
19553
  smooth: false,
@@ -19469,6 +19584,13 @@
19469
19584
  downArrow: 40,
19470
19585
  },
19471
19586
 
19587
+ restrictedLabels: [],
19588
+ showThumbTooltip: false,
19589
+ tooltipConfig: {
19590
+ position: 'top center',
19591
+ variation: 'tiny black',
19592
+ },
19593
+
19472
19594
  labelTypes: {
19473
19595
  number: 'number',
19474
19596
  letter: 'letter',
@@ -19480,7 +19602,7 @@
19480
19602
  })(jQuery, window, document);
19481
19603
 
19482
19604
  /*!
19483
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Rating
19605
+ * # Fomantic-UI 2.9.3 - Rating
19484
19606
  * https://github.com/fomantic/Fomantic-UI/
19485
19607
  *
19486
19608
  *
@@ -19849,7 +19971,7 @@
19849
19971
  });
19850
19972
  }
19851
19973
  clearTimeout(module.performance.timer);
19852
- module.performance.timer = setTimeout(module.performance.display, 500);
19974
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
19853
19975
  },
19854
19976
  display: function () {
19855
19977
  var
@@ -20019,7 +20141,7 @@
20019
20141
  })(jQuery, window, document);
20020
20142
 
20021
20143
  /*!
20022
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Search
20144
+ * # Fomantic-UI 2.9.3 - Search
20023
20145
  * https://github.com/fomantic/Fomantic-UI/
20024
20146
  *
20025
20147
  *
@@ -20189,7 +20311,7 @@
20189
20311
  callback = function () {
20190
20312
  module.cancel.query();
20191
20313
  module.remove.focus();
20192
- module.timer = setTimeout(module.hideResults, settings.hideDelay);
20314
+ module.timer = setTimeout(function () { module.hideResults(); }, settings.hideDelay);
20193
20315
  }
20194
20316
  ;
20195
20317
  if (pageLostFocus) {
@@ -20581,6 +20703,7 @@
20581
20703
  if (cache) {
20582
20704
  module.debug('Reading result from cache', searchTerm);
20583
20705
  module.save.results(cache.results);
20706
+ settings.onResults.call(element, cache.results, true);
20584
20707
  module.addResults(cache.html);
20585
20708
  module.inject.id(cache.results);
20586
20709
  callback();
@@ -21190,7 +21313,7 @@
21190
21313
  });
21191
21314
  }
21192
21315
  clearTimeout(module.performance.timer);
21193
- module.performance.timer = setTimeout(module.performance.display, 500);
21316
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
21194
21317
  },
21195
21318
  display: function () {
21196
21319
  var
@@ -21365,7 +21488,7 @@
21365
21488
  onResultsAdd: false,
21366
21489
 
21367
21490
  onSearchQuery: function (query) {},
21368
- onResults: function (response) {},
21491
+ onResults: function (response, fromCache) {},
21369
21492
 
21370
21493
  onResultsOpen: function () {},
21371
21494
  onResultsClose: function () {},
@@ -21596,7 +21719,7 @@
21596
21719
  })(jQuery, window, document);
21597
21720
 
21598
21721
  /*!
21599
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Shape
21722
+ * # Fomantic-UI 2.9.3 - Shape
21600
21723
  * https://github.com/fomantic/Fomantic-UI/
21601
21724
  *
21602
21725
  *
@@ -22220,7 +22343,7 @@
22220
22343
  });
22221
22344
  }
22222
22345
  clearTimeout(module.performance.timer);
22223
- module.performance.timer = setTimeout(module.performance.display, 500);
22346
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
22224
22347
  },
22225
22348
  display: function () {
22226
22349
  var
@@ -22392,7 +22515,7 @@
22392
22515
  })(jQuery, window, document);
22393
22516
 
22394
22517
  /*!
22395
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Sidebar
22518
+ * # Fomantic-UI 2.9.3 - Sidebar
22396
22519
  * https://github.com/fomantic/Fomantic-UI/
22397
22520
  *
22398
22521
  *
@@ -22522,9 +22645,6 @@
22522
22645
  .off(eventNamespace)
22523
22646
  .removeData(moduleNamespace)
22524
22647
  ;
22525
- if (module.is.ios()) {
22526
- module.remove.ios();
22527
- }
22528
22648
  // bound by uuid
22529
22649
  $context.off(elementNamespace);
22530
22650
  $window.off(elementNamespace);
@@ -22988,11 +23108,6 @@
22988
23108
  $pusher.removeClass(className.blurring);
22989
23109
  }
22990
23110
  },
22991
- // ios only (scroll on html not document). This prevent auto-resize canvas/scroll in ios
22992
- // (This is no longer necessary in latest iOS)
22993
- ios: function () {
22994
- $html.addClass(className.ios);
22995
- },
22996
23111
 
22997
23112
  // container
22998
23113
  pushed: function () {
@@ -23041,11 +23156,6 @@
23041
23156
  }
23042
23157
  },
23043
23158
 
23044
- // ios scroll on html not document
23045
- ios: function () {
23046
- $html.removeClass(className.ios);
23047
- },
23048
-
23049
23159
  // context
23050
23160
  pushed: function () {
23051
23161
  $context.removeClass(className.pushed);
@@ -23165,20 +23275,6 @@
23165
23275
  return module.cache.isIE;
23166
23276
  },
23167
23277
 
23168
- ios: function () {
23169
- var
23170
- userAgent = navigator.userAgent,
23171
- isIOS = userAgent.match(regExp.ios),
23172
- isMobileChrome = userAgent.match(regExp.mobileChrome)
23173
- ;
23174
- if (isIOS && !isMobileChrome) {
23175
- module.verbose('Browser was found to be iOS', userAgent);
23176
-
23177
- return true;
23178
- }
23179
-
23180
- return false;
23181
- },
23182
23278
  mobile: function () {
23183
23279
  var
23184
23280
  userAgent = navigator.userAgent,
@@ -23291,7 +23387,7 @@
23291
23387
  });
23292
23388
  }
23293
23389
  clearTimeout(module.performance.timer);
23294
- module.performance.timer = setTimeout(module.performance.display, 500);
23390
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
23295
23391
  },
23296
23392
  display: function () {
23297
23393
  var
@@ -23438,7 +23534,6 @@
23438
23534
  blurring: 'blurring',
23439
23535
  closing: 'closing',
23440
23536
  dimmed: 'dimmed',
23441
- ios: 'ios',
23442
23537
  locked: 'locked',
23443
23538
  pushable: 'pushable',
23444
23539
  pushed: 'pushed',
@@ -23458,8 +23553,6 @@
23458
23553
  },
23459
23554
 
23460
23555
  regExp: {
23461
- ios: /(iPad|iPhone|iPod)/g,
23462
- mobileChrome: /(CriOS)/g,
23463
23556
  mobile: /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g,
23464
23557
  },
23465
23558
 
@@ -23475,7 +23568,7 @@
23475
23568
  })(jQuery, window, document);
23476
23569
 
23477
23570
  /*!
23478
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Sticky
23571
+ * # Fomantic-UI 2.9.3 - Sticky
23479
23572
  * https://github.com/fomantic/Fomantic-UI/
23480
23573
  *
23481
23574
  *
@@ -24222,7 +24315,7 @@
24222
24315
  });
24223
24316
  }
24224
24317
  clearTimeout(module.performance.timer);
24225
- module.performance.timer = setTimeout(module.performance.display, 0);
24318
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 0);
24226
24319
  },
24227
24320
  display: function () {
24228
24321
  var
@@ -24391,7 +24484,7 @@
24391
24484
  })(jQuery, window, document);
24392
24485
 
24393
24486
  /*!
24394
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Tab
24487
+ * # Fomantic-UI 2.9.3 - Tab
24395
24488
  * https://github.com/fomantic/Fomantic-UI/
24396
24489
  *
24397
24490
  *
@@ -24491,7 +24584,7 @@
24491
24584
  module.bind.events();
24492
24585
 
24493
24586
  if (settings.history && !initializedHistory) {
24494
- module.initializeHistory();
24587
+ settings.history = module.initializeHistory();
24495
24588
  initializedHistory = true;
24496
24589
  }
24497
24590
 
@@ -24501,7 +24594,7 @@
24501
24594
  module.debug('No active tab detected, setting tab active', activeTab);
24502
24595
  module.changeTab(activeTab);
24503
24596
  }
24504
- if (activeTab !== null && settings.history) {
24597
+ if (activeTab !== null && settings.history && settings.historyType === 'state') {
24505
24598
  var autoUpdate = $.address.autoUpdate();
24506
24599
  $.address.autoUpdate(false);
24507
24600
  $.address.value(activeTab);
@@ -24594,6 +24687,8 @@
24594
24687
  $.address
24595
24688
  .bind('change', module.event.history.change)
24596
24689
  ;
24690
+
24691
+ return true;
24597
24692
  },
24598
24693
 
24599
24694
  event: {
@@ -25178,7 +25273,7 @@
25178
25273
  });
25179
25274
  }
25180
25275
  clearTimeout(module.performance.timer);
25181
- module.performance.timer = setTimeout(module.performance.display, 500);
25276
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
25182
25277
  },
25183
25278
  display: function () {
25184
25279
  var
@@ -25355,7 +25450,7 @@
25355
25450
  })(jQuery, window, document);
25356
25451
 
25357
25452
  /*!
25358
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Toast
25453
+ * # Fomantic-UI 2.9.3 - Toast
25359
25454
  * https://github.com/fomantic/Fomantic-UI/
25360
25455
  *
25361
25456
  *
@@ -26058,7 +26153,7 @@
26058
26153
  });
26059
26154
  }
26060
26155
  clearTimeout(module.performance.timer);
26061
- module.performance.timer = setTimeout(module.performance.display, 500);
26156
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
26062
26157
  },
26063
26158
  display: function () {
26064
26159
  var
@@ -26316,7 +26411,7 @@
26316
26411
  })(jQuery, window, document);
26317
26412
 
26318
26413
  /*!
26319
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Transition
26414
+ * # Fomantic-UI 2.9.3 - Transition
26320
26415
  * https://github.com/fomantic/Fomantic-UI/
26321
26416
  *
26322
26417
  *
@@ -26459,7 +26554,7 @@
26459
26554
  ? ($allModules.length - index) * interval
26460
26555
  : index * interval;
26461
26556
  module.debug('Delaying animation by', delay);
26462
- setTimeout(module.animate, delay);
26557
+ setTimeout(function () { module.animate(); }, delay);
26463
26558
  },
26464
26559
 
26465
26560
  animate: function (overrideSettings) {
@@ -27166,7 +27261,7 @@
27166
27261
  });
27167
27262
  }
27168
27263
  clearTimeout(module.performance.timer);
27169
- module.performance.timer = setTimeout(module.performance.display, 500);
27264
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
27170
27265
  },
27171
27266
  display: function () {
27172
27267
  var
@@ -27347,7 +27442,7 @@
27347
27442
  })(jQuery, window, document);
27348
27443
 
27349
27444
  /*!
27350
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - API
27445
+ * # Fomantic-UI 2.9.3 - API
27351
27446
  * https://github.com/fomantic/Fomantic-UI/
27352
27447
  *
27353
27448
  *
@@ -27406,6 +27501,7 @@
27406
27501
  : $.extend({}, $.fn.api.settings),
27407
27502
 
27408
27503
  // internal aliases
27504
+ regExp = settings.regExp,
27409
27505
  namespace = settings.namespace,
27410
27506
  metadata = settings.metadata,
27411
27507
  selector = settings.selector,
@@ -27708,8 +27804,8 @@
27708
27804
  optionalVariables
27709
27805
  ;
27710
27806
  if (url) {
27711
- requiredVariables = url.match(settings.regExp.required);
27712
- optionalVariables = url.match(settings.regExp.optional);
27807
+ requiredVariables = url.match(regExp.required);
27808
+ optionalVariables = url.match(regExp.optional);
27713
27809
  urlData = urlData || settings.urlData;
27714
27810
  if (requiredVariables) {
27715
27811
  module.debug('Looking for required URL variables', requiredVariables);
@@ -27806,7 +27902,7 @@
27806
27902
  });
27807
27903
  });
27808
27904
  $.each(formArray, function (i, el) {
27809
- if (!settings.regExp.validate.test(el.name)) {
27905
+ if (!regExp.validate.test(el.name)) {
27810
27906
  return;
27811
27907
  }
27812
27908
  var
@@ -27817,7 +27913,7 @@
27817
27913
  || (String(floatValue) === el.value
27818
27914
  ? floatValue
27819
27915
  : (el.value === 'false' ? false : el.value)),
27820
- nameKeys = el.name.match(settings.regExp.key) || [],
27916
+ nameKeys = el.name.match(regExp.key) || [],
27821
27917
  pushKey = el.name.replace(/\[]$/, '')
27822
27918
  ;
27823
27919
  if (!(pushKey in pushes)) {
@@ -27837,9 +27933,9 @@
27837
27933
 
27838
27934
  if (k === '' && !Array.isArray(value)) { // foo[]
27839
27935
  value = build([], pushes[pushKey]++, value);
27840
- } else if (settings.regExp.fixed.test(k)) { // foo[n]
27936
+ } else if (regExp.fixed.test(k)) { // foo[n]
27841
27937
  value = build([], k, value);
27842
- } else if (settings.regExp.named.test(k)) { // foo; foo[bar]
27938
+ } else if (regExp.named.test(k)) { // foo; foo[bar]
27843
27939
  value = build({}, k, value);
27844
27940
  }
27845
27941
  }
@@ -27994,7 +28090,7 @@
27994
28090
  module.debug('Adding error state');
27995
28091
  module.set.error();
27996
28092
  if (module.should.removeError()) {
27997
- setTimeout(module.remove.error, settings.errorDuration);
28093
+ setTimeout(function () { module.remove.error(); }, settings.errorDuration);
27998
28094
  }
27999
28095
  }
28000
28096
  module.debug('API Request failed', errorMessage, xhr);
@@ -28318,7 +28414,7 @@
28318
28414
  });
28319
28415
  }
28320
28416
  clearTimeout(module.performance.timer);
28321
- module.performance.timer = setTimeout(module.performance.display, 500);
28417
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
28322
28418
  },
28323
28419
  display: function () {
28324
28420
  var
@@ -28568,7 +28664,7 @@
28568
28664
  })(jQuery, window, document);
28569
28665
 
28570
28666
  /*!
28571
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - State
28667
+ * # Fomantic-UI 2.9.3 - State
28572
28668
  * https://github.com/fomantic/Fomantic-UI/
28573
28669
  *
28574
28670
  *
@@ -29051,7 +29147,7 @@
29051
29147
  });
29052
29148
  }
29053
29149
  clearTimeout(module.performance.timer);
29054
- module.performance.timer = setTimeout(module.performance.display, 500);
29150
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
29055
29151
  },
29056
29152
  display: function () {
29057
29153
  var
@@ -29264,7 +29360,7 @@
29264
29360
  })(jQuery, window, document);
29265
29361
 
29266
29362
  /*!
29267
- * # Fomantic-UI 2.9.3-beta.8+1d7449f - Visibility
29363
+ * # Fomantic-UI 2.9.3 - Visibility
29268
29364
  * https://github.com/fomantic/Fomantic-UI/
29269
29365
  *
29270
29366
  *
@@ -30353,7 +30449,7 @@
30353
30449
  });
30354
30450
  }
30355
30451
  clearTimeout(module.performance.timer);
30356
- module.performance.timer = setTimeout(module.performance.display, 500);
30452
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
30357
30453
  },
30358
30454
  display: function () {
30359
30455
  var