fomantic-ui 2.9.4-beta.9 → 2.9.4-beta.90

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 (273) hide show
  1. package/.all-contributorsrc +20 -1
  2. package/.eslintrc.js +17 -0
  3. package/.github/FUNDING.yml +1 -1
  4. package/.github/workflows/ci.yml +6 -6
  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 +2 -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 +17 -4
  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 +46 -38
  43. package/dist/components/dropdown.js +109 -34
  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 +3 -1
  55. package/dist/components/flag.min.css +2 -2
  56. package/dist/components/flyout.css +1 -1
  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 +1 -1
  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 +1 -1
  115. package/dist/components/search.js +67 -14
  116. package/dist/components/search.min.css +1 -1
  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 +6139 -3943
  165. package/dist/semantic.js +530 -180
  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/src/definitions/behaviors/api.js +6 -2
  175. package/src/definitions/behaviors/form.js +65 -22
  176. package/src/definitions/behaviors/state.js +3 -1
  177. package/src/definitions/behaviors/visibility.js +3 -1
  178. package/src/definitions/collections/form.less +9 -2
  179. package/src/definitions/collections/grid.less +4 -4
  180. package/src/definitions/collections/message.less +1 -0
  181. package/src/definitions/collections/table.less +69 -54
  182. package/src/definitions/elements/button.less +27 -3
  183. package/src/definitions/elements/label.less +5 -0
  184. package/src/definitions/elements/step.less +399 -85
  185. package/src/definitions/globals/site.js +3 -1
  186. package/src/definitions/globals/site.less +17 -12
  187. package/src/definitions/modules/accordion.js +3 -1
  188. package/src/definitions/modules/calendar.js +16 -3
  189. package/src/definitions/modules/checkbox.js +9 -3
  190. package/src/definitions/modules/dimmer.js +3 -1
  191. package/src/definitions/modules/dimmer.less +8 -5
  192. package/src/definitions/modules/dropdown.js +108 -33
  193. package/src/definitions/modules/dropdown.less +43 -29
  194. package/src/definitions/modules/embed.js +16 -6
  195. package/src/definitions/modules/flyout.js +3 -1
  196. package/src/definitions/modules/modal.js +6 -2
  197. package/src/definitions/modules/nag.js +10 -4
  198. package/src/definitions/modules/popup.js +9 -3
  199. package/src/definitions/modules/progress.js +3 -1
  200. package/src/definitions/modules/progress.less +17 -5
  201. package/src/definitions/modules/rating.js +3 -1
  202. package/src/definitions/modules/search.js +66 -13
  203. package/src/definitions/modules/search.less +9 -2
  204. package/src/definitions/modules/shape.js +6 -4
  205. package/src/definitions/modules/sidebar.js +3 -1
  206. package/src/definitions/modules/slider.js +141 -43
  207. package/src/definitions/modules/slider.less +103 -8
  208. package/src/definitions/modules/sticky.js +3 -1
  209. package/src/definitions/modules/tab.js +3 -1
  210. package/src/definitions/modules/toast.js +6 -2
  211. package/src/definitions/modules/transition.js +6 -2
  212. package/src/definitions/views/feed.less +11 -0
  213. package/src/themes/basic/assets/fonts/LICENSE.txt +91 -0
  214. package/src/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  215. package/src/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  216. package/src/themes/default/elements/button.variables +3 -0
  217. package/src/themes/default/elements/emoji.variables +172 -23
  218. package/src/themes/default/elements/flag.variables +3 -3
  219. package/src/themes/default/elements/step.variables +33 -0
  220. package/src/themes/default/globals/site.variables +3 -0
  221. package/src/themes/default/globals/variation.variables +9 -0
  222. package/src/themes/default/modules/dropdown.variables +3 -0
  223. package/src/themes/default/modules/progress.variables +1 -1
  224. package/src/themes/default/modules/search.variables +3 -0
  225. package/src/themes/default/modules/slider.variables +10 -0
  226. package/src/themes/default/views/feed.variables +3 -0
  227. package/src/themes/github/assets/fonts/LICENSE.txt +94 -0
  228. package/src/themes/joypixels/elements/emoji.variables +183 -22
  229. package/src/themes/material/assets/fonts/LICENSE.txt +202 -0
  230. package/tasks/admin/components/create.js +4 -4
  231. package/tasks/admin/components/init.js +2 -2
  232. package/tasks/admin/components/update.js +3 -3
  233. package/tasks/admin/distributions/create.js +3 -3
  234. package/tasks/admin/distributions/init.js +2 -2
  235. package/tasks/admin/distributions/update.js +4 -4
  236. package/tasks/build/assets.js +1 -1
  237. package/tasks/build/css.js +19 -10
  238. package/tasks/build/javascript.js +12 -5
  239. package/tasks/check-install.js +1 -1
  240. package/tasks/config/defaults.js +2 -0
  241. package/tasks/config/tasks.js +1 -1
  242. package/tasks/docs/build.js +3 -3
  243. package/tasks/docs/metadata.js +1 -1
  244. package/tasks/docs/serve.js +3 -1
  245. package/tasks/install.js +2 -2
  246. package/tasks/watch.js +1 -1
  247. package/types/fomantic-ui-accordion.d.ts +1 -1
  248. package/types/fomantic-ui-api.d.ts +9 -3
  249. package/types/fomantic-ui-calendar.d.ts +110 -9
  250. package/types/fomantic-ui-checkbox.d.ts +14 -4
  251. package/types/fomantic-ui-dimmer.d.ts +1 -1
  252. package/types/fomantic-ui-dropdown.d.ts +82 -44
  253. package/types/fomantic-ui-embed.d.ts +19 -2
  254. package/types/fomantic-ui-flyout.d.ts +25 -11
  255. package/types/fomantic-ui-form.d.ts +123 -15
  256. package/types/fomantic-ui-modal.d.ts +101 -5
  257. package/types/fomantic-ui-nag.d.ts +4 -4
  258. package/types/fomantic-ui-popup.d.ts +38 -12
  259. package/types/fomantic-ui-progress.d.ts +12 -6
  260. package/types/fomantic-ui-rating.d.ts +1 -1
  261. package/types/fomantic-ui-search.d.ts +138 -22
  262. package/types/fomantic-ui-shape.d.ts +2 -2
  263. package/types/fomantic-ui-sidebar.d.ts +4 -4
  264. package/types/fomantic-ui-slider.d.ts +56 -4
  265. package/types/fomantic-ui-sticky.d.ts +1 -1
  266. package/types/fomantic-ui-tab.d.ts +6 -6
  267. package/types/fomantic-ui-toast.d.ts +14 -2
  268. package/types/fomantic-ui-transition.d.ts +41 -7
  269. package/types/fomantic-ui-visibility.d.ts +3 -3
  270. package/types/index.d.ts +25 -25
  271. package/types/tests.ts +188 -0
  272. package/types/tsconfig.json +1 -1
  273. package/types/fomantic-ui-tests.ts +0 -25
