fomantic-ui 2.9.3-beta.6 → 2.9.3-beta.60

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 (286) hide show
  1. package/.all-contributorsrc +2 -2
  2. package/.github/FUNDING.yml +1 -1
  3. package/.github/auto_assign.yml +1 -1
  4. package/.github/workflows/ci.yml +2 -2
  5. package/CONTRIBUTORS.md +1 -1
  6. package/README.md +5 -2
  7. package/SECURITY.md +2 -1
  8. package/dist/components/accordion.css +1 -1
  9. package/dist/components/accordion.js +2 -2
  10. package/dist/components/accordion.min.css +1 -1
  11. package/dist/components/accordion.min.js +2 -2
  12. package/dist/components/ad.css +1 -1
  13. package/dist/components/ad.min.css +1 -1
  14. package/dist/components/api.js +3 -3
  15. package/dist/components/api.min.js +2 -2
  16. package/dist/components/breadcrumb.css +1 -1
  17. package/dist/components/breadcrumb.min.css +1 -1
  18. package/dist/components/button.css +2 -2
  19. package/dist/components/button.min.css +2 -2
  20. package/dist/components/calendar.css +140 -3
  21. package/dist/components/calendar.js +2 -2
  22. package/dist/components/calendar.min.css +2 -2
  23. package/dist/components/calendar.min.js +2 -2
  24. package/dist/components/card.css +1 -1
  25. package/dist/components/card.min.css +1 -1
  26. package/dist/components/checkbox.css +50 -6
  27. package/dist/components/checkbox.js +5 -3
  28. package/dist/components/checkbox.min.css +2 -2
  29. package/dist/components/checkbox.min.js +2 -2
  30. package/dist/components/comment.css +6 -1
  31. package/dist/components/comment.min.css +2 -2
  32. package/dist/components/container.css +62 -1
  33. package/dist/components/container.min.css +2 -2
  34. package/dist/components/dimmer.css +3 -3
  35. package/dist/components/dimmer.js +2 -2
  36. package/dist/components/dimmer.min.css +2 -2
  37. package/dist/components/dimmer.min.js +2 -2
  38. package/dist/components/divider.css +1 -1
  39. package/dist/components/divider.min.css +1 -1
  40. package/dist/components/dropdown.css +30 -3
  41. package/dist/components/dropdown.js +29 -21
  42. package/dist/components/dropdown.min.css +2 -2
  43. package/dist/components/dropdown.min.js +2 -2
  44. package/dist/components/embed.css +1 -1
  45. package/dist/components/embed.js +2 -2
  46. package/dist/components/embed.min.css +1 -1
  47. package/dist/components/embed.min.js +2 -2
  48. package/dist/components/emoji.css +697 -249
  49. package/dist/components/emoji.min.css +2 -2
  50. package/dist/components/feed.css +486 -5
  51. package/dist/components/feed.min.css +2 -2
  52. package/dist/components/flag.css +3 -2
  53. package/dist/components/flag.min.css +2 -2
  54. package/dist/components/flyout.css +1 -1
  55. package/dist/components/flyout.js +5 -3
  56. package/dist/components/flyout.min.css +1 -1
  57. package/dist/components/flyout.min.js +2 -2
  58. package/dist/components/form.css +34 -32
  59. package/dist/components/form.js +72 -31
  60. package/dist/components/form.min.css +2 -2
  61. package/dist/components/form.min.js +2 -2
  62. package/dist/components/grid.css +107 -107
  63. package/dist/components/grid.min.css +2 -2
  64. package/dist/components/header.css +1 -1
  65. package/dist/components/header.min.css +1 -1
  66. package/dist/components/icon.css +62 -62
  67. package/dist/components/icon.min.css +2 -2
  68. package/dist/components/image.css +1 -1
  69. package/dist/components/image.min.css +1 -1
  70. package/dist/components/input.css +3 -27
  71. package/dist/components/input.min.css +2 -2
  72. package/dist/components/item.css +6 -1
  73. package/dist/components/item.min.css +2 -2
  74. package/dist/components/label.css +21 -2
  75. package/dist/components/label.min.css +2 -2
  76. package/dist/components/list.css +13 -13
  77. package/dist/components/list.min.css +2 -2
  78. package/dist/components/loader.css +282 -282
  79. package/dist/components/loader.min.css +2 -2
  80. package/dist/components/menu.css +13 -7
  81. package/dist/components/menu.min.css +2 -2
  82. package/dist/components/message.css +1 -1
  83. package/dist/components/message.min.css +1 -1
  84. package/dist/components/modal.css +10 -3
  85. package/dist/components/modal.js +10 -10
  86. package/dist/components/modal.min.css +2 -2
  87. package/dist/components/modal.min.js +2 -2
  88. package/dist/components/nag.css +1 -1
  89. package/dist/components/nag.js +3 -3
  90. package/dist/components/nag.min.css +1 -1
  91. package/dist/components/nag.min.js +2 -2
  92. package/dist/components/placeholder.css +1 -1
  93. package/dist/components/placeholder.min.css +1 -1
  94. package/dist/components/popup.css +3 -3
  95. package/dist/components/popup.js +11 -9
  96. package/dist/components/popup.min.css +2 -2
  97. package/dist/components/popup.min.js +2 -2
  98. package/dist/components/progress.css +1 -1
  99. package/dist/components/progress.js +2 -2
  100. package/dist/components/progress.min.css +1 -1
  101. package/dist/components/progress.min.js +2 -2
  102. package/dist/components/rail.css +1 -1
  103. package/dist/components/rail.min.css +1 -1
  104. package/dist/components/rating.css +1 -1
  105. package/dist/components/rating.js +2 -2
  106. package/dist/components/rating.min.css +1 -1
  107. package/dist/components/rating.min.js +2 -2
  108. package/dist/components/reset.css +1 -1
  109. package/dist/components/reset.min.css +1 -1
  110. package/dist/components/reveal.css +1 -1
  111. package/dist/components/reveal.min.css +1 -1
  112. package/dist/components/search.css +26 -1
  113. package/dist/components/search.js +5 -4
  114. package/dist/components/search.min.css +2 -2
  115. package/dist/components/search.min.js +2 -2
  116. package/dist/components/segment.css +159 -33
  117. package/dist/components/segment.min.css +2 -2
  118. package/dist/components/shape.css +1 -1
  119. package/dist/components/shape.js +2 -2
  120. package/dist/components/shape.min.css +1 -1
  121. package/dist/components/shape.min.js +2 -2
  122. package/dist/components/sidebar.css +1 -1
  123. package/dist/components/sidebar.js +2 -2
  124. package/dist/components/sidebar.min.css +1 -1
  125. package/dist/components/sidebar.min.js +2 -2
  126. package/dist/components/site.css +1 -1
  127. package/dist/components/site.js +2 -2
  128. package/dist/components/site.min.css +1 -1
  129. package/dist/components/site.min.js +2 -2
  130. package/dist/components/slider.css +1 -1
  131. package/dist/components/slider.js +118 -23
  132. package/dist/components/slider.min.css +1 -1
  133. package/dist/components/slider.min.js +2 -2
  134. package/dist/components/state.js +2 -2
  135. package/dist/components/state.min.js +2 -2
  136. package/dist/components/statistic.css +1 -1
  137. package/dist/components/statistic.min.css +1 -1
  138. package/dist/components/step.css +1 -1
  139. package/dist/components/step.min.css +1 -1
  140. package/dist/components/sticky.css +1 -1
  141. package/dist/components/sticky.js +2 -2
  142. package/dist/components/sticky.min.css +1 -1
  143. package/dist/components/sticky.min.js +2 -2
  144. package/dist/components/tab.css +1 -1
  145. package/dist/components/tab.js +6 -4
  146. package/dist/components/tab.min.css +1 -1
  147. package/dist/components/tab.min.js +2 -2
  148. package/dist/components/table.css +65 -1
  149. package/dist/components/table.min.css +2 -2
  150. package/dist/components/text.css +1 -1
  151. package/dist/components/text.min.css +1 -1
  152. package/dist/components/toast.css +6 -1
  153. package/dist/components/toast.js +2 -2
  154. package/dist/components/toast.min.css +2 -2
  155. package/dist/components/toast.min.js +2 -2
  156. package/dist/components/transition.css +1 -1
  157. package/dist/components/transition.js +3 -3
  158. package/dist/components/transition.min.css +1 -1
  159. package/dist/components/transition.min.js +2 -2
  160. package/dist/components/visibility.js +2 -2
  161. package/dist/components/visibility.min.js +2 -2
  162. package/dist/semantic.css +2744 -934
  163. package/dist/semantic.js +297 -144
  164. package/dist/semantic.min.css +2 -2
  165. package/dist/semantic.min.js +2 -2
  166. package/package.json +4 -3
  167. package/scripts/nightly-version.js +2 -2
  168. package/src/definitions/behaviors/api.js +2 -2
  169. package/src/definitions/behaviors/form.js +71 -30
  170. package/src/definitions/behaviors/state.js +1 -1
  171. package/src/definitions/behaviors/visibility.js +1 -1
  172. package/src/definitions/collections/form.less +9 -14
  173. package/src/definitions/collections/grid.less +106 -106
  174. package/src/definitions/collections/menu.less +29 -22
  175. package/src/definitions/collections/table.less +66 -0
  176. package/src/definitions/elements/button.less +1 -1
  177. package/src/definitions/elements/container.less +63 -0
  178. package/src/definitions/elements/icon.less +5 -5
  179. package/src/definitions/elements/input.less +2 -2
  180. package/src/definitions/elements/label.less +21 -1
  181. package/src/definitions/elements/list.less +13 -13
  182. package/src/definitions/elements/loader.less +71 -71
  183. package/src/definitions/elements/segment.less +110 -13
  184. package/src/definitions/globals/site.js +1 -1
  185. package/src/definitions/modules/accordion.js +1 -1
  186. package/src/definitions/modules/calendar.js +1 -1
  187. package/src/definitions/modules/calendar.less +40 -11
  188. package/src/definitions/modules/checkbox.js +4 -2
  189. package/src/definitions/modules/checkbox.less +61 -5
  190. package/src/definitions/modules/dimmer.js +1 -1
  191. package/src/definitions/modules/dimmer.less +2 -2
  192. package/src/definitions/modules/dropdown.js +28 -20
  193. package/src/definitions/modules/dropdown.less +43 -2
  194. package/src/definitions/modules/embed.js +1 -1
  195. package/src/definitions/modules/flyout.js +4 -2
  196. package/src/definitions/modules/modal.js +9 -9
  197. package/src/definitions/modules/modal.less +11 -2
  198. package/src/definitions/modules/nag.js +2 -2
  199. package/src/definitions/modules/popup.js +10 -8
  200. package/src/definitions/modules/popup.less +4 -4
  201. package/src/definitions/modules/progress.js +1 -1
  202. package/src/definitions/modules/rating.js +1 -1
  203. package/src/definitions/modules/search.js +4 -3
  204. package/src/definitions/modules/search.less +31 -0
  205. package/src/definitions/modules/shape.js +1 -1
  206. package/src/definitions/modules/sidebar.js +1 -1
  207. package/src/definitions/modules/slider.js +117 -22
  208. package/src/definitions/modules/sticky.js +1 -1
  209. package/src/definitions/modules/tab.js +5 -3
  210. package/src/definitions/modules/toast.js +1 -1
  211. package/src/definitions/modules/toast.less +7 -0
  212. package/src/definitions/modules/transition.js +2 -2
  213. package/src/definitions/views/comment.less +7 -0
  214. package/src/definitions/views/feed.less +238 -32
  215. package/src/definitions/views/item.less +7 -0
  216. package/src/themes/amazon/elements/button.variables +5 -1
  217. package/src/themes/bootstrap3/elements/button.variables +5 -1
  218. package/src/themes/chubby/elements/header.variables +6 -1
  219. package/src/themes/default/collections/message.variables +3 -9
  220. package/src/themes/default/collections/table.variables +11 -8
  221. package/src/themes/default/elements/button.variables +8 -10
  222. package/src/themes/default/elements/container.variables +3 -0
  223. package/src/themes/default/elements/emoji.variables +179 -67
  224. package/src/themes/default/elements/flag.variables +1 -1
  225. package/src/themes/default/elements/label.variables +6 -1
  226. package/src/themes/default/elements/segment.variables +8 -0
  227. package/src/themes/default/globals/site.variables +359 -340
  228. package/src/themes/default/globals/variation.variables +24 -1
  229. package/src/themes/default/modules/calendar.variables +11 -0
  230. package/src/themes/default/modules/checkbox.variables +12 -0
  231. package/src/themes/default/modules/dropdown.variables +3 -0
  232. package/src/themes/default/modules/modal.variables +4 -0
  233. package/src/themes/default/modules/popup.variables +1 -1
  234. package/src/themes/default/modules/search.variables +3 -0
  235. package/src/themes/default/modules/toast.variables +6 -5
  236. package/src/themes/default/views/card.variables +4 -12
  237. package/src/themes/default/views/feed.variables +55 -1
  238. package/src/themes/default/views/item.variables +5 -5
  239. package/src/themes/flat/collections/form.variables +4 -4
  240. package/src/themes/flat/globals/site.variables +1 -1
  241. package/src/themes/github/elements/button.variables +5 -1
  242. package/src/themes/joypixels/elements/emoji.variables +182 -70
  243. package/src/themes/material/globals/site.variables +1 -1
  244. package/src/themes/twitter/elements/button.variables +5 -1
  245. package/src/themes/twitter/elements/emoji.variables +178 -66
  246. package/tasks/admin/components/create.js +1 -2
  247. package/tasks/admin/components/init.js +3 -4
  248. package/tasks/admin/components/update.js +2 -3
  249. package/tasks/admin/distributions/create.js +9 -5
  250. package/tasks/admin/distributions/init.js +3 -4
  251. package/tasks/admin/distributions/update.js +2 -3
  252. package/tasks/config/project/install.js +3 -0
  253. package/tasks/config/tasks.js +1 -8
  254. package/tasks/config/user.js +1 -1
  255. package/tasks/docs/build.js +2 -2
  256. package/tasks/docs/metadata.js +1 -1
  257. package/tasks/docs/serve.js +1 -1
  258. package/tasks/install.js +19 -10
  259. package/tasks/watch.js +1 -2
  260. package/types/fomantic-ui-accordion.d.ts +244 -0
  261. package/types/fomantic-ui-api.d.ts +555 -0
  262. package/types/fomantic-ui-calendar.d.ts +766 -0
  263. package/types/fomantic-ui-checkbox.d.ts +332 -0
  264. package/types/fomantic-ui-dimmer.d.ts +408 -0
  265. package/types/fomantic-ui-dropdown.d.ts +1183 -0
  266. package/types/fomantic-ui-embed.d.ts +326 -0
  267. package/types/fomantic-ui-flyout.d.ts +525 -0
  268. package/types/fomantic-ui-form.d.ts +651 -0
  269. package/types/fomantic-ui-modal.d.ts +471 -0
  270. package/types/fomantic-ui-nag.d.ts +270 -0
  271. package/types/fomantic-ui-popup.d.ts +523 -0
  272. package/types/fomantic-ui-progress.d.ts +459 -0
  273. package/types/fomantic-ui-rating.d.ts +187 -0
  274. package/types/fomantic-ui-search.d.ts +496 -0
  275. package/types/fomantic-ui-shape.d.ts +274 -0
  276. package/types/fomantic-ui-sidebar.d.ts +402 -0
  277. package/types/fomantic-ui-slider.d.ts +316 -0
  278. package/types/fomantic-ui-sticky.d.ts +215 -0
  279. package/types/fomantic-ui-tab.d.ts +361 -0
  280. package/types/fomantic-ui-tests.ts +25 -0
  281. package/types/fomantic-ui-toast.d.ts +514 -0
  282. package/types/fomantic-ui-transition.d.ts +355 -0
  283. package/types/fomantic-ui-visibility.d.ts +355 -0
  284. package/types/index.d.ts +63 -0
  285. package/types/tsconfig.json +23 -0
  286. package/types/tslint.json +1 -0
