fomantic-ui 2.9.4-beta.10 → 2.9.4-beta.101

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 (295) hide show
  1. package/.all-contributorsrc +29 -1
  2. package/.eslintrc.js +17 -0
  3. package/.github/FUNDING.yml +1 -1
  4. package/.github/workflows/ci.yml +8 -8
  5. package/.github/workflows/depsreview.yml +14 -0
  6. package/.github/workflows/nightly.yml +1 -1
  7. package/.github/workflows/release.yml +1 -1
  8. package/CONTRIBUTORS.md +5 -0
  9. package/README.md +2 -12
  10. package/dist/components/accordion.css +1 -1
  11. package/dist/components/accordion.js +4 -2
  12. package/dist/components/accordion.min.css +1 -1
  13. package/dist/components/accordion.min.js +2 -2
  14. package/dist/components/ad.css +1 -1
  15. package/dist/components/ad.min.css +1 -1
  16. package/dist/components/api.js +7 -3
  17. package/dist/components/api.min.js +2 -2
  18. package/dist/components/breadcrumb.css +1 -1
  19. package/dist/components/breadcrumb.min.css +1 -1
  20. package/dist/components/button.css +21 -3
  21. package/dist/components/button.min.css +2 -2
  22. package/dist/components/calendar.css +1 -1
  23. package/dist/components/calendar.js +47 -12
  24. package/dist/components/calendar.min.css +1 -1
  25. package/dist/components/calendar.min.js +3 -3
  26. package/dist/components/card.css +1 -1
  27. package/dist/components/card.min.css +1 -1
  28. package/dist/components/checkbox.css +1 -1
  29. package/dist/components/checkbox.js +10 -4
  30. package/dist/components/checkbox.min.css +1 -1
  31. package/dist/components/checkbox.min.js +3 -3
  32. package/dist/components/comment.css +1 -1
  33. package/dist/components/comment.min.css +1 -1
  34. package/dist/components/container.css +1 -1
  35. package/dist/components/container.min.css +1 -1
  36. package/dist/components/dimmer.css +7 -3
  37. package/dist/components/dimmer.js +4 -2
  38. package/dist/components/dimmer.min.css +2 -2
  39. package/dist/components/dimmer.min.js +2 -2
  40. package/dist/components/divider.css +1 -1
  41. package/dist/components/divider.min.css +1 -1
  42. package/dist/components/dropdown.css +48 -40
  43. package/dist/components/dropdown.js +110 -35
  44. package/dist/components/dropdown.min.css +2 -2
  45. package/dist/components/dropdown.min.js +3 -3
  46. package/dist/components/embed.css +1 -1
  47. package/dist/components/embed.js +17 -7
  48. package/dist/components/embed.min.css +1 -1
  49. package/dist/components/embed.min.js +3 -3
  50. package/dist/components/emoji.css +4309 -3713
  51. package/dist/components/emoji.min.css +2 -2
  52. package/dist/components/feed.css +12 -1
  53. package/dist/components/feed.min.css +2 -2
  54. package/dist/components/flag.css +267 -265
  55. package/dist/components/flag.min.css +2 -2
  56. package/dist/components/flyout.css +3 -3
  57. package/dist/components/flyout.js +4 -2
  58. package/dist/components/flyout.min.css +1 -1
  59. package/dist/components/flyout.min.js +2 -2
  60. package/dist/components/form.css +15 -3
  61. package/dist/components/form.js +66 -23
  62. package/dist/components/form.min.css +2 -2
  63. package/dist/components/form.min.js +3 -3
  64. package/dist/components/grid.css +5 -5
  65. package/dist/components/grid.min.css +2 -2
  66. package/dist/components/header.css +1 -1
  67. package/dist/components/header.min.css +1 -1
  68. package/dist/components/icon.css +1 -1
  69. package/dist/components/icon.min.css +1 -1
  70. package/dist/components/image.css +1 -1
  71. package/dist/components/image.min.css +1 -1
  72. package/dist/components/input.css +1 -1
  73. package/dist/components/input.min.css +1 -1
  74. package/dist/components/item.css +1 -1
  75. package/dist/components/item.min.css +1 -1
  76. package/dist/components/label.css +7 -1
  77. package/dist/components/label.min.css +2 -2
  78. package/dist/components/list.css +1 -1
  79. package/dist/components/list.min.css +1 -1
  80. package/dist/components/loader.css +1 -1
  81. package/dist/components/loader.min.css +1 -1
  82. package/dist/components/menu.css +1 -1
  83. package/dist/components/menu.min.css +1 -1
  84. package/dist/components/message.css +2 -1
  85. package/dist/components/message.min.css +2 -2
  86. package/dist/components/modal.css +3 -3
  87. package/dist/components/modal.js +7 -3
  88. package/dist/components/modal.min.css +1 -1
  89. package/dist/components/modal.min.js +2 -2
  90. package/dist/components/nag.css +1 -1
  91. package/dist/components/nag.js +11 -5
  92. package/dist/components/nag.min.css +1 -1
  93. package/dist/components/nag.min.js +3 -3
  94. package/dist/components/placeholder.css +1 -1
  95. package/dist/components/placeholder.min.css +1 -1
  96. package/dist/components/popup.css +1 -1
  97. package/dist/components/popup.js +10 -4
  98. package/dist/components/popup.min.css +1 -1
  99. package/dist/components/popup.min.js +2 -2
  100. package/dist/components/progress.css +15 -6
  101. package/dist/components/progress.js +4 -2
  102. package/dist/components/progress.min.css +2 -2
  103. package/dist/components/progress.min.js +2 -2
  104. package/dist/components/rail.css +1 -1
  105. package/dist/components/rail.min.css +1 -1
  106. package/dist/components/rating.css +1 -1
  107. package/dist/components/rating.js +4 -2
  108. package/dist/components/rating.min.css +1 -1
  109. package/dist/components/rating.min.js +2 -2
  110. package/dist/components/reset.css +1 -1
  111. package/dist/components/reset.min.css +1 -1
  112. package/dist/components/reveal.css +1 -1
  113. package/dist/components/reveal.min.css +1 -1
  114. package/dist/components/search.css +34 -23
  115. package/dist/components/search.js +78 -14
  116. package/dist/components/search.min.css +2 -2
  117. package/dist/components/search.min.js +3 -3
  118. package/dist/components/segment.css +1 -1
  119. package/dist/components/segment.min.css +1 -1
  120. package/dist/components/shape.css +1 -1
  121. package/dist/components/shape.js +7 -5
  122. package/dist/components/shape.min.css +1 -1
  123. package/dist/components/shape.min.js +3 -3
  124. package/dist/components/sidebar.css +1 -1
  125. package/dist/components/sidebar.js +4 -2
  126. package/dist/components/sidebar.min.css +1 -1
  127. package/dist/components/sidebar.min.js +2 -2
  128. package/dist/components/site.css +14 -6
  129. package/dist/components/site.js +4 -2
  130. package/dist/components/site.min.css +2 -2
  131. package/dist/components/site.min.js +2 -2
  132. package/dist/components/slider.css +152 -2
  133. package/dist/components/slider.js +142 -44
  134. package/dist/components/slider.min.css +2 -2
  135. package/dist/components/slider.min.js +3 -3
  136. package/dist/components/state.js +4 -2
  137. package/dist/components/state.min.js +2 -2
  138. package/dist/components/statistic.css +1 -1
  139. package/dist/components/statistic.min.css +1 -1
  140. package/dist/components/step.css +992 -86
  141. package/dist/components/step.min.css +2 -2
  142. package/dist/components/sticky.css +1 -1
  143. package/dist/components/sticky.js +4 -2
  144. package/dist/components/sticky.min.css +1 -1
  145. package/dist/components/sticky.min.js +2 -2
  146. package/dist/components/tab.css +1 -1
  147. package/dist/components/tab.js +4 -2
  148. package/dist/components/tab.min.css +1 -1
  149. package/dist/components/tab.min.js +2 -2
  150. package/dist/components/table.css +32 -21
  151. package/dist/components/table.min.css +2 -2
  152. package/dist/components/text.css +1 -1
  153. package/dist/components/text.min.css +1 -1
  154. package/dist/components/toast.css +1 -1
  155. package/dist/components/toast.js +7 -3
  156. package/dist/components/toast.min.css +1 -1
  157. package/dist/components/toast.min.js +3 -3
  158. package/dist/components/transition.css +1 -1
  159. package/dist/components/transition.js +7 -3
  160. package/dist/components/transition.min.css +1 -1
  161. package/dist/components/transition.min.js +2 -2
  162. package/dist/components/visibility.js +4 -2
  163. package/dist/components/visibility.min.js +2 -2
  164. package/dist/semantic.css +6445 -4234
  165. package/dist/semantic.js +572 -189
  166. package/dist/semantic.min.css +3 -3
  167. package/dist/semantic.min.js +3 -3
  168. package/dist/themes/basic/assets/fonts/LICENSE.txt +91 -0
  169. package/dist/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  170. package/dist/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  171. package/dist/themes/github/assets/fonts/LICENSE.txt +94 -0
  172. package/dist/themes/material/assets/fonts/LICENSE.txt +202 -0
  173. package/package.json +14 -14
  174. package/semantic.json.example +1 -1
  175. package/src/definitions/behaviors/api.js +6 -2
  176. package/src/definitions/behaviors/form.js +65 -22
  177. package/src/definitions/behaviors/state.js +3 -1
  178. package/src/definitions/behaviors/visibility.js +3 -1
  179. package/src/definitions/collections/form.less +43 -23
  180. package/src/definitions/collections/grid.less +85 -70
  181. package/src/definitions/collections/menu.less +38 -27
  182. package/src/definitions/collections/message.less +1 -0
  183. package/src/definitions/collections/table.less +183 -157
  184. package/src/definitions/elements/button.less +61 -25
  185. package/src/definitions/elements/container.less +6 -4
  186. package/src/definitions/elements/divider.less +4 -1
  187. package/src/definitions/elements/emoji.less +3 -1
  188. package/src/definitions/elements/header.less +7 -4
  189. package/src/definitions/elements/icon.less +35 -28
  190. package/src/definitions/elements/input.less +21 -13
  191. package/src/definitions/elements/label.less +19 -8
  192. package/src/definitions/elements/list.less +28 -21
  193. package/src/definitions/elements/loader.less +17 -12
  194. package/src/definitions/elements/segment.less +12 -7
  195. package/src/definitions/elements/step.less +405 -87
  196. package/src/definitions/globals/site.js +3 -1
  197. package/src/definitions/globals/site.less +17 -12
  198. package/src/definitions/modules/accordion.js +3 -1
  199. package/src/definitions/modules/accordion.less +15 -13
  200. package/src/definitions/modules/calendar.js +46 -11
  201. package/src/definitions/modules/calendar.less +6 -4
  202. package/src/definitions/modules/checkbox.js +9 -3
  203. package/src/definitions/modules/checkbox.less +12 -6
  204. package/src/definitions/modules/dimmer.js +3 -1
  205. package/src/definitions/modules/dimmer.less +16 -10
  206. package/src/definitions/modules/dropdown.js +109 -34
  207. package/src/definitions/modules/dropdown.less +109 -78
  208. package/src/definitions/modules/embed.js +16 -6
  209. package/src/definitions/modules/flyout.js +3 -1
  210. package/src/definitions/modules/flyout.less +51 -45
  211. package/src/definitions/modules/modal.js +6 -2
  212. package/src/definitions/modules/modal.less +109 -82
  213. package/src/definitions/modules/nag.js +10 -4
  214. package/src/definitions/modules/nag.less +8 -4
  215. package/src/definitions/modules/popup.js +9 -3
  216. package/src/definitions/modules/popup.less +3 -1
  217. package/src/definitions/modules/progress.js +3 -1
  218. package/src/definitions/modules/progress.less +24 -6
  219. package/src/definitions/modules/rating.js +3 -1
  220. package/src/definitions/modules/search.js +77 -13
  221. package/src/definitions/modules/search.less +41 -25
  222. package/src/definitions/modules/shape.js +6 -4
  223. package/src/definitions/modules/sidebar.js +3 -1
  224. package/src/definitions/modules/slider.js +141 -43
  225. package/src/definitions/modules/slider.less +129 -27
  226. package/src/definitions/modules/sticky.js +3 -1
  227. package/src/definitions/modules/tab.js +3 -1
  228. package/src/definitions/modules/toast.js +6 -2
  229. package/src/definitions/modules/toast.less +35 -24
  230. package/src/definitions/modules/transition.js +6 -2
  231. package/src/definitions/views/card.less +7 -5
  232. package/src/definitions/views/feed.less +14 -1
  233. package/src/definitions/views/item.less +7 -5
  234. package/src/themes/basic/assets/fonts/LICENSE.txt +91 -0
  235. package/src/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  236. package/src/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  237. package/src/themes/default/elements/button.variables +3 -0
  238. package/src/themes/default/elements/emoji.variables +172 -23
  239. package/src/themes/default/elements/flag.variables +4 -4
  240. package/src/themes/default/elements/step.variables +33 -0
  241. package/src/themes/default/globals/site.variables +3 -0
  242. package/src/themes/default/globals/variation.variables +23 -2
  243. package/src/themes/default/modules/dropdown.variables +3 -0
  244. package/src/themes/default/modules/progress.variables +1 -1
  245. package/src/themes/default/modules/search.variables +15 -12
  246. package/src/themes/default/modules/slider.variables +10 -0
  247. package/src/themes/default/views/feed.variables +3 -0
  248. package/src/themes/github/assets/fonts/LICENSE.txt +94 -0
  249. package/src/themes/joypixels/elements/emoji.variables +183 -22
  250. package/src/themes/material/assets/fonts/LICENSE.txt +202 -0
  251. package/tasks/admin/components/create.js +4 -4
  252. package/tasks/admin/components/init.js +2 -2
  253. package/tasks/admin/components/update.js +3 -3
  254. package/tasks/admin/distributions/create.js +3 -3
  255. package/tasks/admin/distributions/init.js +2 -2
  256. package/tasks/admin/distributions/update.js +4 -4
  257. package/tasks/build/assets.js +1 -1
  258. package/tasks/build/css.js +19 -10
  259. package/tasks/build/javascript.js +12 -5
  260. package/tasks/check-install.js +1 -1
  261. package/tasks/config/defaults.js +4 -0
  262. package/tasks/config/project/release.js +19 -1
  263. package/tasks/config/tasks.js +7 -7
  264. package/tasks/docs/build.js +3 -3
  265. package/tasks/docs/metadata.js +1 -1
  266. package/tasks/docs/serve.js +3 -1
  267. package/tasks/install.js +2 -2
  268. package/tasks/watch.js +1 -1
  269. package/types/fomantic-ui-accordion.d.ts +1 -1
  270. package/types/fomantic-ui-api.d.ts +9 -3
  271. package/types/fomantic-ui-calendar.d.ts +114 -13
  272. package/types/fomantic-ui-checkbox.d.ts +14 -4
  273. package/types/fomantic-ui-dimmer.d.ts +1 -1
  274. package/types/fomantic-ui-dropdown.d.ts +82 -44
  275. package/types/fomantic-ui-embed.d.ts +19 -2
  276. package/types/fomantic-ui-flyout.d.ts +25 -11
  277. package/types/fomantic-ui-form.d.ts +123 -15
  278. package/types/fomantic-ui-modal.d.ts +101 -5
  279. package/types/fomantic-ui-nag.d.ts +4 -4
  280. package/types/fomantic-ui-popup.d.ts +38 -12
  281. package/types/fomantic-ui-progress.d.ts +12 -6
  282. package/types/fomantic-ui-rating.d.ts +1 -1
  283. package/types/fomantic-ui-search.d.ts +138 -22
  284. package/types/fomantic-ui-shape.d.ts +2 -2
  285. package/types/fomantic-ui-sidebar.d.ts +4 -4
  286. package/types/fomantic-ui-slider.d.ts +56 -4
  287. package/types/fomantic-ui-sticky.d.ts +1 -1
  288. package/types/fomantic-ui-tab.d.ts +6 -6
  289. package/types/fomantic-ui-toast.d.ts +14 -2
  290. package/types/fomantic-ui-transition.d.ts +41 -7
  291. package/types/fomantic-ui-visibility.d.ts +3 -3
  292. package/types/index.d.ts +25 -25
  293. package/types/tests.ts +188 -0
  294. package/types/tsconfig.json +1 -1
  295. package/types/fomantic-ui-tests.ts +0 -25