@@ -185,7 +185,7 @@
185
185
  set: {
186
186
 
187
187
  defaultSide: function () {
188
- $activeSide = $side.filter('.' + settings.className.active);
188
+ $activeSide = $side.filter('.' + className.active);
189
189
  $nextSide = $activeSide.next(selector.side).length > 0
190
190
  ? $activeSide.next(selector.side)
191
191
  : $side.first();
@@ -211,7 +211,7 @@
211
211
 
212
212
  currentStageSize: function () {
213
213
  var
214
- $activeSide = $side.filter('.' + settings.className.active),
214
+ $activeSide = $side.filter('.' + className.active),
215
215
  width = $activeSide.outerWidth(true),
216
216
  height = $activeSide.outerHeight(true)
217
217
  ;
@@ -227,7 +227,7 @@
227
227
  var
228
228
  $clone = $module.clone().addClass(className.loading),
229
229
  $side = $clone.find('>' + selector.sides + '>' + selector.side),
230
- $activeSide = $side.filter('.' + settings.className.active),
230
+ $activeSide = $side.filter('.' + className.active),
231
231
  $nextSide = nextIndex
232
232
  ? $side.eq(nextIndex)
233
233
  : ($activeSide.next(selector.side).length > 0
@@ -623,7 +623,9 @@
623
623
  });
624
624
  }
625
625
  clearTimeout(module.performance.timer);
626
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
626
+ module.performance.timer = setTimeout(function () {
627
+ module.performance.display();
628
+ }, 500);
627
629
  },