@@ -169,7 +169,7 @@
169
169
  callback = function () {
170
170
  module.cancel.query();
171
171
  module.remove.focus();
172
- module.timer = setTimeout(module.hideResults, settings.hideDelay);
172
+ module.timer = setTimeout(function () { module.hideResults(); }, settings.hideDelay);
173
173
  }
174
174
  ;
175
175
  if (pageLostFocus) {
@@ -561,6 +561,7 @@
561
561
  if (cache) {
562
562
  module.debug('Reading result from cache', searchTerm);
563
563
  module.save.results(cache.results);
564
+ settings.onResults.call(element, cache.results, true);
564
565
  module.addResults(cache.html);
565
566
  module.inject.id(cache.results);
566
567
  callback();
@@ -1170,7 +1171,7 @@
1170
1171
  });
1171
1172
  }
1172
1173
  clearTimeout(module.performance.timer);
1173
- module.performance.timer = setTimeout(module.performance.display, 500);
1174
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1174
1175
  },
1175
1176
  display: function () {
1176
1177
  var
@@ -1345,7 +1346,7 @@
1345
1346
  onResultsAdd: false,
1346
1347
 
1347
1348
  onSearchQuery: function (query) {},
1348
- onResults: function (response) {},
1349
+ onResults: function (response, fromCache) {},
1349
1350
 
1350
1351
  onResultsOpen: function () {},
1351
1352
  onResultsClose: function () {},
@@ -367,6 +367,19 @@
367
367
  transition: @categoryResultTransition;
368
368
  padding: @categoryResultPadding;
369
369
  }