package/dist/semantic.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.4-beta.10+3564140
2
+ * # Fomantic UI - 2.9.4-beta.101+96ed453
3
3
  * https://github.com/fomantic/Fomantic-UI
4
4
  * https://fomantic-ui.com/
5
5
  *
6
- * Copyright 2023 Contributors
6
+ * Copyright 2025 Contributors
7
7
  * Released under the MIT license
8
8
  * https://opensource.org/licenses/MIT
9
9
  *
10
10
  */
11
11
  /*!
12
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Site
12
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Site
13
13
  * https://github.com/fomantic/Fomantic-UI/
14
14
  *
15
15
  *
@@ -302,7 +302,9 @@
302
302
  });
303
303
  }
304
304
  clearTimeout(module.performance.timer);
305
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
305
+ module.performance.timer = setTimeout(function () {
306
+ module.performance.display();
307
+ }, 500);
306
308
  },
307
309
  display: function () {
308
310
  var
@@ -463,7 +465,7 @@
463
465
  })(jQuery, window, document);
464
466
 
465
467
  /*!
466
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Form Validation
468
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Form Validation
467
469
  * https://github.com/fomantic/Fomantic-UI/
468
470
  *
469
471
  *
@@ -502,6 +504,7 @@
502
504
  element = this,
503
505
 
504
506
  formErrors = [],
507
+ formErrorsTracker = {},
505
508
  keyHeldDown = false,
506
509
 
507
510
  // set at run-time
@@ -1002,6 +1005,13 @@
1002
1005
  fullFields[name].rules.push({ type: rule });
1003
1006
  });
1004
1007
  }
1008
+
1009
+ $.each(fullFields[name].rules, function (index, rule) {
1010
+ var ruleName = module.get.ruleName(rule);
1011
+ if (ruleName === 'empty') {
1012
+ module.warn('*** DEPRECATED *** : Rule "empty" for field "' + name + '" will be removed in a future version. -> Use "notEmpty" rule instead.');
1013
+ }
1014
+ });
1005
1015
  });
1006
1016
 
1007
1017
  return fullFields;
@@ -1015,9 +1025,10 @@
1015
1025
  ancillary = module.get.ancillaryValue(rule),
1016
1026
  $field = module.get.field(field.identifier),
1017
1027
  value = $field.val(),
1018
- prompt = isFunction(rule.prompt)
1019
- ? rule.prompt(value)
1020
- : rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
1028
+ promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
1029
+ prompt = String(isFunction(promptCheck)
1030
+ ? promptCheck.call($field[0], value)
1031
+ : promptCheck),
1021
1032
  requiresValue = prompt.search('{value}') !== -1,
1022
1033
  requiresName = prompt.search('{name}') !== -1,
1023
1034
  parts,
@@ -1055,10 +1066,10 @@
1055
1066
  },
1056
1067
  settings: function () {
1057
1068
  if ($.isPlainObject(parameters)) {
1058
- if (parameters.fields) {
1059
- parameters.fields = module.get.fieldsFromShorthand(parameters.fields);
1060
- }
1061
1069
  settings = $.extend(true, {}, $.fn.form.settings, parameters);
1070
+ if (settings.fields) {
1071
+ settings.fields = module.get.fieldsFromShorthand(settings.fields);
1072
+ }
1062
1073
  validation = $.extend(true, {}, $.fn.form.settings.defaults, settings.fields);
1063
1074
  module.verbose('Extending settings', validation, settings);
1064
1075
  } else {
@@ -1175,7 +1186,7 @@
1175
1186
  var
1176
1187
  $field = $(field),
1177
1188
  $calendar = $field.closest(selector.uiCalendar),
1178
- name = $field.prop('name'),
1189
+ name = $field.prop('name') || $field.prop('id'),
1179
1190
  value = $field.val(),
1180
1191
  isCheckbox = $field.is(selector.checkbox),
1181
1192
  isRadio = $field.is(selector.radio),
@@ -1404,7 +1415,7 @@
1404
1415
  $prompt.css('display', 'none');
1405
1416
  }
1406
1417
  $prompt
1407
- .appendTo($fieldGroup)
1418
+ .appendTo($fieldGroup.filter('.' + className.error))
1408
1419
  ;
1409
1420
  }
1410
1421
  $prompt
@@ -1701,20 +1712,20 @@
1701
1712
  isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required),
1702
1713
  isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled),
1703
1714
  validation = module.get.validation($el),
1704
- hasEmptyRule = validation
1715
+ hasNotEmptyRule = validation
1705
1716
  ? $.grep(validation.rules, function (rule) {
1706
- return rule.type === 'empty';
1707
- }) !== 0
1717
+ return ['notEmpty', 'checked', 'empty'].indexOf(rule.type) >= 0;
1718
+ }).length > 0
1708
1719
  : false,
1709
1720
  identifier = module.get.identifier(validation, $el)
1710
1721
  ;
1711
- if (isRequired && !isDisabled && !hasEmptyRule && identifier !== undefined) {
1722
+ if (isRequired && !isDisabled && !hasNotEmptyRule && identifier !== undefined) {
1712
1723
  if (isCheckbox) {
1713
1724
  module.verbose("Adding 'checked' rule on field", identifier);
1714
1725
  module.add.rule(identifier, 'checked');
1715
1726
  } else {
1716
- module.verbose("Adding 'empty' rule on field", identifier);
1717
- module.add.rule(identifier, 'empty');
1727
+ module.verbose("Adding 'notEmpty' rule on field", identifier);
1728
+ module.add.rule(identifier, 'notEmpty');
1718
1729
  }
1719
1730
  }
1720
1731
  });
@@ -1741,6 +1752,7 @@
1741
1752
  $module.removeClass(className.initial);
1742
1753
  // reset errors
1743
1754
  formErrors = [];
1755
+ formErrorsTracker = {};
1744
1756
  if (module.determine.isValid()) {
1745
1757
  module.debug('Form has no validation errors, submitting');
1746
1758
  module.set.success();
@@ -1806,28 +1818,30 @@
1806
1818
  var
1807
1819
  identifier = field.identifier || fieldName,
1808
1820
  $field = module.get.field(identifier),
1821
+ $fieldGroup = $field.closest($group),
1809
1822
  $dependsField = field.depends
1810
1823
  ? module.get.field(field.depends)
1811
1824
  : false,
1812
1825
  fieldValid = true,
1813
1826
  fieldErrors = [],
1814
- isDisabled = $field.filter(':not(:disabled)').length === 0,
1827
+ isDisabled = $field.filter(':not(:disabled)').length === 0 || $fieldGroup.hasClass(className.disabled) || $fieldGroup.parent().hasClass(className.disabled),
1815
1828
  validationMessage = $field[0].validationMessage,
1829
+ noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0,
1816
1830
  errorLimit
1817
1831
  ;
1818
1832
  if (!field.identifier) {
1819
1833
  module.debug('Using field name as identifier', identifier);
1820
1834
  field.identifier = identifier;
1821
1835
  }
1822
- if (validationMessage) {
1836
+ if (validationMessage && !noNativeValidation && !isDisabled) {
1823
1837
  module.debug('Field is natively invalid', identifier);
1824
1838
  fieldErrors.push(validationMessage);
1825
1839
  fieldValid = false;
1826
1840
  if (showErrors) {
1827
- $field.closest($group).addClass(className.error);
1841
+ $fieldGroup.addClass(className.error);
1828
1842
  }
1829
1843
  } else if (showErrors) {
1830
- $field.closest($group).removeClass(className.error);
1844
+ $fieldGroup.removeClass(className.error);
1831
1845
  }
1832
1846
  if (isDisabled) {
1833
1847
  module.debug('Field is disabled. Skipping', identifier);
@@ -1842,7 +1856,22 @@
1842
1856
  var invalidFields = module.validate.rule(field, rule, true) || [];
1843
1857
  if (invalidFields.length > 0) {
1844
1858
  module.debug('Field is invalid', identifier, rule.type);
1845
- fieldErrors.push(module.get.prompt(rule, field));
1859
+ var fieldError = module.get.prompt(rule, field);
1860
+ if (!settings.inline) {
1861
+ if (
1862
+ // Always allow the first error prompt for new field identifiers
1863
+ (!(identifier in formErrorsTracker)
1864
+ // Also allow multiple error prompts per field identifier but make sure each prompt is unique
1865
+ || formErrorsTracker[identifier].indexOf(fieldError) === -1)
1866
+ // Limit the number of unique error prompts for every field identifier if specified
1867
+ && (!errorLimit || (formErrorsTracker[identifier] || []).length < errorLimit)
1868
+ ) {
1869
+ fieldErrors.push(fieldError);
1870
+ (formErrorsTracker[identifier] = formErrorsTracker[identifier] || []).push(fieldError);
1871
+ }
1872
+ } else {
1873
+ fieldErrors.push(fieldError);
1874
+ }
1846
1875
  fieldValid = false;
1847
1876
  if (showErrors) {
1848
1877
  $(invalidFields).closest($group).addClass(className.error);
@@ -1857,7 +1886,7 @@
1857
1886
  settings.onValid.call($field);
1858
1887
  }
1859
1888
  } else {
1860
- if (showErrors) {
1889
+ if (showErrors && fieldErrors.length > 0) {
1861
1890
  formErrors = formErrors.concat(fieldErrors);
1862
1891
  module.add.prompt(identifier, fieldErrors, true);
1863
1892
  settings.onInvalid.call($field, fieldErrors);
@@ -1955,6 +1984,12 @@
1955
1984
  module.error.apply(console, arguments);
1956
1985
  }
1957
1986
  },
1987
+ warn: function () {
1988
+ if (!settings.silent) {
1989
+ module.warn = Function.prototype.bind.call(console.warn, console, settings.name + ':');
1990
+ module.warn.apply(console, arguments);
1991
+ }
1992
+ },
1958
1993
  performance: {
1959
1994
  log: function (message) {
1960
1995
  var
@@ -1975,7 +2010,9 @@
1975
2010
  });
1976
2011
  }
1977
2012
  clearTimeout(module.performance.timer);
1978
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
2013
+ module.performance.timer = setTimeout(function () {
2014
+ module.performance.display();
2015
+ }, 500);
1979
2016
  },
1980
2017
  display: function () {
1981
2018
  var
@@ -2069,6 +2106,7 @@
2069
2106
  name: 'Form',
2070
2107
  namespace: 'form',
2071
2108
 
2109
+ silent: false,
2072
2110
  debug: false,
2073
2111
  verbose: false,
2074
2112
  performance: true,
@@ -2091,6 +2129,7 @@
2091
2129
  errorFocus: true,
2092
2130
  dateHandling: 'date', // 'date', 'input', 'formatter'
2093
2131
  errorLimit: 0,
2132
+ noNativeValidation: false,
2094
2133
 
2095
2134
  onValid: function () {},
2096
2135
  onInvalid: function () {},
@@ -2133,6 +2172,7 @@
2133
2172
  maxValue: '{name} must have a maximum value of {ruleValue}',
2134
2173
  minValue: '{name} must have a minimum value of {ruleValue}',
2135
2174
  empty: '{name} must have a value',
2175
+ notEmpty: '{name} must have a value',
2136
2176
  checked: '{name} must be checked',
2137
2177
  email: '{name} must be a valid e-mail',
2138
2178
  url: '{name} must be a valid url',
@@ -2265,10 +2305,15 @@
2265
2305
  rules: {
2266
2306
 
2267
2307
  // is not empty or blank string
2268
- empty: function (value) {
2308
+ notEmpty: function (value) {
2269
2309
  return !(value === undefined || value === '' || (Array.isArray(value) && value.length === 0));
2270
2310
  },
2271
2311
 
2312
+ /* Deprecated */
2313
+ empty: function (value) {
2314
+ return $.fn.form.settings.rules.notEmpty(value);
2315
+ },
2316
+
2272
2317
  // checkbox checked