628
630
  display: function () {
629
631
  var
@@ -871,7 +871,9 @@
871
871
  });
872
872
  }
873
873
  clearTimeout(module.performance.timer);
874
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
874
+ module.performance.timer = setTimeout(function () {
875
+ module.performance.display();
876
+ }, 500);
875
877
  },
876
878
  display: function () {
877
879
  var
@@ -32,8 +32,6 @@
32
32
  methodInvoked = typeof query === 'string',
33
33
  queryArguments = [].slice.call(arguments, 1),
34
34
 
35
- 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'],
36
-
37
35
  SINGLE_STEP = 1,
38
36
  BIG_STEP = 2,
39
37
  NO_STEP = 0,
@@ -82,7 +80,6 @@
82
80
  position,
83
81
  secondPos,
84
82
  offset,
85
- precision,
86
83
  gapRatio = 1,
87
84
  previousValue,
88
85
 
@@ -125,6 +122,7 @@
125
122
  clearInterval(instance.interval);
126
123
  module.unbind.events();
127
124
  module.unbind.slidingEvents();
125
+ delete module.cache;
128
126
  $module.removeData(moduleNamespace);
129
127
  instance = undefined;
130
128
  },
@@ -141,7 +139,7 @@
141
139
  + '<div class="thumb"></div>'
142
140
  + '</div>');
143
141
  }
144
- precision = module.get.precision();
142
+ module.clear.cache();
145
143
  $thumb = $module.find('.thumb:not(.second)');
146
144
  if (settings.showThumbTooltip) {
147
145
  $thumb
@@ -175,8 +173,14 @@
175
173
  module.setup.autoLabel();
176
174
  }
177
175
 
176
+ if (settings.highlightRange) {
177
+ $labels.addClass(className.active);
178
+ }
179
+
178
180
  if (settings.showLabelTicks) {
179
181
  $module.addClass(className.ticked);
182
+ } else if ($module.hasClass(className.ticked)) {
183
+ settings.showLabelTicks = 'always';
180
184
  }
181
185
  }
182
186
  },
@@ -211,14 +215,20 @@
211
215
  } else {
212
216
  $labels = $module.append('<ul class="auto labels"></ul>').find('.labels');
213
217
  }
214
- for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
218
+ var step = module.get.step(),
219
+ precision = module.get.precision(),
220
+ len = module.get.numLabels(),
221
+ ignoreLabels = len - (settings.autoAdjustLabels !== 'fixed' ? 0 : module.get.max().toString().length + 4)
222
+ ;
223
+ for (var i = 0; i <= len; i++) {
215
224
  var
216
- labelText = module.get.label(i),
225
+ stepValue = Math.round(((i * (step === 0 ? 1 : step)) + module.get.min()) * precision) / precision,
226
+ labelText = module.get.label(i, stepValue),
217
227
  showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
218
228
  $label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
219
- ? (!(i % module.get.gapRatio())
220
- ? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
221
- : $('<li class="halftick label"></li>'))
229
+ ? ((!(i % module.get.gapRatio()) && i < ignoreLabels) || i === len
230
+ ? $('<li/>', { class: className.label, 'data-value': stepValue, html: showLabel ? labelText : '' })
231
+ : $('<li/>', { class: 'halftick label', 'data-value': stepValue }))
222
232
  : null,
223
233
  ratio = i / len
224
234
  ;
@@ -489,6 +499,12 @@
489
499
  },
490
500
  },
491
501
 