370
+
371
+ & when (@variationSearchHorizontalCategory) {
372
+ .ui.horizontal.category.search > .results .category,
373
+ .ui.horizontal.category.search > .results .category > .name,
374
+ .ui.horizontal.category.search > .results .category > .results {
375
+ display: block;
376
+ }
377
+
378
+ .ui.horizontal.category.search > .results .category > .results {
379
+ width: 100%;
380
+ border-left: 0;
381
+ }
382
+ }
370
383
  }
371
384
 
372
385
  /*******************************
@@ -394,21 +407,39 @@
394
407
  @media only screen and (max-width: @largestMobileScreen) {
395
408
  .ui.scrolling.search > .results {
396
409
  max-height: @scrollingMobileMaxResultsHeight;
410
+ .resizable& when (@variationSearchResizable) {
411
+ height: @scrollingMobileMaxResultsHeight;
412
+ }
397
413
  }
398
414
  }
399
415
  @media only screen and (min-width: @tabletBreakpoint) {
400
416
  .ui.scrolling.search > .results {
401
417
  max-height: @scrollingTabletMaxResultsHeight;
418
+ .resizable& when (@variationSearchResizable) {
419
+ height: @scrollingTabletMaxResultsHeight;
420
+ }
402
421
  }
403
422
  }
404
423
  @media only screen and (min-width: @computerBreakpoint) {
405
424
  .ui.scrolling.search > .results {
406
425
  max-height: @scrollingComputerMaxResultsHeight;
426
+ .resizable& when (@variationSearchResizable) {
427
+ height: @scrollingComputerMaxResultsHeight;
428
+ }
407
429
  }
408
430
  }
409
431
  @media only screen and (min-width: @widescreenMonitorBreakpoint) {
410
432
  .ui.scrolling.search > .results {
411
433
  max-height: @scrollingWidescreenMaxResultsHeight;
434
+ .resizable& when (@variationSearchResizable) {
435
+ height: @scrollingWidescreenMaxResultsHeight;
436
+ }
437
+ }
438
+ }
439
+ & when (@variationSearchResizable) {
440
+ .ui.scrolling.resizable.search > .results {
441
+ resize: @resizableDirection;
442
+ max-height: none;
412
443
  }
413
444
  }
414
445
  }
@@ -623,7 +623,7 @@
623
623
  });
624
624
  }
625
625
  clearTimeout(module.performance.timer);
626
- module.performance.timer = setTimeout(module.performance.display, 500);
626
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
627
627
  },
628
628
  display: function () {
629
629
  var
@@ -898,7 +898,7 @@
898
898
  });
899
899
  }
900
900
  clearTimeout(module.performance.timer);
901
- module.performance.timer = setTimeout(module.performance.display, 500);
901
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
902
902
  },
903
903
  display: function () {
904
904
  var
@@ -135,20 +135,32 @@
135
135
  $module.attr('tabindex', 0);
136
136
  }
137
137
  if ($module.find('.inner').length === 0) {
138
- $module.append("<div class='inner'>"
139
- + "<div class='track'></div>"
140
- + "<div class='track-fill'></div>"
141
- + "<div class='thumb'></div>"
138
+ $module.append('<div class="inner">'
139
+ + '<div class="track"></div>'
140
+ + '<div class="track-fill"></div>'
141
+ + '<div class="thumb"></div>'
142
142
  + '</div>');
143
143
  }
144
144
  precision = module.get.precision();
145
145
  $thumb = $module.find('.thumb:not(.second)');
146
+ if (settings.showThumbTooltip) {
147
+ $thumb
148
+ .attr('data-position', settings.tooltipConfig.position)
149
+ .attr('data-variation', settings.tooltipConfig.variation)
150
+ ;
151
+ }
146
152
  $currThumb = $thumb;
147
153
  if (module.is.range()) {
148
154
  if ($module.find('.thumb.second').length === 0) {
149
- $module.find('.inner').append("<div class='thumb second'></div>");
155
+ $module.find('.inner').append('<div class="thumb second"></div>');
150
156
  }
151
157
  $secondThumb = $module.find('.thumb.second');
158
+ if (settings.showThumbTooltip) {
159
+ $secondThumb
160
+ .attr('data-position', settings.tooltipConfig.position)
161
+ .attr('data-variation', settings.tooltipConfig.variation)
162
+ ;
163
+ }
152
164
  }
153
165
  $track = $module.find('.track');
154
166
  $trackFill = $module.find('.track-fill');
@@ -202,9 +214,10 @@
202
214
  for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
203
215
  var
204
216
  labelText = module.get.label(i),
205
- $label = labelText !== ''
217
+ showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
218
+ $label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
206
219
  ? (!(i % module.get.gapRatio())
207
- ? $('<li class="label">' + labelText + '</li>')
220
+ ? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
208
221
  : $('<li class="halftick label"></li>'))
209
222
  : null,
210
223
  ratio = i / len
@@ -348,6 +361,18 @@
348
361
  ;
349
362
  $currThumb = initialPosition > newPos ? $thumb : $secondThumb;
350
363
  }
364
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
365
+ var currentRangeDiff = module.get.currentRangeDiff(value),
366
+ isSecondThumb = $currThumb.hasClass('second')
367
+ ;
368
+ if ((settings.minRange && currentRangeDiff < settings.minRange)
369
+ || (settings.maxRange && currentRangeDiff > settings.maxRange)
370
+ || (settings.preventCrossover && !isSecondThumb && value > module.secondThumbVal)
371
+ || (settings.preventCrossover && isSecondThumb && value < module.thumbVal)
372
+ ) {
373
+ return;
374
+ }
375
+ }
351
376
  if (module.get.step() === 0 || module.is.smooth()) {
352
377
  var
353
378
  thumbVal = module.thumbVal,
@@ -383,6 +408,17 @@
383
408
  return;
384
409
  }
385
410
  var value = module.determine.valueFromEvent(event);
411
+ if (module.is.range() && (settings.minRange || settings.maxRange)) {
412
+ if ($currThumb === undefined) {
413
+ $currThumb = value <= module.get.currentThumbValue() ? $thumb : $secondThumb;
414
+ }
415
+ var currentRangeDiff = module.get.currentRangeDiff(value);
416
+ if (settings.minRange && currentRangeDiff < settings.minRange) {
417
+ value = module.get.edgeValue(value, settings.minRange);
418
+ } else if (settings.maxRange && currentRangeDiff > settings.maxRange) {
419
+ value = module.get.edgeValue(value, settings.maxRange);
420
+ }
421
+ }
386
422
  module.set.value(value);
387
423
  module.unbind.slidingEvents();
388
424
  touchIdentifier = undefined;
@@ -503,7 +539,13 @@
503
539
 
504
540
  is: {
505
541
  range: function () {
506
- return $module.hasClass(settings.className.range);
542
+ var isRange = $module.hasClass(className.range);
543
+ if (!isRange && (settings.minRange || settings.maxRange)) {
544
+ $module.addClass(className.range);
545
+ isRange = true;
546
+ }
547
+
548
+ return isRange;
507
549
  },
508
550
  hover: function () {
509
551
  return isHover;
@@ -512,23 +554,56 @@
512
554
  return $module.is(':focus');
513
555
  },
514
556
  disabled: function () {
515
- return $module.hasClass(settings.className.disabled);
557
+ return $module.hasClass(className.disabled);
516
558
  },
517
559
  labeled: function () {
518
- return $module.hasClass(settings.className.labeled);
560
+ var isLabeled = $module.hasClass(className.labeled);
561
+ if (!isLabeled && (settings.restrictedLabels.length > 0 || settings.showLabelTicks !== false)) {
562
+ $module.addClass(className.labeled);
563
+ isLabeled = true;
564
+ }
565
+
566
+ return isLabeled;
519
567
  },
520
568
  reversed: function () {
521
- return $module.hasClass(settings.className.reversed);
569
+ return $module.hasClass(className.reversed);
522
570
  },
523
571
  vertical: function () {
524
- return $module.hasClass(settings.className.vertical);
572
+ return $module.hasClass(className.vertical);
525
573
  },
526
574
  smooth: function () {
527
- return settings.smooth || $module.hasClass(settings.className.smooth);
575
+ return settings.smooth || $module.hasClass(className.smooth);
528
576
  },
529
577
  },
530
578
 
531
579
  get: {
580
+ currentRangeDiff: function (value) {
581
+ var currentRangeDiff;
582
+ if ($currThumb.hasClass('second')) {
583
+ currentRangeDiff = module.thumbVal < value
584
+ ? value - module.thumbVal
585
+ : module.thumbVal - value;
586
+ } else {
587
+ currentRangeDiff = module.secondThumbVal > value
588
+ ? module.secondThumbVal - value
589
+ : value - module.secondThumbVal;
590
+ }
591
+
592
+ return currentRangeDiff;
593
+ },
594
+ edgeValue: function (value, edgeValue) {
595
+ if ($currThumb.hasClass('second')) {
596
+ value = module.thumbVal < value
597
+ ? module.thumbVal + edgeValue
598
+ : module.thumbVal - edgeValue;
599
+ } else {
600
+ value = module.secondThumbVal < value
601
+ ? module.secondThumbVal + edgeValue
602
+ : module.secondThumbVal - edgeValue;
603
+ }
604
+
605
+ return value;
606
+ },
532
607
  trackOffset: function () {
533
608
  if (module.is.vertical()) {
534
609
  return $track.offset().top;
@@ -732,13 +807,10 @@
732
807
  return thumbDelta <= secondThumbDelta ? thumbPos : secondThumbPos;
733
808
  },
734
809
  thumbPos: function ($element) {
735
- var
736
- pos = module.is.vertical()
737
- ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
738
- : (module.is.reversed() ? $element.css('right') : $element.css('left'))
810
+ return module.is.vertical()
811
+ ? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
812
+ : (module.is.reversed() ? $element.css('right') : $element.css('left'))
739
813
  ;
740
-
741
- return pos;
742
814
  },
743
815
  positionFromValue: function (val) {
744
816
  var
@@ -762,6 +834,7 @@
762
834
  position = Math.round(ratio * trackLength),
763
835
  adjustedPos = step === 0 ? position : Math.round(position / step) * step
764
836
  ;
837
+ module.verbose('Determined position: ' + position + ' from ratio: ' + ratio);
765
838
 
766
839
  return adjustedPos;
767
840
  },
@@ -985,12 +1058,12 @@
985
1058
  }
986
1059
  if (!$currThumb.hasClass('second')) {
987
1060
  if (settings.preventCrossover && module.is.range()) {
988
- newValue = Math.min(module.secondThumbVal, newValue);
1061
+ newValue = Math.min(module.secondThumbVal - (settings.minRange || 0), newValue);
989
1062
  }
990
1063
  module.thumbVal = newValue;
991
1064
  } else {
992
1065
  if (settings.preventCrossover && module.is.range()) {
993
- newValue = Math.max(module.thumbVal, newValue);
1066
+ newValue = Math.max(module.thumbVal + (settings.minRange || 0), newValue);
994
1067
  }
995
1068
  module.secondThumbVal = newValue;
996
1069
  }
@@ -1009,6 +1082,10 @@
1009
1082
  thumbVal = module.thumbVal || module.get.min(),
1010
1083
  secondThumbVal = module.secondThumbVal || module.get.min()
1011
1084
  ;
1085
+ if (settings.showThumbTooltip) {
1086
+ var precision = module.get.precision();
1087
+ $targetThumb.attr('data-tooltip', Math.round(newValue * precision) / precision);
1088
+ }
1012
1089
  if (module.is.range()) {
1013
1090
  if (!$targetThumb.hasClass('second')) {
1014
1091
  position = newPos;
@@ -1097,6 +1174,14 @@
1097
1174
  settings: function () {
1098
1175
  if (settings.start !== false) {
1099
1176
  if (module.is.range()) {
1177
+ var rangeDiff = settings.end - settings.start;
1178
+ if (rangeDiff < 0
1179
+ || (settings.minRange && rangeDiff < settings.minRange)
1180
+ || (settings.maxRange && rangeDiff > settings.maxRange)
1181
+ || (settings.minRange && settings.maxRange && settings.minRange > settings.maxRange)
1182
+ ) {
1183
+ module.error(error.invalidRanges, settings.start, settings.end, settings.minRange, settings.maxRange);
1184
+ }
1100
1185
  module.debug('Start position set from settings', settings.start, settings.end);
1101
1186
  module.set.rangeValue(settings.start, settings.end);
1102
1187
  } else {
@@ -1177,7 +1262,7 @@
1177
1262
  });
1178
1263
  }
1179
1264
  clearTimeout(module.performance.timer);
1180
- module.performance.timer = setTimeout(module.performance.display, 500);
1265
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1181
1266
  },
1182
1267
  display: function () {
1183
1268
  var
@@ -1289,6 +1374,7 @@
1289
1374
  error: {
1290
1375
  method: 'The method you called is not defined.',
1291
1376
  notrange: 'This slider is not a range slider',
1377
+ invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
1292
1378
  },
1293
1379
 
1294
1380
  metadata: {
@@ -1301,6 +1387,8 @@
1301
1387
  step: 1,
1302
1388
  start: 0,
1303
1389
  end: 20,
1390
+ minRange: false,
1391
+ maxRange: false,
1304
1392
  labelType: 'number',
1305
1393
  showLabelTicks: false,
1306
1394
  smooth: false,
@@ -1337,6 +1425,13 @@
1337
1425
  downArrow: 40,
1338
1426
  },
1339
1427
 
1428
+ restrictedLabels: [],
1429
+ showThumbTooltip: false,
1430
+ tooltipConfig: {
1431
+ position: 'top center',
1432
+ variation: 'tiny black',
1433
+ },
1434
+
1340
1435
  labelTypes: {
1341
1436
  number: 'number',
1342
1437
  letter: 'letter',
@@ -746,7 +746,7 @@
746
746
  });
747
747
  }
748
748
  clearTimeout(module.performance.timer);
749
- module.performance.timer = setTimeout(module.performance.display, 0);
749
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 0);
750
750
  },
751
751
  display: function () {
752
752
  var
@@ -99,7 +99,7 @@
99
99
  module.bind.events();
100
100
 
101
101
  if (settings.history && !initializedHistory) {
102
- module.initializeHistory();
102
+ settings.history = module.initializeHistory();
103
103
  initializedHistory = true;
104
104
  }
105
105
 
@@ -109,7 +109,7 @@
109
109
  module.debug('No active tab detected, setting tab active', activeTab);
110
110
  module.changeTab(activeTab);
111
111
  }
112
- if (activeTab !== null && settings.history) {
112
+ if (activeTab !== null && settings.history && settings.historyType === 'state') {
113
113
  var autoUpdate = $.address.autoUpdate();
114
114
  $.address.autoUpdate(false);
115
115
  $.address.value(activeTab);
@@ -202,6 +202,8 @@
202
202
  $.address
203
203
  .bind('change', module.event.history.change)
204
204
  ;
205
+
206
+ return true;
205
207
  },
206
208
 
207
209
  event: {
@@ -786,7 +788,7 @@
786
788
  });
787
789
  }
788
790
  clearTimeout(module.performance.timer);
789
- module.performance.timer = setTimeout(module.performance.display, 500);
791
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
790
792
  },
791
793
  display: function () {
792
794
  var
@@ -702,7 +702,7 @@
702
702
  });
703
703
  }
704
704
  clearTimeout(module.performance.timer);
705
- module.performance.timer = setTimeout(module.performance.display, 500);
705
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
706
706
  },
707
707
  display: function () {
708
708
  var
@@ -139,6 +139,13 @@
139
139
  box-shadow: @floatingShadow;
140
140
  border: @toastBoxBorder;
141
141
  }
142
+ & when (@variationToastInverted) {
143
+ &.inverted.floating,
144
+ &.inverted.hoverfloating:hover {
145
+ box-shadow: @invertedFloatingShadow;
146
+ border: @invertedToastBoxBorder;
147
+ }
148
+ }
142
149
  }
143
150
  & when (@variationToastCompact) {
144
151
  &.compact,
@@ -142,7 +142,7 @@
142
142
  ? ($allModules.length - index) * interval
143
143
  : index * interval;
144
144
  module.debug('Delaying animation by', delay);
145
- setTimeout(module.animate, delay);
145
+ setTimeout(function () { module.animate(); }, delay);
146
146
  },
147
147
 
148
148
  animate: function (overrideSettings) {
@@ -849,7 +849,7 @@
849
849
  });
850
850
  }
851
851
  clearTimeout(module.performance.timer);
852
- module.performance.timer = setTimeout(module.performance.display, 500);
852
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
853
853
  },
854
854
  display: function () {
855
855
  var
@@ -290,6 +290,13 @@
290
290
  }
291
291
  }
292
292
  }
293
+ & when (@variationCommentDisabled) {
294
+ .ui.disabled.comments,
295
+ .ui.comments .disabled.comment {
296
+ opacity: @disabledOpacity;
297
+ pointer-events: @disabledPointerEvents;
298
+ }
299
+ }
293
300
 
294
301
  // stylelint-disable no-invalid-position-at-import-rule
295
302
  @import (multiple, optional) "../../overrides.less";