2273
2318
  checked: function () {
2274
2319
  return $(this).filter(':checked').length > 0;
@@ -2620,7 +2665,7 @@
2620
2665
  })(jQuery, window, document);
2621
2666
 
2622
2667
  /*!
2623
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Accordion
2668
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Accordion
2624
2669
  * https://github.com/fomantic/Fomantic-UI/
2625
2670
  *
2626
2671
  *
@@ -3059,7 +3104,9 @@
3059
3104
  });
3060
3105
  }
3061
3106
  clearTimeout(module.performance.timer);
3062
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
3107
+ module.performance.timer = setTimeout(function () {
3108
+ module.performance.display();
3109
+ }, 500);
3063
3110
  },
3064
3111
  display: function () {
3065
3112
  var
@@ -3214,7 +3261,7 @@
3214
3261
  })(jQuery, window, document);
3215
3262
 
3216
3263
  /*!
3217
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Calendar
3264
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Calendar
3218
3265
  * https://github.com/fomantic/Fomantic-UI/
3219
3266
  *
3220
3267
  *
@@ -3317,7 +3364,17 @@
3317
3364
 
3318
3365
  destroy: function () {
3319
3366
  module.verbose('Destroying previous calendar for', element);
3320
- $module.removeData(moduleNamespace);
3367
+ $module.removeData([
3368
+ metadata.date,
3369
+ metadata.focusDate,
3370
+ metadata.startDate,
3371
+ metadata.endDate,
3372
+ metadata.minDate,
3373
+ metadata.maxDate,
3374
+ metadata.mode,
3375
+ metadata.monthOffset,
3376
+ moduleNamespace,
3377
+ ]);
3321
3378
  module.unbind.events();
3322
3379
  module.disconnect.classObserver();
3323
3380
  },
@@ -4007,24 +4064,32 @@
4007
4064
  formattedDate: function (format, date) {
4008
4065
  return module.helper.dateFormat(format || formatter[settings.type], date || module.get.date());
4009
4066
  },
4010
- date: function () {
4011
- return module.helper.sanitiseDate($module.data(metadata.date)) || null;
4067
+ date: function (format) {
4068
+ return module.helper.dateObjectOrFormatted(format, $module.data(metadata.date));
4012
4069
  },
4013
4070
  inputDate: function () {
4014
4071
  return $input.val();
4015
4072
  },
4016
- focusDate: function () {
4017
- return $module.data(metadata.focusDate) || null;
4073
+ focusDate: function (format) {
4074
+ return module.helper.dateObjectOrFormatted(format, $module.data(metadata.focusDate));
4018
4075
  },
4019
- startDate: function () {
4076
+ startDate: function (format) {
4020
4077
  var startModule = module.get.calendarModule(settings.startCalendar);
4021
4078
 
4022
- return (startModule ? startModule.get.date() : $module.data(metadata.startDate)) || null;
4079
+ if (startModule) {
4080
+ return startModule.get.date(format);
4081
+ }
4082
+
4083
+ return module.helper.dateObjectOrFormatted(format, $module.data(metadata.startDate));
4023
4084
  },
4024
- endDate: function () {
4085
+ endDate: function (format) {
4025
4086
  var endModule = module.get.calendarModule(settings.endCalendar);
4026
4087
 
4027
- return (endModule ? endModule.get.date() : $module.data(metadata.endDate)) || null;
4088
+ if (endModule) {
4089
+ return endModule.get.date(format);
4090
+ }
4091
+
4092
+ return module.helper.dateObjectOrFormatted(format, $module.data(metadata.endDate));
4028
4093
  },
4029
4094
  minDate: function () {
4030
4095
  return $module.data(metadata.minDate) || null;
@@ -4340,6 +4405,20 @@
4340
4405
  return match.slice(1, -1);
4341
4406
  });
4342
4407
  },
4408
+ dateObjectOrFormatted: function (format, date) {
4409
+ format = format || '';
4410
+ date = module.helper.sanitiseDate(date) || null;
4411
+
4412
+ if (!date) {
4413
+ return null;
4414
+ }
4415
+
4416
+ if (format === '') {
4417
+ return date;
4418
+ }
4419
+
4420
+ return module.helper.dateFormat(format, date);
4421
+ },
4343
4422
  isDisabled: function (date, mode) {
4344
4423
  return (mode === 'day' || mode === 'month' || mode === 'year' || mode === 'hour') && (((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function (d) {
4345
4424
  var blocked = false;
@@ -4694,7 +4773,9 @@
4694
4773
  });
4695
4774
  }
4696
4775
  clearTimeout(module.performance.timer);
4697
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
4776
+ module.performance.timer = setTimeout(function () {
4777
+ module.performance.display();
4778
+ }, 500);
4698
4779
  },
4699
4780
  display: function () {
4700
4781
  var
@@ -4902,7 +4983,8 @@
4902
4983
  text = settings.monthFirst || !/^\d{1,2}[./-]/.test(text) ? text : text.replace(/[./-]/g, '/').replace(/(\d+)\/(\d+)/, '$2/$1');
4903
4984
  var textDate = new Date(text);
4904
4985
  var numberOnly = text.match(/^\d+$/) !== null;
4905
- if (!numberOnly && !isNaN(textDate.getDate())) {
4986
+ var isShortYear = text.match(/^(?:\d{1,2}[./-]){2}\d{1,2}$/) !== null;
4987
+ if (!isShortYear && !numberOnly && !isNaN(textDate.getDate())) {
4906
4988
  return textDate;
4907
4989
  }
4908
4990
  text = text.toLowerCase();
@@ -5225,7 +5307,7 @@
5225
5307
  })(jQuery, window, document);
5226
5308
 
5227
5309
  /*!
5228
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Checkbox
5310
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Checkbox
5229
5311
  * https://github.com/fomantic/Fomantic-UI/
5230
5312
  *
5231
5313
  *
@@ -5436,7 +5518,7 @@
5436
5518
  ;
5437
5519
 
5438
5520
  var
5439
- r = module.get.radios(),
5521
+ r = module.get.radios().not(selector.disabled),
5440
5522
  rIndex = r.index($module),
5441
5523
  rLen = r.length,
5442
5524
  checkIndex = false
@@ -5454,7 +5536,10 @@
5454
5536
 
5455
5537
  return false;
5456
5538
  }
5457
- if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0]) === false) {
5539
+ var nextOption = $(r[checkIndex]),
5540
+ nextInput = nextOption.children(selector.input),
5541
+ disallowOption = nextOption.hasClass(className.readOnly) || nextInput.prop('readonly');
5542
+ if (disallowOption || settings.beforeChecked.apply(nextInput[0]) === false) {
5458
5543
  module.verbose('Next option should not allow check, cancelling key navigation');
5459
5544
 
5460
5545
  return false;
@@ -5951,7 +6036,9 @@
5951
6036
  });
5952
6037
  }
5953
6038
  clearTimeout(module.performance.timer);
5954
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
6039
+ module.performance.timer = setTimeout(function () {
6040
+ module.performance.display();
6041
+ }, 500);
5955
6042
  },
5956
6043
  display: function () {
5957
6044
  var
@@ -6099,6 +6186,7 @@
6099
6186
 
6100
6187
  selector: {
6101
6188
  checkbox: '.ui.checkbox',
6189
+ disabled: '.disabled, :has(input[disabled])',
6102
6190
  label: 'label',
6103
6191
  input: 'input[type="checkbox"], input[type="radio"]',
6104
6192
  link: 'a[href]',
@@ -6108,7 +6196,7 @@
6108
6196
  })(jQuery, window, document);
6109
6197
 
6110
6198
  /*!
6111
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Dimmer
6199
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Dimmer
6112
6200
  * https://github.com/fomantic/Fomantic-UI/
6113
6201
  *
6114
6202
  *
@@ -6637,7 +6725,9 @@
6637
6725
  });
6638
6726
  }
6639
6727
  clearTimeout(module.performance.timer);
6640
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
6728
+ module.performance.timer = setTimeout(function () {
6729
+ module.performance.display();
6730
+ }, 500);
6641
6731
  },
6642
6732
  display: function () {
6643
6733
  var
@@ -6839,7 +6929,7 @@
6839
6929
  })(jQuery, window, document);
6840
6930
 
6841
6931
  /*!
6842
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Dropdown
6932
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Dropdown
6843
6933
  * https://github.com/fomantic/Fomantic-UI/
6844
6934
  *
6845
6935
  *
@@ -6967,6 +7057,9 @@
6967
7057
  module.change.values(settings.values);
6968
7058
  module.remove.initialLoad();
6969
7059
  }
7060
+ if (module.get.placeholderText() !== '') {
7061
+ module.set.placeholderText();
7062
+ }
6970
7063
 
6971
7064
  module.refreshData();
6972
7065
 
@@ -7633,7 +7726,7 @@
7633
7726
  }
7634
7727
  if (module.is.multiple()) {
7635
7728
  $.each(preSelected, function (index, value) {
7636
- $item.filter('[data-value="' + value + '"]')
7729
+ $item.filter('[data-' + metadata.value + '="' + value + '"]')
7637
7730
  .addClass(className.filtered)
7638
7731
  ;
7639
7732
  });
@@ -7730,11 +7823,13 @@
7730
7823
  ? query
7731
7824
  : module.get.query()
7732
7825
  ),
7733
- results = null,
7734
- escapedTerm = module.escape.string(searchTerm),
7735
- regExpFlags = (settings.ignoreSearchCase ? 'i' : '') + 'gm',
7826
+ results = null,
7827
+ escapedTerm = module.escape.string(searchTerm),
7828
+ regExpIgnore = settings.ignoreSearchCase ? 'i' : '',
7829
+ regExpFlags = regExpIgnore + 'gm',
7736
7830
  beginsWithRegExp = new RegExp('^' + escapedTerm, regExpFlags)
7737
7831
  ;
7832
+ module.remove.filteredItem();
7738
7833
  // avoid loop if we're matching nothing
7739
7834
  if (module.has.query()) {
7740
7835
  results = [];
@@ -7778,12 +7873,34 @@
7778
7873
  ;
7779
7874
  }
7780
7875
  module.debug('Showing only matched items', searchTerm);
7781
- module.remove.filteredItem();
7782
7876
  if (results) {
7783
7877
  $item
7784
7878
  .not(results)
7785
7879
  .addClass(className.filtered)
7786
7880
  ;
7881
+ if (settings.highlightMatches && (settings.match === 'both' || settings.match === 'text')) {
7882
+ var querySplit = query.split(''),
7883
+ diacriticReg = settings.ignoreDiacritics ? '[\u0300-\u036F]?' : '',
7884
+ htmlReg = '(?![^<]*>)',
7885
+ markedRegExp = new RegExp(htmlReg + '(' + querySplit.join(diacriticReg + ')(.*?)' + htmlReg + '(') + diacriticReg + ')', regExpIgnore),
7886
+ markedReplacer = function () {
7887
+ var args = [].slice.call(arguments, 1, querySplit.length * 2).map(function (x, i) {
7888
+ return i & 1 ? x : '<mark>' + x + '</mark>'; // eslint-disable-line no-bitwise
7889
+ });
7890
+
7891
+ return args.join('');
7892
+ }
7893
+ ;
7894
+ $.each(results, function (index, result) {
7895
+ var $result = $(result),
7896
+ markedHTML = module.get.choiceText($result, true)
7897
+ ;
7898
+ if (settings.ignoreDiacritics) {
7899
+ markedHTML = markedHTML.normalize('NFD');
7900
+ }
7901
+ $result.html(markedHTML.replace(markedRegExp, markedReplacer));
7902
+ });
7903
+ }
7787
7904
  }
7788
7905
 
7789
7906
  if (!module.has.query()) {
@@ -7819,8 +7936,10 @@
7819
7936
  termLength = term.length,
7820
7937
  queryLength = query.length
7821
7938
  ;
7822
- query = settings.ignoreSearchCase ? query.toLowerCase() : query;
7823
- term = settings.ignoreSearchCase ? term.toLowerCase() : term;
7939
+ if (settings.ignoreSearchCase) {
7940
+ query = query.toLowerCase();
7941
+ term = term.toLowerCase();
7942
+ }
7824
7943
  if (queryLength > termLength) {
7825
7944
  return false;
7826
7945
  }
@@ -8027,7 +8146,7 @@
8027
8146
  if (!itemActivated && !pageLostFocus) {
8028
8147
  if (settings.forceSelection) {
8029
8148
  module.forceSelection();
8030
- } else if (!settings.allowAdditions) {
8149
+ } else if (!settings.allowAdditions && !settings.keepSearchTerm && !module.has.menuSearch()) {
8031
8150
  module.remove.searchTerm();
8032
8151
  }
8033
8152
  module.hide();
@@ -8042,7 +8161,9 @@
8042
8161
  if (module.is.searchSelection()) {
8043
8162
  module.remove.searchTerm();
8044
8163
  }
8045
- module.hide();
8164
+ if (settings.collapseOnClearable) {
8165
+ module.hide();
8166
+ }
8046
8167
  event.stopPropagation();
8047
8168
  },
8048
8169
  },
@@ -8076,7 +8197,9 @@
8076
8197
  module.set.filtered();
8077
8198
  }
8078
8199
  clearTimeout(module.timer);
8079
- module.timer = setTimeout(function () { module.search(); }, settings.delay.search);
8200
+ module.timer = setTimeout(function () {
8201
+ module.search();
8202
+ }, settings.delay.search);
8080
8203
  },
8081
8204
  label: {
8082
8205
  click: function (event) {
@@ -8253,7 +8376,9 @@
8253
8376
  module.remove.userAddition();
8254
8377
  }
8255
8378
  if (!settings.keepSearchTerm) {
8256
- module.remove.filteredItem();
8379
+ if (module.is.multiple()) {
8380
+ module.remove.filteredItem();
8381
+ }
8257
8382
  module.remove.searchTerm();
8258
8383
  }
8259
8384
  if (!module.is.visible() && $target.length > 0) {
@@ -8425,7 +8550,7 @@
8425
8550
  module.verbose('Selecting item from keyboard shortcut', $selectedItem);
8426
8551
  module.event.item.click.call($selectedItem, event);
8427
8552
  }
8428
- if (module.is.searchSelection()) {
8553
+ if (module.is.searchSelection() && !settings.keepSearchTerm) {
8429
8554
  module.remove.searchTerm();
8430
8555
  }
8431
8556
  if (module.is.multiple()) {
@@ -9427,7 +9552,7 @@
9427
9552
  } else {
9428
9553
  $combo.text(text);
9429
9554
  }
9430
- } else if (settings.action === 'activate') {
9555
+ } else if (settings.action === 'activate' || isFunction(settings.action)) {
9431
9556
  if (text !== module.get.placeholderText() || isNotPlaceholder) {
9432
9557
  $text.removeClass(className.placeholder);
9433
9558
  }
@@ -9487,7 +9612,7 @@
9487
9612
  module.set.scrollPosition($nextValue);
9488
9613
  $selectedItem.removeClass(className.selected);
9489
9614
  $nextValue.addClass(className.selected);
9490
- if (settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
9615
+ if (settings.selectOnKeydown && module.is.single() && (!$nextItem || !$nextItem.hasClass(className.actionable))) {
9491
9616
  module.set.selectedItem($nextValue);
9492
9617
  }
9493
9618
  }
@@ -9608,19 +9733,27 @@
9608
9733
  $selectedItem = settings.allowAdditions
9609
9734
  ? $selectedItem || module.get.itemWithAdditions(value)
9610
9735
  : $selectedItem || module.get.item(value);
9611
- if (!$selectedItem) {
9736
+ if (!$selectedItem && value !== undefined) {
9612
9737
  return false;
9613
9738
  }
9614
- module.debug('Setting selected menu item to', $selectedItem);
9615
- if (module.is.multiple() && !keepSearchTerm) {
9616
- module.remove.searchWidth();
9617
- }
9618
- if (module.is.single()) {
9739
+ if (isMultiple) {
9740
+ if (!keepSearchTerm) {
9741
+ module.remove.searchWidth();
9742
+ }
9743
+ if (settings.useLabels) {
9744
+ module.remove.selectedItem();
9745
+ if (value === undefined) {
9746
+ module.remove.labels($module.find(selector.label), true);
9747
+ }
9748
+ }
9749
+ } else {
9619
9750
  module.remove.activeItem();
9620
9751
  module.remove.selectedItem();
9621
- } else if (settings.useLabels) {
9622
- module.remove.selectedItem();
9623
9752
  }
9753
+ if (!$selectedItem) {
9754
+ return false;
9755
+ }
9756
+ module.debug('Setting selected menu item to', $selectedItem);
9624
9757
  // select each item
9625
9758
  $selectedItem
9626
9759
  .each(function () {
@@ -9920,6 +10053,12 @@
9920
10053
  $item.removeClass(className.active);
9921
10054
  },
9922
10055
  filteredItem: function () {
10056
+ if (settings.highlightMatches) {
10057
+ $.each($item, function (index, item) {
10058
+ var $markItem = $(item);
10059
+ $markItem.html($markItem.html().replace(/<\/?mark>/g, ''));
10060
+ });
10061
+ }
9923
10062
  if (settings.useLabels && module.has.maxSelections()) {
9924
10063
  return;
9925
10064
  }
@@ -10264,7 +10403,12 @@
10264
10403
  return $selectedMenu.hasClass(className.leftward);
10265
10404
  },
10266
10405
  clearable: function () {
10267
- return $module.hasClass(className.clearable) || settings.clearable;
10406
+ var hasClearableClass = $module.hasClass(className.clearable);
10407
+ if (!hasClearableClass && settings.clearable) {
10408
+ $module.addClass(className.clearable);
10409
+ }
10410
+
10411
+ return hasClearableClass || settings.clearable;
10268
10412
  },
10269
10413
  disabled: function () {
10270
10414
  return $module.hasClass(className.disabled);
@@ -10587,12 +10731,16 @@
10587
10731
  show: function () {
10588
10732
  module.verbose('Delaying show event to ensure user intent');
10589
10733
  clearTimeout(module.timer);
10590
- module.timer = setTimeout(function () { module.show(); }, settings.delay.show);
10734
+ module.timer = setTimeout(function () {
10735
+ module.show();
10736
+ }, settings.delay.show);
10591
10737
  },
10592
10738
  hide: function () {
10593
10739
  module.verbose('Delaying hide event to ensure user intent');
10594
10740
  clearTimeout(module.timer);
10595
- module.timer = setTimeout(function () { module.hide(); }, settings.delay.hide);
10741
+ module.timer = setTimeout(function () {
10742
+ module.hide();
10743
+ }, settings.delay.hide);
10596
10744
  },
10597
10745
  },
10598
10746
 
@@ -10625,6 +10773,7 @@
10625
10773
  return text.replace(regExp.escape, '\\$&');
10626
10774
  },
10627
10775
  htmlEntities: function (string, forceAmpersand) {
10776
+ forceAmpersand = typeof forceAmpersand === 'number' ? false : forceAmpersand;
10628
10777
  var
10629
10778
  badChars = /["'<>`]/g,
10630
10779
  shouldEscape = /["&'<>`]/,
@@ -10641,8 +10790,7 @@
10641
10790
  ;
10642
10791
  if (shouldEscape.test(string)) {
10643
10792
  string = string.replace(forceAmpersand ? /&/g : /&(?![\d#a-z]{1,12};)/gi, '&amp;');
10644
-
10645
- return string.replace(badChars, escapedChar);
10793
+ string = string.replace(badChars, escapedChar);
10646
10794
  }
10647
10795
 
10648
10796
  return string;
@@ -10718,7 +10866,9 @@
10718
10866
  });
10719
10867
  }
10720
10868
  clearTimeout(module.performance.timer);
10721
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
10869
+ module.performance.timer = setTimeout(function () {
10870
+ module.performance.display();
10871
+ }, 500);
10722
10872
  },
10723
10873
  display: function () {
10724
10874
  var
@@ -10845,6 +10995,7 @@
10845
10995
 
10846
10996
  match: 'both', // what to match against with search selection (both, text, or label)
10847
10997
  fullTextSearch: 'exact', // search anywhere in value (set to 'exact' to require exact matches)
10998
+ highlightMatches: false, // Whether search result should highlight matching strings
10848
10999
  ignoreDiacritics: false, // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à", etc...)
10849
11000
  hideDividers: false, // Whether to hide any divider elements (specified in selector.divider) that are sibling to any items when searched (set to true will hide all dividers, set to 'empty' will hide them when they are not followed by a visible item)
10850
11001
 
@@ -10878,6 +11029,7 @@
10878
11029
  headerDivider: true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
10879
11030
 
10880
11031
  collapseOnActionable: true, // whether the dropdown should collapse upon selection of an actionable item
11032
+ collapseOnClearable: false, // whether the dropdown should collapse upon clicking the clearable icon
10881
11033
 
10882
11034
  // label settings on multi-select
10883
11035
  label: {
@@ -10960,9 +11112,11 @@
10960
11112
  descriptionVertical: 'descriptionVertical', // whether description should be vertical
10961
11113
  value: 'value', // actual dropdown value
10962
11114
  text: 'text', // displayed text when selected
11115
+ data: 'data', // custom data attributes
10963
11116
  type: 'type', // type of dropdown element
10964
11117
  image: 'image', // optional image path
10965
11118
  imageClass: 'imageClass', // optional individual class for image
11119
+ alt: 'alt', // optional alt text for image
10966
11120
  icon: 'icon', // optional icon name
10967
11121
  iconClass: 'iconClass', // optional individual class for icon (for example to use flag instead)
10968
11122
  class: 'class', // optional individual class for item/header
@@ -11069,8 +11223,7 @@
11069
11223
  ;
11070
11224
  if (shouldEscape.test(string)) {
11071
11225
  string = string.replace(/&(?![\d#a-z]{1,12};)/gi, '&amp;');
11072
-
11073
- return string.replace(badChars, escapedChar);
11226
+ string = string.replace(badChars, escapedChar);
11074
11227
  }
11075
11228
 
11076
11229
  return string;
@@ -11105,9 +11258,21 @@
11105
11258
  $.each(values, function (index, option) {
11106
11259
  var
11107
11260
  itemType = option[fields.type] || 'item',
11108
- isMenu = itemType.indexOf('menu') !== -1
11261
+ isMenu = itemType.indexOf('menu') !== -1,
11262
+ maybeData = '',
11263
+ dataObject = option[fields.data]
11109
11264
  ;
11110
-
11265
+ if (dataObject) {
11266
+ var dataKey,
11267
+ dataKeyEscaped
11268
+ ;
11269
+ for (dataKey in dataObject) {
11270
+ dataKeyEscaped = String(dataKey).replace(/\W/g, '');
11271
+ if (Object.prototype.hasOwnProperty.call(dataObject, dataKey) && ['text', 'value'].indexOf(dataKeyEscaped.toLowerCase()) === -1) {
11272
+ maybeData += ' data-' + dataKeyEscaped + '="' + deQuote(String(dataObject[dataKey])) + '"';
11273
+ }
11274
+ }
11275
+ }
11111
11276
  if (itemType === 'item' || isMenu) {
11112
11277
  var
11113
11278
  maybeText = option[fields.text]
@@ -11124,12 +11289,12 @@
11124
11289
  : '',
11125
11290
  hasDescription = escape(option[fields.description] || '', preserveHTML) !== ''
11126
11291
  ;
11127
- html += '<div class="' + deQuote(maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] || className.item)) + '" data-value="' + deQuote(option[fields.value], true) + '"' + maybeText + '>';
11292
+ html += '<div class="' + deQuote(maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] || className.item)) + '" data-value="' + deQuote(option[fields.value], true) + '"' + maybeText + maybeData + '>';
11128
11293
  if (isMenu) {
11129
11294
  html += '<i class="' + (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
11130
11295
  }
11131
11296
  if (option[fields.image]) {
11132
- html += '<img class="' + deQuote(option[fields.imageClass] || className.image) + '" src="' + deQuote(option[fields.image]) + '">';
11297
+ html += '<img class="' + deQuote(option[fields.imageClass] || className.image) + '" src="' + deQuote(option[fields.image]) + (option[fields.alt] ? '" alt="' + deQuote(option[fields.alt]) : '') + '">';
11133
11298
  }
11134
11299
  if (option[fields.icon]) {
11135
11300
  html += '<i class="' + deQuote(option[fields.icon] + ' ' + (option[fields.iconClass] || className.icon)) + '"></i>';
@@ -11197,7 +11362,7 @@
11197
11362
  })(jQuery, window, document);
11198
11363
 
11199
11364
  /*!
11200
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Embed
11365
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Embed
11201
11366
  * https://github.com/fomantic/Fomantic-UI/
11202
11367
  *
11203
11368
  *
@@ -11317,11 +11482,12 @@
11317
11482
 
11318
11483
  createPlaceholder: function (placeholder) {
11319
11484
  var
11320
- icon = module.get.icon()
11485
+ icon = module.get.icon(),
11486
+ alt = module.get.alt()
11321
11487
  ;
11322
11488
  placeholder = placeholder || module.get.placeholder();
11323
- $module.html(templates.placeholder(placeholder, icon));
11324
- module.debug('Creating placeholder for embed', placeholder, icon);
11489
+ $module.html(templates.placeholder(placeholder, icon, alt));
11490
+ module.debug('Creating placeholder for embed', placeholder, icon, alt);
11325
11491
  },
11326
11492
 
11327
11493
  createEmbed: function (url) {
@@ -11401,6 +11567,9 @@
11401
11567
  placeholder: function () {
11402
11568
  return settings.placeholder || $module.data(metadata.placeholder);
11403
11569
  },
11570
+ alt: function () {
11571
+ return settings.alt || $module.data(metadata.alt);
11572
+ },
11404
11573
  icon: function () {
11405
11574
  return settings.icon || ($module.data(metadata.icon) !== undefined
11406
11575
  ? $module.data(metadata.icon)
@@ -11486,6 +11655,7 @@
11486
11655
  .removeData(metadata.id)
11487
11656
  .removeData(metadata.icon)
11488
11657
  .removeData(metadata.placeholder)
11658
+ .removeData(metadata.alt)
11489
11659
  .removeData(metadata.source)
11490
11660
  .removeData(metadata.url)
11491
11661
  ;
@@ -11638,7 +11808,9 @@
11638
11808
  });
11639
11809
  }
11640
11810
  clearTimeout(module.performance.timer);
11641
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
11811
+ module.performance.timer = setTimeout(function () {
11812
+ module.performance.display();
11813
+ }, 500);
11642
11814
  },
11643
11815
  display: function () {
11644
11816
  var
@@ -11753,6 +11925,8 @@
11753
11925
  source: false,
11754
11926
  url: false,
11755
11927
  id: false,
11928
+ placeholder: false,
11929
+ alt: false,
11756
11930
 
11757
11931
  // standard video settings
11758
11932
  autoplay: 'auto',
@@ -11775,6 +11949,7 @@
11775
11949
  id: 'id',
11776
11950
  icon: 'icon',
11777
11951
  placeholder: 'placeholder',
11952
+ alt: 'alt',
11778
11953
  source: 'source',
11779
11954
  url: 'url',
11780
11955
  },
@@ -11850,7 +12025,7 @@
11850
12025
  + ' width="100%" height="100%"'
11851
12026
  + ' msallowFullScreen allowFullScreen></iframe>';
11852
12027
  },
11853
- placeholder: function (image, icon) {
12028
+ placeholder: function (image, icon, alt) {
11854
12029
  var
11855
12030
  html = '',
11856
12031
  deQuote = $.fn.embed.settings.templates.deQuote
@@ -11859,7 +12034,7 @@
11859
12034
  html += '<i class="' + deQuote(icon) + ' icon"></i>';
11860
12035
  }
11861
12036
  if (image) {
11862
- html += '<img class="placeholder" src="' + deQuote(image) + '">';
12037
+ html += '<img class="placeholder" src="' + deQuote(image) + (alt ? '" alt="' + deQuote(alt) : '') + '">';
11863
12038
  }
11864
12039
 
11865
12040
  return html;
@@ -11876,7 +12051,7 @@
11876
12051
  })(jQuery, window, document);
11877
12052
 
11878
12053
  /*!
11879
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Flyout
12054
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Flyout
11880
12055
  * https://github.com/fomantic/Fomantic-UI/
11881
12056
  *
11882
12057
  *
@@ -13096,7 +13271,9 @@
13096
13271
  });
13097
13272
  }
13098
13273
  clearTimeout(module.performance.timer);
13099
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
13274
+ module.performance.timer = setTimeout(function () {
13275
+ module.performance.display();
13276
+ }, 500);
13100
13277
  },
13101
13278
  display: function () {
13102
13279
  var
@@ -13426,7 +13603,7 @@
13426
13603
  })(jQuery, window, document);
13427
13604
 
13428
13605
  /*!
13429
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Modal
13606
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Modal
13430
13607
  * https://github.com/fomantic/Fomantic-UI/
13431
13608
  *
13432
13609
  *
@@ -13954,7 +14131,9 @@
13954
14131
  },
13955
14132
  debounce: function (method, delay) {
13956
14133
  clearTimeout(module.timer);
13957
- module.timer = setTimeout(function () { method(); }, delay);
14134
+ module.timer = setTimeout(function () {
14135
+ method();
14136
+ }, delay);
13958
14137
  },
13959
14138
  keyboard: function (event) {
13960
14139
  var
@@ -14700,7 +14879,9 @@
14700
14879
  });
14701
14880
  }
14702
14881
  clearTimeout(module.performance.timer);
14703
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
14882
+ module.performance.timer = setTimeout(function () {
14883
+ module.performance.display();
14884
+ }, 500);
14704
14885
  },
14705
14886
  display: function () {
14706
14887
  var
@@ -15060,7 +15241,7 @@
15060
15241
  })(jQuery, window, document);
15061
15242
 
15062
15243
  /*!
15063
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Nag
15244
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Nag
15064
15245
  * https://github.com/fomantic/Fomantic-UI/
15065
15246
  *
15066
15247
  *
@@ -15149,7 +15330,9 @@
15149
15330
  }
15150
15331
 
15151
15332
  if (settings.displayTime > 0) {
15152
- setTimeout(function () { module.hide(); }, settings.displayTime);
15333
+ setTimeout(function () {
15334
+ module.hide();
15335
+ }, settings.displayTime);
15153
15336
  }
15154
15337
  module.show();
15155
15338
  },
@@ -15205,8 +15388,10 @@
15205
15388
  module.debug('Dismissing nag', settings.storageMethod, settings.key, settings.value, settings.expires);
15206
15389
  module.storage.set(settings.key, settings.value);
15207
15390
  }
15208
- event.stopImmediatePropagation();
15209
- event.preventDefault();
15391
+ if (event) {
15392
+ event.stopImmediatePropagation();
15393
+ event.preventDefault();
15394
+ }
15210
15395
  },
15211
15396
 
15212
15397
  should: {
@@ -15438,7 +15623,9 @@
15438
15623
  });
15439
15624
  }
15440
15625
  clearTimeout(module.performance.timer);
15441
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
15626
+ module.performance.timer = setTimeout(function () {
15627
+ module.performance.display();
15628
+ }, 500);
15442
15629
  },
15443
15630
  display: function () {
15444
15631
  var
@@ -15621,7 +15808,7 @@
15621
15808
  })(jQuery, window, document);
15622
15809
 
15623
15810
  /*!
15624
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Popup
15811
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Popup
15625
15812
  * https://github.com/fomantic/Fomantic-UI/
15626
15813
  *
15627
15814
  *
@@ -15816,7 +16003,9 @@
15816
16003
  ;
15817
16004
  clearTimeout(module.hideTimer);
15818
16005
  if (!openedWithTouch || (openedWithTouch && settings.addTouchEvents)) {
15819
- module.showTimer = setTimeout(function () { module.show(); }, delay);
16006
+ module.showTimer = setTimeout(function () {
16007
+ module.show();
16008
+ }, delay);
15820
16009
  }
15821
16010
  },
15822
16011
  end: function () {
@@ -15826,7 +16015,9 @@
15826
16015
  : settings.delay
15827
16016
  ;
15828
16017
  clearTimeout(module.showTimer);
15829
- module.hideTimer = setTimeout(function () { module.hide(); }, delay);
16018
+ module.hideTimer = setTimeout(function () {
16019
+ module.hide();
16020
+ }, delay);
15830
16021
  },
15831
16022
  touchstart: function (event) {
15832
16023
  openedWithTouch = true;
@@ -16866,7 +17057,9 @@
16866
17057
  });
16867
17058
  }
16868
17059
  clearTimeout(module.performance.timer);
16869
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
17060
+ module.performance.timer = setTimeout(function () {
17061
+ module.performance.display();
17062
+ }, 500);
16870
17063
  },
16871
17064
  display: function () {
16872
17065
  var
@@ -17177,7 +17370,7 @@
17177
17370
  })(jQuery, window, document);
17178
17371
 
17179
17372
  /*!
17180
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Progress
17373
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Progress
17181
17374
  * https://github.com/fomantic/Fomantic-UI/
17182
17375
  *
17183
17376
  *
@@ -17969,7 +18162,9 @@
17969
18162
  });
17970
18163
  }
17971
18164
  clearTimeout(module.performance.timer);
17972
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
18165
+ module.performance.timer = setTimeout(function () {
18166
+ module.performance.display();
18167
+ }, 500);
17973
18168
  },
17974
18169
  display: function () {
17975
18170
  var
@@ -18155,7 +18350,7 @@
18155
18350
  })(jQuery, window, document);
18156
18351
 
18157
18352
  /*!
18158
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Slider
18353
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Slider
18159
18354
  * https://github.com/fomantic/Fomantic-UI/
18160
18355
  *
18161
18356
  *
@@ -18188,8 +18383,6 @@
18188
18383
  methodInvoked = typeof query === 'string',
18189
18384
  queryArguments = [].slice.call(arguments, 1),
18190
18385
 
18191
- alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'],
18192
-
18193
18386
  SINGLE_STEP = 1,
18194
18387
  BIG_STEP = 2,
18195
18388
  NO_STEP = 0,
@@ -18238,7 +18431,6 @@
18238
18431
  position,
18239
18432
  secondPos,
18240
18433
  offset,
18241
- precision,
18242
18434
  gapRatio = 1,
18243
18435
  previousValue,
18244
18436
 
@@ -18281,6 +18473,7 @@
18281
18473
  clearInterval(instance.interval);
18282
18474
  module.unbind.events();
18283
18475
  module.unbind.slidingEvents();
18476
+ delete module.cache;
18284
18477
  $module.removeData(moduleNamespace);
18285
18478
  instance = undefined;
18286
18479
  },
@@ -18297,7 +18490,7 @@
18297
18490
  + '<div class="thumb"></div>'
18298
18491
  + '</div>');
18299
18492
  }
18300
- precision = module.get.precision();
18493
+ module.clear.cache();
18301
18494
  $thumb = $module.find('.thumb:not(.second)');
18302
18495
  if (settings.showThumbTooltip) {
18303
18496
  $thumb
@@ -18331,8 +18524,14 @@
18331
18524
  module.setup.autoLabel();
18332
18525
  }
18333
18526
 
18527
+ if (settings.highlightRange) {
18528
+ $labels.addClass(className.active);
18529
+ }
18530
+
18334
18531
  if (settings.showLabelTicks) {
18335
18532
  $module.addClass(className.ticked);
18533
+ } else if ($module.hasClass(className.ticked)) {
18534
+ settings.showLabelTicks = 'always';
18336
18535
  }
18337
18536
  }
18338
18537
  },
@@ -18367,14 +18566,20 @@
18367
18566
  } else {
18368
18567
  $labels = $module.append('<ul class="auto labels"></ul>').find('.labels');
18369
18568
  }
18370
- for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
18569
+ var step = module.get.step(),
18570
+ precision = module.get.precision(),
18571
+ len = module.get.numLabels(),
18572
+ ignoreLabels = len - (settings.autoAdjustLabels !== 'fixed' ? 0 : module.get.max().toString().length + 4)
18573
+ ;
18574
+ for (var i = 0; i <= len; i++) {
18371
18575
  var
18372
- labelText = module.get.label(i),
18576
+ stepValue = Math.round(((i * (step === 0 ? 1 : step)) + module.get.min()) * precision) / precision,
18577
+ labelText = module.get.label(i, stepValue),
18373
18578
  showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
18374
18579
  $label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
18375
- ? (!(i % module.get.gapRatio())
18376
- ? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
18377
- : $('<li class="halftick label"></li>'))
18580
+ ? ((!(i % module.get.gapRatio()) && i < ignoreLabels) || i === len
18581
+ ? $('<li/>', { class: className.label, 'data-value': stepValue, html: showLabel ? labelText : '' })
18582
+ : $('<li/>', { class: 'halftick label', 'data-value': stepValue }))
18378
18583
  : null,
18379
18584
  ratio = i / len
18380
18585
  ;
@@ -18645,6 +18850,12 @@
18645
18850
  },
18646
18851
  },
18647
18852
 
18853
+ clear: {
18854
+ cache: function () {
18855
+ module.cache = {};
18856
+ },
18857
+ },
18858
+
18648
18859
  resync: function () {
18649
18860
  module.verbose('Resyncing thumb position based on value');
18650
18861
  if (module.is.range()) {
@@ -18694,6 +18905,25 @@
18694
18905
  },
18695
18906
 
18696
18907
  is: {
18908
+ prime: function (n) {
18909
+ if (module.cache['prime' + n] === undefined) {
18910
+ var p = true;
18911
+ for (var i = 2, s = Math.sqrt(n); i <= s; i++) {
18912
+ if (n % i === 0) {
18913
+ p = false;
18914
+
18915
+ break;
18916
+ }
18917
+ }
18918
+ if (p) {
18919
+ p = n > 1;
18920
+ }
18921
+
18922
+ module.cache['prime' + n] = p;
18923
+ }
18924
+
18925
+ return module.cache['prime' + n];
18926
+ },
18697
18927
  range: function () {
18698
18928
  var isRange = $module.hasClass(className.range);
18699
18929
  if (!isRange && (settings.minRange || settings.maxRange)) {
@@ -18808,62 +19038,87 @@
18808
19038
  return margin || '0px';
18809
19039
  },
18810
19040
  precision: function () {
18811
- var
18812
- decimalPlaces,
18813
- step = module.get.step()
18814
- ;
18815
- if (step !== 0) {
18816
- var split = String(step).split('.');
18817
- decimalPlaces = split.length === 2 ? split[1].length : 0;
18818
- } else {
18819
- decimalPlaces = settings.decimalPlaces;
19041
+ if (module.cache.precision === undefined) {
19042
+ var
19043
+ decimalPlaces,
19044
+ step = module.get.step()
19045
+ ;
19046
+ if (step !== 0) {
19047
+ var split = String(step).split('.');
19048
+ decimalPlaces = split.length === 2 ? split[1].length : 0;
19049
+ } else {
19050
+ decimalPlaces = settings.decimalPlaces;
19051
+ }
19052
+ var precision = Math.pow(10, decimalPlaces);
19053
+ module.debug('Precision determined', precision);
19054
+ module.cache.precision = precision;
18820
19055
  }
18821
- var precision = Math.pow(10, decimalPlaces);
18822
- module.debug('Precision determined', precision);
18823
19056
 
18824
- return precision;
19057
+ return module.cache.precision;
18825
19058
  },
18826
19059
  min: function () {
18827
19060
  return settings.min;
18828
19061
  },
18829
19062
  max: function () {
18830
- var
18831
- step = module.get.step(),
18832
- min = module.get.min(),
18833
- precision = module.get.precision(),
18834
- quotient = step === 0 ? 0 : Math.floor(Math.round(((settings.max - min) / step) * precision) / precision),
18835
- remainder = step === 0 ? 0 : (settings.max - min) % step
18836
- ;
19063
+ if (module.cache.max === undefined) {
19064
+ var
19065
+ step = module.get.step(),
19066
+ min = module.get.min(),
19067
+ precision = module.get.precision(),
19068
+ quotient = step === 0 ? 0 : Math.floor(Math.round(((settings.max - min) / step) * precision) / precision),
19069
+ remainder = step === 0 ? 0 : (settings.max - min) % step
19070
+ ;
19071
+ if (remainder > 0) {
19072
+ module.debug('Max value not divisible by given step. Increasing max value.', settings.max, step);
19073
+ }
19074
+ module.cache.max = remainder === 0 ? settings.max : min + quotient * step;
19075
+ }
18837
19076
 
18838
- return remainder === 0 ? settings.max : min + quotient * step;
19077
+ return module.cache.max;
18839
19078
  },
18840
19079
  step: function () {
18841
19080
  return settings.step;
18842
19081
  },
18843
19082
  numLabels: function () {
18844
- var step = module.get.step(),
18845
- precision = module.get.precision(),
18846
- value = Math.round(((module.get.max() - module.get.min()) / (step === 0 ? 1 : step)) * precision) / precision;
18847
- module.debug('Determined that there should be ' + value + ' labels');
19083
+ if (module.cache.numLabels === undefined) {
19084
+ var step = module.get.step(),
19085
+ precision = module.get.precision(),
19086
+ value = Math.round(((module.get.max() - module.get.min()) / (step === 0 ? 1 : step)) * precision) / precision;
19087
+ module.debug('Determined that there should be ' + value + ' labels');
19088
+ module.cache.numLabels = value;
19089
+ }
18848
19090
 
18849
- return value;
19091
+ return module.cache.numLabels;
18850
19092
  },
18851
19093
  labelType: function () {
18852
19094
  return settings.labelType;
18853
19095
  },
18854
- label: function (value) {
18855
- if (interpretLabel) {
18856
- return interpretLabel(value);
19096
+ label: function (value, stepValue) {
19097
+ if (isFunction(interpretLabel)) {
19098
+ return interpretLabel(value, stepValue, module);
18857
19099
  }
18858
19100
 
18859
19101
  switch (settings.labelType) {
18860
19102
  case settings.labelTypes.number: {
18861
- var step = module.get.step();
18862
-
18863
- return Math.round(((value * (step === 0 ? 1 : step)) + module.get.min()) * precision) / precision;
19103
+ return stepValue;
18864
19104
  }
18865
19105
  case settings.labelTypes.letter: {
18866
- return alphabet[value % 26];
19106
+ if (value < 0 || module.get.precision() > 1) {
19107
+ module.error(error.invalidLetterNumber, value);
19108
+
19109
+ return value;
19110
+ }
19111
+ var letterLabel = '',
19112
+ letters = Array.isArray(settings.letters) ? settings.letters : String(settings.letters).split(''),
19113
+ lettersLen = letters.length
19114
+ ;
19115
+
19116
+ while (stepValue >= 0) {
19117
+ letterLabel = letters[stepValue % lettersLen] + letterLabel;
19118
+ stepValue = Math.floor(stepValue / lettersLen) - 1;
19119
+ }
19120
+
19121
+ return letterLabel;
18867
19122
  }
18868
19123
  default: {
18869
19124
  return value;
@@ -18873,6 +19128,9 @@
18873
19128
  value: function () {
18874
19129
  return value;
18875
19130
  },
19131
+ settings: function () {
19132
+ return settings;
19133
+ },
18876
19134
  currentThumbValue: function () {
18877
19135
  return $currThumb !== undefined && $currThumb.hasClass('second') ? module.secondThumbVal : module.thumbVal;
18878
19136
  },
@@ -18917,6 +19175,7 @@
18917
19175
  if (settings.autoAdjustLabels) {
18918
19176
  var
18919
19177
  numLabels = module.get.numLabels(),
19178
+ primePlus = module.is.prime(numLabels) ? 1 : 0,
18920
19179
  trackLength = module.get.trackLength(),
18921
19180
  gapCounter = 1
18922
19181
  ;
@@ -18926,7 +19185,7 @@
18926
19185
  // and apply only if the modulo of the operation is an odd number.
18927
19186
  if (trackLength > 0) {
18928
19187
  while ((trackLength / numLabels) * gapCounter < settings.labelDistance) {
18929
- if (!(numLabels % gapCounter)) {
19188
+ if (!((numLabels + primePlus) % gapCounter) || settings.autoAdjustLabels === 'fixed') {
18930
19189
  gapRatio = gapCounter;
18931
19190
  }
18932
19191
  gapCounter += 1;
@@ -19064,6 +19323,7 @@
19064
19323
  },
19065
19324
  value: function (position) {
19066
19325
  var
19326
+ precision = module.get.precision(),
19067
19327
  startPos = module.is.reversed() ? module.get.trackEndPos() : module.get.trackStartPos(),
19068
19328
  endPos = module.is.reversed() ? module.get.trackStartPos() : module.get.trackEndPos(),
19069
19329
  ratio = (position - startPos) / (endPos - startPos),
@@ -19132,6 +19392,30 @@
19132
19392
  },
19133
19393
 
19134
19394
  set: {
19395
+ active: function (thumbVal, secondThumbVal) {
19396
+ if (settings.highlightRange) {
19397
+ if (secondThumbVal < thumbVal) {
19398
+ var tempVal = secondThumbVal;
19399
+ secondThumbVal = thumbVal;
19400
+ thumbVal = tempVal;
19401
+ }
19402
+ var $children = $labels.find('.label');
19403
+ $children.each(function (index) {
19404
+ var
19405
+ $child = $(this),
19406
+ attrValue = $child.attr('data-value')
19407
+ ;
19408
+ if (attrValue) {
19409
+ attrValue = parseInt(attrValue, 10);
19410
+ if (attrValue >= thumbVal && attrValue <= secondThumbVal) {
19411
+ $child.addClass(className.active);
19412
+ } else {
19413
+ $child.removeClass(className.active);
19414
+ }
19415
+ }
19416
+ });
19417
+ }
19418
+ },
19135
19419
  value: function (newValue, fireChange) {
19136
19420
  fireChange = fireChange !== false;
19137
19421
  var toReset = previousValue === undefined;
@@ -19259,6 +19543,7 @@
19259
19543
  position = newPos;
19260
19544
  thumbVal = newValue;
19261
19545
  }
19546
+ module.set.active(thumbVal, secondThumbVal);
19262
19547
  var
19263
19548
  trackPosValue,
19264
19549
  thumbPosValue,
@@ -19366,6 +19651,7 @@
19366
19651
  } else {
19367
19652
  return settings[name];
19368
19653
  }
19654
+ module.clear.cache();
19369
19655
  },
19370
19656
  internal: function (name, value) {
19371
19657
  if ($.isPlainObject(name)) {
@@ -19423,7 +19709,9 @@
19423
19709
  });
19424
19710
  }
19425
19711
  clearTimeout(module.performance.timer);
19426
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
19712
+ module.performance.timer = setTimeout(function () {
19713
+ module.performance.display();
19714
+ }, 500);
19427
19715
  },
19428
19716
  display: function () {
19429
19717
  var
@@ -19536,6 +19824,7 @@
19536
19824
  method: 'The method you called is not defined.',
19537
19825
  notrange: 'This slider is not a range slider',
19538
19826
  invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
19827
+ invalidLetterNumber: 'Negative values or decimal places for labelType: "letter" are not supported',
19539
19828
  },
19540
19829
 
19541
19830
  metadata: {
@@ -19558,6 +19847,7 @@
19558
19847
  preventCrossover: true,
19559
19848
  fireOnInit: false,
19560
19849
  interpretLabel: false,
19850
+ letters: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
19561
19851
 
19562
19852
  // the decimal place to round to if step is undefined
19563
19853
  decimalPlaces: 2,
@@ -19575,6 +19865,8 @@
19575
19865
  vertical: 'vertical',
19576
19866
  range: 'range',
19577
19867
  smooth: 'smooth',
19868
+ label: 'label',
19869
+ active: 'active',
19578
19870
  },
19579
19871
 
19580
19872
  keys: {
@@ -19587,6 +19879,7 @@
19587
19879
  },
19588
19880
 
19589
19881
  restrictedLabels: [],
19882
+ highlightRange: false,
19590
19883
  showThumbTooltip: false,
19591
19884
  tooltipConfig: {
19592
19885
  position: 'top center',
@@ -19604,7 +19897,7 @@
19604
19897
  })(jQuery, window, document);
19605
19898
 
19606
19899
  /*!
19607
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Rating
19900
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Rating
19608
19901
  * https://github.com/fomantic/Fomantic-UI/
19609
19902
  *
19610
19903
  *
@@ -19973,7 +20266,9 @@
19973
20266
  });
19974
20267
  }
19975
20268
  clearTimeout(module.performance.timer);
19976
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
20269
+ module.performance.timer = setTimeout(function () {
20270
+ module.performance.display();
20271
+ }, 500);
19977
20272
  },
19978
20273
  display: function () {
19979
20274
  var
@@ -20143,7 +20438,7 @@
20143
20438
  })(jQuery, window, document);
20144
20439
 
20145
20440
  /*!
20146
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Search
20441
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Search
20147
20442
  * https://github.com/fomantic/Fomantic-UI/
20148
20443
  *
20149
20444
  *
@@ -20270,6 +20565,7 @@
20270
20565
  .on('mousedown' + eventNamespace, selector.results, module.event.result.mousedown)
20271
20566
  .on('mouseup' + eventNamespace, selector.results, module.event.result.mouseup)
20272
20567
  .on('click' + eventNamespace, selector.result, module.event.result.click)
20568
+ .on('click' + eventNamespace, selector.remove, module.event.remove.click)
20273
20569
  ;
20274
20570
  },
20275
20571
  },
@@ -20279,7 +20575,10 @@
20279
20575
  // this makes sure $.extend does not add specified search fields to default fields
20280
20576
  // this is the only setting which should not extend defaults
20281
20577
  if (parameters && parameters.searchFields !== undefined) {
20282
- settings.searchFields = parameters.searchFields;
20578
+ settings.searchFields = Array.isArray(parameters.searchFields)
20579
+ ? parameters.searchFields
20580
+ : [parameters.searchFields]
20581
+ ;
20283
20582
  }
20284
20583
  },
20285
20584
  },
@@ -20313,7 +20612,9 @@
20313
20612
  callback = function () {
20314
20613
  module.cancel.query();
20315
20614
  module.remove.focus();
20316
- module.timer = setTimeout(function () { module.hideResults(); }, settings.hideDelay);
20615
+ module.timer = setTimeout(function () {
20616
+ module.hideResults();
20617
+ }, settings.hideDelay);
20317
20618
  }
20318
20619
  ;
20319
20620
  if (pageLostFocus) {
@@ -20340,6 +20641,12 @@
20340
20641
  callback();
20341
20642
  }
20342
20643
  },
20644
+ remove: {
20645
+ click: function () {
20646
+ module.clear.value();
20647
+ $prompt.trigger('focus');
20648
+ },
20649
+ },
20343
20650
  result: {
20344
20651
  mousedown: function () {
20345
20652
  module.resultsClicked = true;
@@ -20773,7 +21080,7 @@
20773
21080
  exactResults = [],
20774
21081
  fuzzyResults = [],
20775
21082
  searchExp = searchTerm.replace(regExp.escape, '\\$&'),
20776
- matchRegExp = new RegExp(regExp.beginsWith + searchExp, 'i'),
21083
+ matchRegExp = new RegExp(regExp.beginsWith + searchExp, settings.ignoreSearchCase ? 'i' : ''),
20777
21084
 
20778
21085
  // avoid duplicates when pushing results
20779
21086
  addResult = function (array, result) {
@@ -20809,13 +21116,14 @@
20809
21116
  var concatenatedContent = [];
20810
21117
  $.each(searchFields, function (index, field) {
20811
21118
  var
20812
- fieldExists = (typeof content[field] === 'string') || (typeof content[field] === 'number')
21119
+ fieldExists = typeof content[field] === 'string' || typeof content[field] === 'number'
20813
21120
  ;
20814
21121
  if (fieldExists) {
20815
21122
  var text;
20816
21123
  text = typeof content[field] === 'string'
20817
21124
  ? module.remove.diacritics(content[field])
20818
21125
  : content[field].toString();
21126
+ text = $('<div/>', { html: text }).text().trim();
20819
21127
  if (settings.fullTextSearch === 'all') {
20820
21128
  concatenatedContent.push(text);
20821
21129
  if (index < lastSearchFieldIndex) {
@@ -20846,8 +21154,10 @@
20846
21154
  },
20847
21155
  },
20848
21156
  exactSearch: function (query, term) {
20849
- query = query.toLowerCase();
20850
- term = term.toLowerCase();
21157
+ if (settings.ignoreSearchCase) {
21158
+ query = query.toLowerCase();
21159
+ term = term.toLowerCase();
21160
+ }
20851
21161
 
20852
21162
  return term.indexOf(query) > -1;
20853
21163
  },
@@ -20874,8 +21184,10 @@
20874
21184
  if (typeof query !== 'string') {
20875
21185
  return false;
20876
21186
  }
20877
- query = query.toLowerCase();
20878
- term = term.toLowerCase();
21187
+ if (settings.ignoreSearchCase) {
21188
+ query = query.toLowerCase();
21189
+ term = term.toLowerCase();
21190
+ }
20879
21191
  if (queryLength > termLength) {
20880
21192
  return false;
20881
21193
  }
@@ -20971,6 +21283,9 @@
20971
21283
  $module.data(metadata.cache, cache);
20972
21284
  }
20973
21285
  },
21286
+ value: function () {
21287
+ module.set.value('');
21288
+ },
20974
21289
  },
20975
21290
 
20976
21291
  read: {
@@ -21230,6 +21545,39 @@
21230
21545
  response[fields.results] = response[fields.results].slice(0, settings.maxResults);
21231
21546
  }
21232
21547
  }
21548
+ if (settings.highlightMatches) {
21549
+ var results = response[fields.results],
21550
+ regExpIgnore = settings.ignoreSearchCase ? 'i' : '',
21551
+ querySplit = module.get.value().split(''),
21552
+ diacriticReg = settings.ignoreDiacritics ? '[\u0300-\u036F]?' : '',
21553
+ htmlReg = '(?![^<]*>)',
21554
+ markedRegExp = new RegExp(htmlReg + '(' + querySplit.join(diacriticReg + ')(.*?)' + htmlReg + '(') + diacriticReg + ')', regExpIgnore),
21555
+ markedReplacer = function () {
21556
+ var args = [].slice.call(arguments, 1, querySplit.length * 2).map(function (x, i) {
21557
+ return i & 1 ? x : '<mark>' + x + '</mark>'; // eslint-disable-line no-bitwise
21558
+ });
21559
+
21560
+ return args.join('');
21561
+ }
21562
+ ;
21563
+ $.each(results, function (label, content) {
21564
+ $.each(settings.searchFields, function (index, field) {
21565
+ var
21566
+ fieldExists = typeof content[field] === 'string' || typeof content[field] === 'number'
21567
+ ;
21568
+ if (fieldExists) {
21569
+ var markedHTML = typeof content[field] === 'string'
21570
+ ? content[field]
21571
+ : content[field].toString();
21572
+ if (settings.ignoreDiacritics) {
21573
+ markedHTML = markedHTML.normalize('NFD');
21574
+ }
21575
+ markedHTML = markedHTML.replace(/<\/?mark>/g, '');
21576
+ response[fields.results][label][field] = markedHTML.replace(markedRegExp, markedReplacer);
21577
+ }
21578
+ });
21579
+ });
21580
+ }
21233
21581
  if (isFunction(template)) {
21234
21582
  html = template(response, fields, settings.preserveHTML);
21235
21583
  } else {
@@ -21315,7 +21663,9 @@
21315
21663
  });
21316
21664
  }
21317
21665
  clearTimeout(module.performance.timer);
21318
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
21666
+ module.performance.timer = setTimeout(function () {
21667
+ module.performance.display();
21668
+ }, 500);
21319
21669
  },
21320
21670
  display: function () {
21321
21671
  var
@@ -21456,9 +21806,15 @@
21456
21806
  // search anywhere in value (set to 'exact' to require exact matches
21457
21807
  fullTextSearch: 'exact',
21458
21808
 
21809
+ // Whether search result should highlight matching strings
21810
+ highlightMatches: false,
21811
+
21459
21812
  // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à", etc...)
21460
21813
  ignoreDiacritics: false,
21461
21814
 
21815
+ // whether to consider case sensitivity on local searching
21816
+ ignoreSearchCase: true,
21817
+
21462
21818
  // whether to add events to prompt automatically
21463
21819
  automatic: true,
21464
21820
 
@@ -21537,6 +21893,7 @@
21537
21893
  categoryResults: 'results', // array of results (category view)
21538
21894
  description: 'description', // result description
21539
21895
  image: 'image', // result image
21896
+ alt: 'alt', // result alt text for image
21540
21897
  price: 'price', // result price
21541
21898
  results: 'results', // array of results (standard)
21542
21899
  title: 'title', // result title
@@ -21548,6 +21905,7 @@
21548
21905
 
21549
21906
  selector: {
21550
21907
  prompt: '.prompt',
21908
+ remove: '> .icon.input > .remove.icon',
21551
21909
  searchButton: '.search.button',
21552
21910
  results: '.results',
21553
21911
  message: '.results > .message',
@@ -21576,8 +21934,9 @@
21576
21934
  };
21577
21935
  if (shouldEscape.test(string)) {
21578
21936
  string = string.replace(/&(?![\d#a-z]{1,12};)/gi, '&amp;');
21579
-
21580
- return string.replace(badChars, escapedChar);
21937
+ string = string.replace(badChars, escapedChar);
21938
+ // FUI controlled HTML is still allowed
21939
+ string = string.replace(/&lt;(\/)*mark&gt;/g, '<$1mark>');
21581
21940
  }
21582
21941
 
21583
21942
  return string;
@@ -21623,7 +21982,7 @@
21623
21982
  if (result[fields.image] !== undefined) {
21624
21983
  html += ''
21625
21984
  + '<div class="image">'
21626
- + ' <img src="' + result[fields.image].replace(/"/g, '') + '">'
21985
+ + ' <img src="' + result[fields.image].replace(/"/g, '') + (result[fields.alt] ? '" alt="' + result[fields.alt].replace(/"/g, '') : '') + '">'
21627
21986
  + '</div>';
21628
21987
  }
21629
21988
  html += '<div class="content">';
@@ -21676,7 +22035,7 @@
21676
22035
  if (result[fields.image] !== undefined) {
21677
22036
  html += ''
21678
22037
  + '<div class="image">'
21679
- + ' <img src="' + result[fields.image].replace(/"/g, '') + '">'
22038
+ + ' <img src="' + result[fields.image].replace(/"/g, '') + (result[fields.alt] ? '" alt="' + result[fields.alt].replace(/"/g, '') : '') + '">'
21680
22039
  + '</div>';
21681
22040
  }
21682
22041
  html += '<div class="content">';
@@ -21721,7 +22080,7 @@
21721
22080
  })(jQuery, window, document);
21722
22081
 
21723
22082
  /*!
21724
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Shape
22083
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Shape
21725
22084
  * https://github.com/fomantic/Fomantic-UI/
21726
22085
  *
21727
22086
  *
@@ -21907,7 +22266,7 @@
21907
22266
  set: {
21908
22267
 
21909
22268
  defaultSide: function () {
21910
- $activeSide = $side.filter('.' + settings.className.active);
22269
+ $activeSide = $side.filter('.' + className.active);
21911
22270
  $nextSide = $activeSide.next(selector.side).length > 0
21912
22271
  ? $activeSide.next(selector.side)
21913
22272
  : $side.first();
@@ -21933,7 +22292,7 @@
21933
22292
 
21934
22293
  currentStageSize: function () {
21935
22294
  var
21936
- $activeSide = $side.filter('.' + settings.className.active),
22295
+ $activeSide = $side.filter('.' + className.active),
21937
22296
  width = $activeSide.outerWidth(true),
21938
22297
  height = $activeSide.outerHeight(true)
21939
22298
  ;
@@ -21949,7 +22308,7 @@
21949
22308
  var
21950
22309
  $clone = $module.clone().addClass(className.loading),
21951
22310
  $side = $clone.find('>' + selector.sides + '>' + selector.side),
21952
- $activeSide = $side.filter('.' + settings.className.active),
22311
+ $activeSide = $side.filter('.' + className.active),
21953
22312
  $nextSide = nextIndex
21954
22313
  ? $side.eq(nextIndex)
21955
22314
  : ($activeSide.next(selector.side).length > 0
@@ -22345,7 +22704,9 @@
22345
22704
  });
22346
22705
  }
22347
22706
  clearTimeout(module.performance.timer);
22348
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
22707
+ module.performance.timer = setTimeout(function () {
22708
+ module.performance.display();
22709
+ }, 500);
22349
22710
  },
22350
22711
  display: function () {
22351
22712
  var
@@ -22517,7 +22878,7 @@
22517
22878
  })(jQuery, window, document);
22518
22879
 
22519
22880
  /*!
22520
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Sidebar
22881
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Sidebar
22521
22882
  * https://github.com/fomantic/Fomantic-UI/
22522
22883
  *
22523
22884
  *
@@ -23389,7 +23750,9 @@
23389
23750
  });
23390
23751
  }
23391
23752
  clearTimeout(module.performance.timer);
23392
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
23753
+ module.performance.timer = setTimeout(function () {
23754
+ module.performance.display();
23755
+ }, 500);
23393
23756
  },
23394
23757
  display: function () {
23395
23758
  var
@@ -23570,7 +23933,7 @@
23570
23933
  })(jQuery, window, document);
23571
23934
 
23572
23935
  /*!
23573
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Sticky
23936
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Sticky
23574
23937
  * https://github.com/fomantic/Fomantic-UI/
23575
23938
  *
23576
23939
  *
@@ -24317,7 +24680,9 @@
24317
24680
  });
24318
24681
  }
24319
24682
  clearTimeout(module.performance.timer);
24320
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 0);
24683
+ module.performance.timer = setTimeout(function () {
24684
+ module.performance.display();
24685
+ }, 0);
24321
24686
  },
24322
24687
  display: function () {
24323
24688
  var
@@ -24486,7 +24851,7 @@
24486
24851
  })(jQuery, window, document);
24487
24852
 
24488
24853
  /*!
24489
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Tab
24854
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Tab
24490
24855
  * https://github.com/fomantic/Fomantic-UI/
24491
24856
  *
24492
24857
  *
@@ -25275,7 +25640,9 @@
25275
25640
  });
25276
25641
  }
25277
25642
  clearTimeout(module.performance.timer);
25278
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
25643
+ module.performance.timer = setTimeout(function () {
25644
+ module.performance.display();
25645
+ }, 500);
25279
25646
  },
25280
25647
  display: function () {
25281
25648
  var
@@ -25452,7 +25819,7 @@
25452
25819
  })(jQuery, window, document);
25453
25820
 
25454
25821
  /*!
25455
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Toast
25822
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Toast
25456
25823
  * https://github.com/fomantic/Fomantic-UI/
25457
25824
  *
25458
25825
  *
@@ -25636,6 +26003,7 @@
25636
26003
  $toast.append($('<img>', {
25637
26004
  class: className.image + ' ' + settings.classImage,
25638
26005
  src: settings.showImage,
26006
+ alt: settings.alt || '',
25639
26007
  }));
25640
26008
  }
25641
26009
  if (settings.title !== '') {
@@ -25681,7 +26049,7 @@
25681
26049
  $toast.find(selector.icon).attr('class', iconClass + ' ' + className.icon);
25682
26050
  }
25683
26051
  if (settings.showImage) {
25684
- $toast.find(selector.image).attr('src', settings.showImage);
26052
+ $toast.find(selector.image).attr('src', settings.showImage).attr('alt', settings.alt || '');
25685
26053
  }
25686
26054
  if (settings.title !== '') {
25687
26055
  $toast.find(selector.title).html(module.helpers.escape(settings.title, settings.preserveHTML));
@@ -26155,7 +26523,9 @@
26155
26523
  });
26156
26524
  }
26157
26525
  clearTimeout(module.performance.timer);
26158
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
26526
+ module.performance.timer = setTimeout(function () {
26527
+ module.performance.display();
26528
+ }, 500);
26159
26529
  },
26160
26530
  display: function () {
26161
26531
  var
@@ -26292,6 +26662,7 @@
26292
26662
  actions: false,
26293
26663
  preserveHTML: true,
26294
26664
  showImage: false,
26665
+ alt: false,
26295
26666
 
26296
26667
  // transition settings
26297
26668
  transition: {
@@ -26413,7 +26784,7 @@
26413
26784
  })(jQuery, window, document);
26414
26785
 
26415
26786
  /*!
26416
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Transition
26787
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Transition
26417
26788
  * https://github.com/fomantic/Fomantic-UI/
26418
26789
  *
26419
26790
  *
@@ -26556,7 +26927,9 @@
26556
26927
  ? ($allModules.length - index) * interval
26557
26928
  : index * interval;
26558
26929
  module.debug('Delaying animation by', delay);
26559
- setTimeout(function () { module.animate(); }, delay);
26930
+ setTimeout(function () {
26931
+ module.animate();
26932
+ }, delay);
26560
26933
  },
26561
26934
 
26562
26935
  animate: function (overrideSettings) {
@@ -27263,7 +27636,9 @@
27263
27636
  });
27264
27637
  }
27265
27638
  clearTimeout(module.performance.timer);
27266
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
27639
+ module.performance.timer = setTimeout(function () {
27640
+ module.performance.display();
27641
+ }, 500);
27267
27642
  },
27268
27643
  display: function () {
27269
27644
  var
@@ -27444,7 +27819,7 @@
27444
27819
  })(jQuery, window, document);
27445
27820
 
27446
27821
  /*!
27447
- * # Fomantic-UI 2.9.4-beta.10+3564140 - API
27822
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - API
27448
27823
  * https://github.com/fomantic/Fomantic-UI/
27449
27824
  *
27450
27825
  *
@@ -28092,7 +28467,9 @@
28092
28467
  module.debug('Adding error state');
28093
28468
  module.set.error();
28094
28469
  if (module.should.removeError()) {
28095
- setTimeout(function () { module.remove.error(); }, settings.errorDuration);
28470
+ setTimeout(function () {
28471
+ module.remove.error();
28472
+ }, settings.errorDuration);
28096
28473
  }
28097
28474
  }
28098
28475
  module.debug('API Request failed', errorMessage, xhr);
@@ -28416,7 +28793,9 @@
28416
28793
  });
28417
28794
  }
28418
28795
  clearTimeout(module.performance.timer);
28419
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
28796
+ module.performance.timer = setTimeout(function () {
28797
+ module.performance.display();
28798
+ }, 500);
28420
28799
  },
28421
28800
  display: function () {
28422
28801
  var
@@ -28666,7 +29045,7 @@
28666
29045
  })(jQuery, window, document);
28667
29046
 
28668
29047
  /*!
28669
- * # Fomantic-UI 2.9.4-beta.10+3564140 - State
29048
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - State
28670
29049
  * https://github.com/fomantic/Fomantic-UI/
28671
29050
  *
28672
29051
  *
@@ -29149,7 +29528,9 @@
29149
29528
  });
29150
29529
  }
29151
29530
  clearTimeout(module.performance.timer);
29152
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
29531
+ module.performance.timer = setTimeout(function () {
29532
+ module.performance.display();
29533
+ }, 500);
29153
29534
  },
29154
29535
  display: function () {
29155
29536
  var
@@ -29362,7 +29743,7 @@
29362
29743
  })(jQuery, window, document);
29363
29744
 
29364
29745
  /*!
29365
- * # Fomantic-UI 2.9.4-beta.10+3564140 - Visibility
29746
+ * # Fomantic-UI 2.9.4-beta.101+96ed453 - Visibility
29366
29747
  * https://github.com/fomantic/Fomantic-UI/
29367
29748
  *
29368
29749
  *
@@ -30451,7 +30832,9 @@
30451
30832
  });
30452
30833
  }
30453
30834
  clearTimeout(module.performance.timer);
30454
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
30835
+ module.performance.timer = setTimeout(function () {
30836
+ module.performance.display();
30837
+ }, 500);
30455
30838
  },
30456
30839
  display: function () {
30457
30840
  var