502
+ clear: {
503
+ cache: function () {
504
+ module.cache = {};
505
+ },
506
+ },
507
+
492
508
  resync: function () {
493
509
  module.verbose('Resyncing thumb position based on value');
494
510
  if (module.is.range()) {
@@ -538,6 +554,25 @@
538
554
  },
539
555
 
540
556
  is: {
557
+ prime: function (n) {
558
+ if (module.cache['prime' + n] === undefined) {
559
+ var p = true;
560
+ for (var i = 2, s = Math.sqrt(n); i <= s; i++) {
561
+ if (n % i === 0) {
562
+ p = false;
563
+
564
+ break;
565
+ }
566
+ }
567
+ if (p) {
568
+ p = n > 1;
569
+ }
570
+
571
+ module.cache['prime' + n] = p;
572
+ }
573
+
574
+ return module.cache['prime' + n];
575
+ },
541
576
  range: function () {
542
577
  var isRange = $module.hasClass(className.range);
543
578
  if (!isRange && (settings.minRange || settings.maxRange)) {
@@ -652,62 +687,87 @@
652
687
  return margin || '0px';
653
688
  },
654
689
  precision: function () {
655
- var
656
- decimalPlaces,
657
- step = module.get.step()
658
- ;
659
- if (step !== 0) {
660
- var split = String(step).split('.');
661
- decimalPlaces = split.length === 2 ? split[1].length : 0;
662
- } else {
663
- decimalPlaces = settings.decimalPlaces;
690
+ if (module.cache.precision === undefined) {
691
+ var
692
+ decimalPlaces,
693
+ step = module.get.step()
694
+ ;
695
+ if (step !== 0) {
696
+ var split = String(step).split('.');
697
+ decimalPlaces = split.length === 2 ? split[1].length : 0;
698
+ } else {
699
+ decimalPlaces = settings.decimalPlaces;
700
+ }
701
+ var precision = Math.pow(10, decimalPlaces);
702
+ module.debug('Precision determined', precision);
703
+ module.cache.precision = precision;
664
704
  }
665
- var precision = Math.pow(10, decimalPlaces);
666
- module.debug('Precision determined', precision);
667
705
 
668
- return precision;
706
+ return module.cache.precision;
669
707
  },
670
708
  min: function () {
671
709
  return settings.min;
672
710
  },
673
711
  max: function () {
674
- var
675
- step = module.get.step(),
676
- min = module.get.min(),
677
- precision = module.get.precision(),
678
- quotient = step === 0 ? 0 : Math.floor(Math.round(((settings.max - min) / step) * precision) / precision),
679
- remainder = step === 0 ? 0 : (settings.max - min) % step
680
- ;
712
+ if (module.cache.max === undefined) {
713
+ var
714
+ step = module.get.step(),
715
+ min = module.get.min(),
716
+ precision = module.get.precision(),
717
+ quotient = step === 0 ? 0 : Math.floor(Math.round(((settings.max - min) / step) * precision) / precision),
718
+ remainder = step === 0 ? 0 : (settings.max - min) % step
719
+ ;
720
+ if (remainder > 0) {
721
+ module.debug('Max value not divisible by given step. Increasing max value.', settings.max, step);
722
+ }
723
+ module.cache.max = remainder === 0 ? settings.max : min + quotient * step;
724
+ }
681
725
 
682
- return remainder === 0 ? settings.max : min + quotient * step;
726
+ return module.cache.max;
683
727
  },
684
728
  step: function () {
685
729
  return settings.step;
686
730
  },
687
731
  numLabels: function () {
688
- var step = module.get.step(),
689
- precision = module.get.precision(),
690
- value = Math.round(((module.get.max() - module.get.min()) / (step === 0 ? 1 : step)) * precision) / precision;
691
- module.debug('Determined that there should be ' + value + ' labels');
732
+ if (module.cache.numLabels === undefined) {
733
+ var step = module.get.step(),
734
+ precision = module.get.precision(),
735
+ value = Math.round(((module.get.max() - module.get.min()) / (step === 0 ? 1 : step)) * precision) / precision;
736
+ module.debug('Determined that there should be ' + value + ' labels');
737
+ module.cache.numLabels = value;
738
+ }
692
739
 
693
- return value;
740
+ return module.cache.numLabels;
694
741
  },
695
742
  labelType: function () {
696
743
  return settings.labelType;
697
744
  },
698
- label: function (value) {
699
- if (interpretLabel) {
700
- return interpretLabel(value);
745
+ label: function (value, stepValue) {
746
+ if (isFunction(interpretLabel)) {
747
+ return interpretLabel(value, stepValue, module);
701
748
  }
702
749
 
703
750
  switch (settings.labelType) {
704
751
  case settings.labelTypes.number: {
705
- var step = module.get.step();
706
-
707
- return Math.round(((value * (step === 0 ? 1 : step)) + module.get.min()) * precision) / precision;
752
+ return stepValue;
708
753
  }
709
754
  case settings.labelTypes.letter: {
710
- return alphabet[value % 26];
755
+ if (value < 0 || module.get.precision() > 1) {
756
+ module.error(error.invalidLetterNumber, value);
757
+
758
+ return value;
759
+ }
760
+ var letterLabel = '',
761
+ letters = Array.isArray(settings.letters) ? settings.letters : String(settings.letters).split(''),
762
+ lettersLen = letters.length
763
+ ;
764
+
765
+ while (stepValue >= 0) {
766
+ letterLabel = letters[stepValue % lettersLen] + letterLabel;
767
+ stepValue = Math.floor(stepValue / lettersLen) - 1;
768
+ }
769
+
770
+ return letterLabel;
711
771
  }
712
772
  default: {
713
773
  return value;
@@ -717,6 +777,9 @@
717
777
  value: function () {
718
778
  return value;
719
779
  },
780
+ settings: function () {
781
+ return settings;
782
+ },
720
783
  currentThumbValue: function () {
721
784
  return $currThumb !== undefined && $currThumb.hasClass('second') ? module.secondThumbVal : module.thumbVal;
722
785
  },
@@ -761,6 +824,7 @@
761
824
  if (settings.autoAdjustLabels) {
762
825
  var
763
826
  numLabels = module.get.numLabels(),
827
+ primePlus = module.is.prime(numLabels) ? 1 : 0,
764
828
  trackLength = module.get.trackLength(),
765
829
  gapCounter = 1
766
830
  ;
@@ -770,7 +834,7 @@
770
834
  // and apply only if the modulo of the operation is an odd number.
771
835
  if (trackLength > 0) {
772
836
  while ((trackLength / numLabels) * gapCounter < settings.labelDistance) {
773
- if (!(numLabels % gapCounter)) {
837
+ if (!((numLabels + primePlus) % gapCounter) || settings.autoAdjustLabels === 'fixed') {
774
838
  gapRatio = gapCounter;
775
839
  }
776
840
  gapCounter += 1;
@@ -908,6 +972,7 @@
908
972
  },
909
973
  value: function (position) {
910
974
  var
975
+ precision = module.get.precision(),
911
976
  startPos = module.is.reversed() ? module.get.trackEndPos() : module.get.trackStartPos(),
912
977
  endPos = module.is.reversed() ? module.get.trackStartPos() : module.get.trackEndPos(),
913
978
  ratio = (position - startPos) / (endPos - startPos),
@@ -976,6 +1041,30 @@
976
1041
  },
977
1042
 
978
1043
  set: {
1044
+ active: function (thumbVal, secondThumbVal) {
1045
+ if (settings.highlightRange) {
1046
+ if (secondThumbVal < thumbVal) {
1047
+ var tempVal = secondThumbVal;
1048
+ secondThumbVal = thumbVal;
1049
+ thumbVal = tempVal;
1050
+ }
1051
+ var $children = $labels.find('.label');
1052
+ $children.each(function (index) {
1053
+ var
1054
+ $child = $(this),
1055
+ attrValue = $child.attr('data-value')
1056
+ ;
1057
+ if (attrValue) {
1058
+ attrValue = parseInt(attrValue, 10);
1059
+ if (attrValue >= thumbVal && attrValue <= secondThumbVal) {
1060
+ $child.addClass(className.active);
1061
+ } else {
1062
+ $child.removeClass(className.active);
1063
+ }
1064
+ }
1065
+ });
1066
+ }
1067
+ },
979
1068
  value: function (newValue, fireChange) {
980
1069
  fireChange = fireChange !== false;
981
1070
  var toReset = previousValue === undefined;
@@ -1103,6 +1192,7 @@
1103
1192
  position = newPos;
1104
1193
  thumbVal = newValue;
1105
1194
  }
1195
+ module.set.active(thumbVal, secondThumbVal);
1106
1196
  var
1107
1197
  trackPosValue,
1108
1198
  thumbPosValue,
@@ -1210,6 +1300,7 @@
1210
1300
  } else {
1211
1301
  return settings[name];
1212
1302
  }
1303
+ module.clear.cache();
1213
1304
  },
1214
1305
  internal: function (name, value) {
1215
1306
  if ($.isPlainObject(name)) {
@@ -1267,7 +1358,9 @@
1267
1358
  });
1268
1359
  }
1269
1360
  clearTimeout(module.performance.timer);
1270
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1361
+ module.performance.timer = setTimeout(function () {
1362
+ module.performance.display();
1363
+ }, 500);
1271
1364
  },
1272
1365
  display: function () {
1273
1366
  var
@@ -1380,6 +1473,7 @@
1380
1473
  method: 'The method you called is not defined.',
1381
1474
  notrange: 'This slider is not a range slider',
1382
1475
  invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
1476
+ invalidLetterNumber: 'Negative values or decimal places for labelType: "letter" are not supported',
1383
1477
  },
1384
1478
 
1385
1479
  metadata: {
@@ -1402,6 +1496,7 @@
1402
1496
  preventCrossover: true,
1403
1497
  fireOnInit: false,
1404
1498
  interpretLabel: false,
1499
+ letters: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
1405
1500
 
1406
1501
  // the decimal place to round to if step is undefined
1407
1502
  decimalPlaces: 2,
@@ -1419,6 +1514,8 @@
1419
1514
  vertical: 'vertical',
1420
1515
  range: 'range',
1421
1516
  smooth: 'smooth',
1517
+ label: 'label',
1518
+ active: 'active',
1422
1519
  },
1423
1520
 
1424
1521
  keys: {
@@ -1431,6 +1528,7 @@
1431
1528
  },
1432
1529
 
1433
1530
  restrictedLabels: [],
1531
+ highlightRange: false,
1434
1532
  showThumbTooltip: false,
1435
1533
  tooltipConfig: {
1436
1534
  position: 'top center',
@@ -204,15 +204,18 @@
204
204
 
205
205
  .ui.labeled.slider > .labels .label {
206
206
  display: inline-flex;
207
- padding: @labelPadding;
208
207
  position: absolute;
209
208
  transform: translate(-50%, -100%);
210
209
  white-space: nowrap;
210
+ &:not(.ui) {
211
+ padding: @labelPadding;
212
+ }
211
213
  }
212
-
213
- .ui.bottom.aligned.labeled.slider > .labels .label {
214
- bottom: 0;
215
- transform: translate(-50%, 100%);
214
+ & when (@variationSliderBottomAligned) {
215
+ .ui.bottom.aligned.labeled.slider > .labels .label {
216
+ bottom: 0;
217
+ transform: translate(-50%, 100%);
218
+ }
216
219
  }
217
220
  & when (@variationSliderTicked) {
218
221
  .ui.labeled.ticked.slider > .labels .label::after {
@@ -224,13 +227,39 @@
224
227
  top: 100%;
225
228
  left: 50%;
226
229
  }
227
- .ui.bottom.aligned.labeled.ticked.slider > .labels .label::after {
228
- top: auto;
229
- bottom: 100%;
230
+ & when (@variationSliderBottomAligned) {
231
+ .ui.bottom.aligned.labeled.ticked.slider > .labels .label::after {
232
+ top: auto;
233
+ bottom: 100%;
234
+ }
235
+ & when (@variationSliderUiLabel) {
236
+ .ui.labeled.slider.bottom.aligned .labels .ui.label {
237
+ margin-bottom: -@uiLabelMargin;
238
+ }
239
+ .ui.labeled.ticked.slider.bottom.aligned .labels .ui.label::after {
240
+ margin-bottom: @uiLabelMargin;
241
+ }
242
+ }
230
243
  }
231
244
  .ui.labeled.ticked.slider > .labels .halftick.label::after {
232
245
  height: (@labelHeight / 2);
233
246
  }
247
+ & when (@variationSliderInverted) {
248
+ .ui.inverted.labeled.ticked.slider > .labels .label::after {
249
+ background: @invertedLabelColor;
250
+ }
251
+ }
252
+ }
253
+ & when (@variationSliderUiLabel) {
254
+ .ui.labeled.slider:not(.vertical):not(.bottom) .labels .ui.label {
255
+ margin-top: -@uiLabelMargin;
256
+ }
257
+ .ui.labeled.ticked.slider:not(.vertical):not(.bottom) .labels .ui.label::after {
258
+ margin-top: @uiLabelMargin;
259
+ }
260
+ .ui.labeled.ticked.slider:not(.vertical) > .labels .ui.label::after {
261
+ height: @uiLabelTickHeight;
262
+ }
234
263
  }
235
264
 
236
265
  & when (@variationSliderVertical) {
@@ -259,6 +288,9 @@
259
288
  width: (@labelHeight / 2);
260
289
  height: @labelWidth;
261
290
  }
291
+ .ui.labeled.vertical.slider:not(.right) > .labels .halftick.label::after {
292
+ margin-left: @verticalTickDistance;
293
+ }
262
294
 
263
295
  & when (@variationSliderReversed) {
264
296
  /* Vertical Reversed Labels */
@@ -266,6 +298,39 @@
266
298
  transform: translate(-100%, 50%);
267
299
  }
268
300
  }
301
+ & when (@variationSliderUiLabel) {
302
+ .ui.labeled.ticked.vertical.slider:not(.right) > .labels .ui.label::after {
303
+ margin-left: @verticalUiLabelMargin;
304
+ }
305
+ }
306
+ & when (@variationSliderRightAligned) {
307
+ .ui.labeled.vertical.right.aligned.slider > .labels {
308
+ transform: translateX(50%);
309
+ left: e(%("calc(100%% + %d)", @verticalTickDistance));
310
+ }
311
+ .ui.labeled.vertical.right.aligned.slider > .labels .label {
312
+ transform: translate(100%, -50%);
313
+ right: 100%;
314
+ }
315
+
316
+ .ui.labeled.vertical.right.aligned.slider > .labels .label::after {
317
+ right: 100%;
318
+ left: auto;
319
+ }
320
+ .ui.labeled.vertical.right.aligned.slider > .labels .halftick.label::after {
321
+ margin-right: @verticalTickDistance;
322
+ }
323
+ & when (@variationSliderReversed) {
324
+ .ui.labeled.vertical.reversed.right.aligned.slider > .labels .label {
325
+ transform: translate(100%, 50%);
326
+ }
327
+ }
328
+ & when (@variationSliderUiLabel) {
329
+ .ui.labeled.ticked.vertical.right.aligned.slider > .labels .ui.label::after {
330
+ margin-right: @verticalUiLabelMargin;
331
+ }
332
+ }
333
+ }
269
334
  }
270
335
  }
271
336
 
@@ -296,6 +361,26 @@
296
361
  background-color: @transparentWhite;
297
362
  }
298
363
  }
364
+ & when (@variationSliderHighlight) {
365
+ .ui.labeled.slider > .active.labels .label {
366
+ transition: @highlightTransition;
367
+ }
368
+ & when (@variationSliderTicked) {
369
+ .ui.labeled.ticked.slider > .active.labels .active.label::after {
370
+ background: @trackFillColor;
371
+ }
372
+ & when (@variationSliderInverted) {
373
+ .ui.inverted.labeled.ticked.slider > .active.labels .active.label::after {
374
+ background: @invertedTrackFillColor;
375
+ }
376
+ }
377
+ }
378
+
379
+ .ui.labeled.ticked.slider > .active.labels .active.label::after,
380
+ .ui.labeled.slider > .active.labels .label:not(.active) {
381
+ opacity: @highlightOpacity;
382
+ }
383
+ }
299
384
 
300
385
  /* --------------
301
386
  Colors
@@ -338,6 +423,16 @@
338
423
  }
339
424
  }
340
425
  }
426
+ & when (@variationSliderHighlight) and (@variationSliderTicked) {
427
+ .ui.@{color}.labeled.ticked.slider > .active.labels .active.label::after {
428
+ background-color: @c;
429
+ }
430
+ & when (@variationSliderInverted) {
431
+ .ui.@{color}.inverted.labeled.ticked.slider > .active.labels .active.label::after {
432
+ background-color: @l;
433
+ }
434
+ }
435
+ }
341
436
 
342
437
  });
343
438
  }
@@ -746,7 +746,9 @@
746
746
  });
747
747
  }
748
748
  clearTimeout(module.performance.timer);
749
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 0);
749
+ module.performance.timer = setTimeout(function () {
750
+ module.performance.display();
751
+ }, 0);
750
752
  },
751
753
  display: function () {
752
754
  var
@@ -788,7 +788,9 @@
788
788
  });
789
789
  }
790
790
  clearTimeout(module.performance.timer);
791
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
791
+ module.performance.timer = setTimeout(function () {
792
+ module.performance.display();
793
+ }, 500);
792
794
  },
793
795
  display: function () {
794
796
  var
@@ -183,6 +183,7 @@
183
183
  $toast.append($('<img>', {
184
184
  class: className.image + ' ' + settings.classImage,
185
185
  src: settings.showImage,
186
+ alt: settings.alt || '',
186
187
  }));
187
188
  }
188
189
  if (settings.title !== '') {
@@ -228,7 +229,7 @@
228
229
  $toast.find(selector.icon).attr('class', iconClass + ' ' + className.icon);
229
230
  }
230
231
  if (settings.showImage) {
231
- $toast.find(selector.image).attr('src', settings.showImage);
232
+ $toast.find(selector.image).attr('src', settings.showImage).attr('alt', settings.alt || '');
232
233
  }
233
234
  if (settings.title !== '') {
234
235
  $toast.find(selector.title).html(module.helpers.escape(settings.title, settings.preserveHTML));
@@ -702,7 +703,9 @@
702
703
  });
703
704
  }
704
705
  clearTimeout(module.performance.timer);
705
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
706
+ module.performance.timer = setTimeout(function () {
707
+ module.performance.display();
708
+ }, 500);
706
709
  },
707
710
  display: function () {
708
711
  var
@@ -839,6 +842,7 @@
839
842
  actions: false,
840
843
  preserveHTML: true,
841
844
  showImage: false,
845
+ alt: false,
842
846
 
843
847
  // transition settings
844
848
  transition: {
@@ -142,7 +142,9 @@
142
142
  ? ($allModules.length - index) * interval
143
143
  : index * interval;
144
144
  module.debug('Delaying animation by', delay);
145
- setTimeout(function () { module.animate(); }, delay);
145
+ setTimeout(function () {
146
+ module.animate();
147
+ }, delay);
146
148
  },
147
149
 
148
150
  animate: function (overrideSettings) {
@@ -849,7 +851,9 @@
849
851
  });
850
852
  }
851
853
  clearTimeout(module.performance.timer);
852
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
854
+ module.performance.timer = setTimeout(function () {
855
+ module.performance.display();
856
+ }, 500);
853
857
  },
854
858
  display: function () {
855
859
  var
@@ -459,6 +459,17 @@
459
459
  color: @invertedLikeActiveColor;
460
460
  }
461
461
  }
462
+
463
+ /* Action */
464
+ .ui.inverted.feed > .event > .content .meta a,
465
+ .ui.inverted.feed > .event > .content .meta > i.icon {
466
+ color: @invertedMetadataActionColor;
467
+ }
468
+ .ui.inverted.feed > .event > .content .meta a:hover,
469
+ .ui.inverted.feed > .event > .content .meta a:hover i.icon,
470
+ .ui.inverted.feed > .event > .content .meta > i.icon:hover {
471
+ color: @invertedMetadataActionHoverColor;
472
+ }
462
473
  }
463
474
 
464
475
  /* --------------