fomantic-ui-sass 2.9.2 → 2.9.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile +2 -0
- data/Rakefile +2 -0
- data/app/assets/javascripts/semantic-ui/accordion.js +1 -5
- data/app/assets/javascripts/semantic-ui/api.js +22 -15
- data/app/assets/javascripts/semantic-ui/calendar.js +1 -6
- data/app/assets/javascripts/semantic-ui/checkbox.js +4 -6
- data/app/assets/javascripts/semantic-ui/dimmer.js +1 -5
- data/app/assets/javascripts/semantic-ui/dropdown.js +56 -33
- data/app/assets/javascripts/semantic-ui/embed.js +1 -6
- data/app/assets/javascripts/semantic-ui/flyout.js +40 -58
- data/app/assets/javascripts/semantic-ui/form.js +102 -53
- data/app/assets/javascripts/semantic-ui/modal.js +45 -33
- data/app/assets/javascripts/semantic-ui/nag.js +17 -9
- data/app/assets/javascripts/semantic-ui/popup.js +27 -19
- data/app/assets/javascripts/semantic-ui/progress.js +1 -6
- data/app/assets/javascripts/semantic-ui/rating.js +1 -5
- data/app/assets/javascripts/semantic-ui/search.js +4 -7
- data/app/assets/javascripts/semantic-ui/shape.js +1 -5
- data/app/assets/javascripts/semantic-ui/sidebar.js +15 -38
- data/app/assets/javascripts/semantic-ui/site.js +1 -1
- data/app/assets/javascripts/semantic-ui/slider.js +130 -34
- data/app/assets/javascripts/semantic-ui/state.js +23 -20
- data/app/assets/javascripts/semantic-ui/sticky.js +17 -16
- data/app/assets/javascripts/semantic-ui/tab.js +18 -8
- data/app/assets/javascripts/semantic-ui/toast.js +17 -9
- data/app/assets/javascripts/semantic-ui/transition.js +2 -6
- data/app/assets/javascripts/semantic-ui/visibility.js +15 -6
- data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +53 -20
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +107 -107
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +13 -7
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +65 -1
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/elements/_container.scss +62 -1
- data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +697 -249
- data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +3 -2
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +62 -62
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +3 -27
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +21 -2
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +13 -13
- data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +282 -282
- data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +161 -34
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/globals/_site.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +145 -8
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +50 -6
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +3 -3
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +119 -26
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_flyout.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +10 -3
- data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +41 -40
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +26 -1
- data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +6 -1
- data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_ad.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_comment.scss +6 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +486 -5
- data/app/assets/stylesheets/semantic-ui/views/_item.scss +6 -1
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
- data/app/helpers/semantic_breadcrumbs_helper.rb +2 -0
- data/app/helpers/semantic_flash_helper.rb +2 -0
- data/app/helpers/semantic_icon_helper.rb +2 -0
- data/fomantic-ui-sass.gemspec +4 -2
- data/gemfiles/rails_5.0.gemfile +2 -0
- data/gemfiles/rails_5.1.gemfile +2 -0
- data/gemfiles/rails_5.2.gemfile +2 -0
- data/lib/fomantic/ui/sass/breadcrumbs.rb +2 -0
- data/lib/fomantic/ui/sass/engine.rb +5 -3
- data/lib/fomantic/ui/sass/version.rb +4 -2
- data/lib/fomantic-ui-sass.rb +2 -6
- data/spec/dummy/Rakefile +2 -0
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/bin/bundle +2 -0
- data/spec/dummy/bin/rails +2 -0
- data/spec/dummy/bin/rake +2 -0
- data/spec/dummy/config/application.rb +3 -1
- data/spec/dummy/config/boot.rb +2 -0
- data/spec/dummy/config/environment.rb +2 -0
- data/spec/dummy/config/environments/development.rb +3 -1
- data/spec/dummy/config/environments/production.rb +2 -0
- data/spec/dummy/config/environments/test.rb +3 -1
- data/spec/dummy/config/initializers/backtrace_silencers.rb +2 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +2 -0
- data/spec/dummy/config/initializers/inflections.rb +2 -0
- data/spec/dummy/config/initializers/mime_types.rb +2 -0
- data/spec/dummy/config/initializers/secret_token.rb +2 -0
- data/spec/dummy/config/initializers/session_store.rb +2 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +2 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/dummy/config.ru +3 -1
- data/spec/helpers/semantic_breadcrumbs_helper_spec.rb +2 -0
- data/spec/helpers/semantic_flash_helper_spec.rb +2 -0
- data/spec/helpers/semantic_icon_helper_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/tasks/converter.rb +9 -19
- data/templates/project/manifest.rb +2 -0
- metadata +12 -26
@@ -28,15 +28,25 @@
|
|
28
28
|
$html = $('html'),
|
29
29
|
$head = $('head'),
|
30
30
|
|
31
|
-
moduleSelector = $allModules.selector || '',
|
32
|
-
|
33
31
|
time = Date.now(),
|
34
32
|
performance = [],
|
35
33
|
|
36
34
|
query = arguments[0],
|
37
35
|
methodInvoked = typeof query === 'string',
|
38
36
|
queryArguments = [].slice.call(arguments, 1),
|
37
|
+
contextCheck = function (context, win) {
|
38
|
+
var $context;
|
39
|
+
if ([window, document].indexOf(context) >= 0) {
|
40
|
+
$context = $body;
|
41
|
+
} else {
|
42
|
+
$context = $(win.document).find(context);
|
43
|
+
if ($context.length === 0) {
|
44
|
+
$context = win.frameElement ? contextCheck(context, win.parent) : $body;
|
45
|
+
}
|
46
|
+
}
|
39
47
|
|
48
|
+
return $context;
|
49
|
+
},
|
40
50
|
returnedValue;
|
41
51
|
|
42
52
|
$allModules.each(function () {
|
@@ -55,7 +65,7 @@
|
|
55
65
|
moduleNamespace = 'module-' + namespace,
|
56
66
|
|
57
67
|
$module = $(this),
|
58
|
-
$context =
|
68
|
+
$context = contextCheck(settings.context, window),
|
59
69
|
isBody = $context[0] === $body[0],
|
60
70
|
|
61
71
|
$sidebars = $module.children(selector.sidebar),
|
@@ -119,9 +129,6 @@
|
|
119
129
|
.off(eventNamespace)
|
120
130
|
.removeData(moduleNamespace)
|
121
131
|
;
|
122
|
-
if (module.is.ios()) {
|
123
|
-
module.remove.ios();
|
124
|
-
}
|
125
132
|
// bound by uuid
|
126
133
|
$context.off(elementNamespace);
|
127
134
|
$window.off(elementNamespace);
|
@@ -277,7 +284,7 @@
|
|
277
284
|
|
278
285
|
refresh: function () {
|
279
286
|
module.verbose('Refreshing selector cache');
|
280
|
-
$context =
|
287
|
+
$context = contextCheck(settings.context, window);
|
281
288
|
module.refreshSidebars();
|
282
289
|
$pusher = $context.children(selector.pusher);
|
283
290
|
$fixed = $context.children(selector.fixed);
|
@@ -585,11 +592,6 @@
|
|
585
592
|
$pusher.removeClass(className.blurring);
|
586
593
|
}
|
587
594
|
},
|
588
|
-
// ios only (scroll on html not document). This prevent auto-resize canvas/scroll in ios
|
589
|
-
// (This is no longer necessary in latest iOS)
|
590
|
-
ios: function () {
|
591
|
-
$html.addClass(className.ios);
|
592
|
-
},
|
593
595
|
|
594
596
|
// container
|
595
597
|
pushed: function () {
|
@@ -638,11 +640,6 @@
|
|
638
640
|
}
|
639
641
|
},
|
640
642
|
|
641
|
-
// ios scroll on html not document
|
642
|
-
ios: function () {
|
643
|
-
$html.removeClass(className.ios);
|
644
|
-
},
|
645
|
-
|
646
643
|
// context
|
647
644
|
pushed: function () {
|
648
645
|
$context.removeClass(className.pushed);
|
@@ -762,20 +759,6 @@
|
|
762
759
|
return module.cache.isIE;
|
763
760
|
},
|
764
761
|
|
765
|
-
ios: function () {
|
766
|
-
var
|
767
|
-
userAgent = navigator.userAgent,
|
768
|
-
isIOS = userAgent.match(regExp.ios),
|
769
|
-
isMobileChrome = userAgent.match(regExp.mobileChrome)
|
770
|
-
;
|
771
|
-
if (isIOS && !isMobileChrome) {
|
772
|
-
module.verbose('Browser was found to be iOS', userAgent);
|
773
|
-
|
774
|
-
return true;
|
775
|
-
}
|
776
|
-
|
777
|
-
return false;
|
778
|
-
},
|
779
762
|
mobile: function () {
|
780
763
|
var
|
781
764
|
userAgent = navigator.userAgent,
|
@@ -888,7 +871,7 @@
|
|
888
871
|
});
|
889
872
|
}
|
890
873
|
clearTimeout(module.performance.timer);
|
891
|
-
module.performance.timer = setTimeout(module.performance.display, 500);
|
874
|
+
module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
|
892
875
|
},
|
893
876
|
display: function () {
|
894
877
|
var
|
@@ -901,9 +884,6 @@
|
|
901
884
|
totalTime += data['Execution Time'];
|
902
885
|
});
|
903
886
|
title += ' ' + totalTime + 'ms';
|
904
|
-
if (moduleSelector) {
|
905
|
-
title += ' \'' + moduleSelector + '\'';
|
906
|
-
}
|
907
887
|
if (performance.length > 0) {
|
908
888
|
console.groupCollapsed(title);
|
909
889
|
if (console.table) {
|
@@ -1038,7 +1018,6 @@
|
|
1038
1018
|
blurring: 'blurring',
|
1039
1019
|
closing: 'closing',
|
1040
1020
|
dimmed: 'dimmed',
|
1041
|
-
ios: 'ios',
|
1042
1021
|
locked: 'locked',
|
1043
1022
|
pushable: 'pushable',
|
1044
1023
|
pushed: 'pushed',
|
@@ -1058,8 +1037,6 @@
|
|
1058
1037
|
},
|
1059
1038
|
|
1060
1039
|
regExp: {
|
1061
|
-
ios: /(iPad|iPhone|iPod)/g,
|
1062
|
-
mobileChrome: /(CriOS)/g,
|
1063
1040
|
mobile: /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g,
|
1064
1041
|
},
|
1065
1042
|
|
@@ -292,7 +292,7 @@
|
|
292
292
|
});
|
293
293
|
}
|
294
294
|
clearTimeout(module.performance.timer);
|
295
|
-
module.performance.timer = setTimeout(module.performance.display, 500);
|
295
|
+
module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
|
296
296
|
},
|
297
297
|
display: function () {
|
298
298
|
var
|
@@ -25,8 +25,6 @@
|
|
25
25
|
$document = $(document),
|
26
26
|
$window = $(window),
|
27
27
|
|
28
|
-
moduleSelector = $allModules.selector || '',
|
29
|
-
|
30
28
|
time = Date.now(),
|
31
29
|
performance = [],
|
32
30
|
|
@@ -105,9 +103,7 @@
|
|
105
103
|
module.setup.layout();
|
106
104
|
module.setup.labels();
|
107
105
|
|
108
|
-
|
109
|
-
module.bind.events();
|
110
|
-
}
|
106
|
+
module.bind.events();
|
111
107
|
|
112
108
|
module.read.metadata();
|
113
109
|
module.read.settings();
|
@@ -139,20 +135,32 @@
|
|
139
135
|
$module.attr('tabindex', 0);
|
140
136
|
}
|
141
137
|
if ($module.find('.inner').length === 0) {
|
142
|
-
$module.append(
|
143
|
-
+
|
144
|
-
+
|
145
|
-
+
|
138
|
+
$module.append('<div class="inner">'
|
139
|
+
+ '<div class="track"></div>'
|
140
|
+
+ '<div class="track-fill"></div>'
|
141
|
+
+ '<div class="thumb"></div>'
|
146
142
|
+ '</div>');
|
147
143
|
}
|
148
144
|
precision = module.get.precision();
|
149
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
|
+
}
|
150
152
|
$currThumb = $thumb;
|
151
153
|
if (module.is.range()) {
|
152
154
|
if ($module.find('.thumb.second').length === 0) {
|
153
|
-
$module.find('.inner').append(
|
155
|
+
$module.find('.inner').append('<div class="thumb second"></div>');
|
154
156
|
}
|
155
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
|
+
}
|
156
164
|
}
|
157
165
|
$track = $module.find('.track');
|
158
166
|
$trackFill = $module.find('.track-fill');
|
@@ -206,9 +214,10 @@
|
|
206
214
|
for (var i = 0, len = module.get.numLabels(); i <= len; i++) {
|
207
215
|
var
|
208
216
|
labelText = module.get.label(i),
|
209
|
-
|
217
|
+
showLabel = settings.restrictedLabels.length === 0 || settings.restrictedLabels.indexOf(labelText) >= 0,
|
218
|
+
$label = labelText !== '' && (showLabel || settings.showLabelTicks === 'always')
|
210
219
|
? (!(i % module.get.gapRatio())
|
211
|
-
? $('<li class="label">' + labelText + '</li>')
|
220
|
+
? $('<li class="label">' + (showLabel ? labelText : '') + '</li>')
|
212
221
|
: $('<li class="halftick label"></li>'))
|
213
222
|
: null,
|
214
223
|
ratio = i / len
|
@@ -352,6 +361,18 @@
|
|
352
361
|
;
|
353
362
|
$currThumb = initialPosition > newPos ? $thumb : $secondThumb;
|
354
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
|
+
}
|
355
376
|
if (module.get.step() === 0 || module.is.smooth()) {
|
356
377
|
var
|
357
378
|
thumbVal = module.thumbVal,
|
@@ -387,6 +408,17 @@
|
|
387
408
|
return;
|
388
409
|
}
|
389
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
|
+
}
|
390
422
|
module.set.value(value);
|
391
423
|
module.unbind.slidingEvents();
|
392
424
|
touchIdentifier = undefined;
|
@@ -403,6 +435,9 @@
|
|
403
435
|
}
|
404
436
|
},
|
405
437
|
keydown: function (event, first) {
|
438
|
+
if (module.is.disabled()) {
|
439
|
+
return;
|
440
|
+
}
|
406
441
|
if (settings.preventCrossover && module.is.range() && module.thumbVal === module.secondThumbVal) {
|
407
442
|
$currThumb = undefined;
|
408
443
|
}
|
@@ -439,7 +474,7 @@
|
|
439
474
|
}
|
440
475
|
},
|
441
476
|
activateFocus: function (event) {
|
442
|
-
if (!module.is.focused() && module.is.hover() && module.determine.keyMovement(event) !== NO_STEP) {
|
477
|
+
if (!module.is.disabled() && !module.is.focused() && module.is.hover() && module.determine.keyMovement(event) !== NO_STEP) {
|
443
478
|
event.preventDefault();
|
444
479
|
module.event.keydown(event, true);
|
445
480
|
$module.trigger('focus');
|
@@ -504,7 +539,13 @@
|
|
504
539
|
|
505
540
|
is: {
|
506
541
|
range: function () {
|
507
|
-
|
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;
|
508
549
|
},
|
509
550
|
hover: function () {
|
510
551
|
return isHover;
|
@@ -513,23 +554,56 @@
|
|
513
554
|
return $module.is(':focus');
|
514
555
|
},
|
515
556
|
disabled: function () {
|
516
|
-
return $module.hasClass(
|
557
|
+
return $module.hasClass(className.disabled);
|
517
558
|
},
|
518
559
|
labeled: function () {
|
519
|
-
|
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;
|
520
567
|
},
|
521
568
|
reversed: function () {
|
522
|
-
return $module.hasClass(
|
569
|
+
return $module.hasClass(className.reversed);
|
523
570
|
},
|
524
571
|
vertical: function () {
|
525
|
-
return $module.hasClass(
|
572
|
+
return $module.hasClass(className.vertical);
|
526
573
|
},
|
527
574
|
smooth: function () {
|
528
|
-
return settings.smooth || $module.hasClass(
|
575
|
+
return settings.smooth || $module.hasClass(className.smooth);
|
529
576
|
},
|
530
577
|
},
|
531
578
|
|
532
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
|
+
},
|
533
607
|
trackOffset: function () {
|
534
608
|
if (module.is.vertical()) {
|
535
609
|
return $track.offset().top;
|
@@ -600,7 +674,8 @@
|
|
600
674
|
var
|
601
675
|
step = module.get.step(),
|
602
676
|
min = module.get.min(),
|
603
|
-
|
677
|
+
precision = module.get.precision(),
|
678
|
+
quotient = step === 0 ? 0 : Math.floor(Math.round(((settings.max - min) / step) * precision) / precision),
|
604
679
|
remainder = step === 0 ? 0 : (settings.max - min) % step
|
605
680
|
;
|
606
681
|
|
@@ -610,7 +685,9 @@
|
|
610
685
|
return settings.step;
|
611
686
|
},
|
612
687
|
numLabels: function () {
|
613
|
-
var
|
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;
|
614
691
|
module.debug('Determined that there should be ' + value + ' labels');
|
615
692
|
|
616
693
|
return value;
|
@@ -625,7 +702,9 @@
|
|
625
702
|
|
626
703
|
switch (settings.labelType) {
|
627
704
|
case settings.labelTypes.number: {
|
628
|
-
|
705
|
+
var step = module.get.step();
|
706
|
+
|
707
|
+
return Math.round(((value * (step === 0 ? 1 : step)) + module.get.min()) * precision) / precision;
|
629
708
|
}
|
630
709
|
case settings.labelTypes.letter: {
|
631
710
|
return alphabet[value % 26];
|
@@ -733,13 +812,10 @@
|
|
733
812
|
return thumbDelta <= secondThumbDelta ? thumbPos : secondThumbPos;
|
734
813
|
},
|
735
814
|
thumbPos: function ($element) {
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
: (module.is.reversed() ? $element.css('right') : $element.css('left'))
|
815
|
+
return module.is.vertical()
|
816
|
+
? (module.is.reversed() ? $element.css('bottom') : $element.css('top'))
|
817
|
+
: (module.is.reversed() ? $element.css('right') : $element.css('left'))
|
740
818
|
;
|
741
|
-
|
742
|
-
return pos;
|
743
819
|
},
|
744
820
|
positionFromValue: function (val) {
|
745
821
|
var
|
@@ -763,6 +839,7 @@
|
|
763
839
|
position = Math.round(ratio * trackLength),
|
764
840
|
adjustedPos = step === 0 ? position : Math.round(position / step) * step
|
765
841
|
;
|
842
|
+
module.verbose('Determined position: ' + position + ' from ratio: ' + ratio);
|
766
843
|
|
767
844
|
return adjustedPos;
|
768
845
|
},
|
@@ -986,12 +1063,12 @@
|
|
986
1063
|
}
|
987
1064
|
if (!$currThumb.hasClass('second')) {
|
988
1065
|
if (settings.preventCrossover && module.is.range()) {
|
989
|
-
newValue = Math.min(module.secondThumbVal, newValue);
|
1066
|
+
newValue = Math.min(module.secondThumbVal - (settings.minRange || 0), newValue);
|
990
1067
|
}
|
991
1068
|
module.thumbVal = newValue;
|
992
1069
|
} else {
|
993
1070
|
if (settings.preventCrossover && module.is.range()) {
|
994
|
-
newValue = Math.max(module.thumbVal, newValue);
|
1071
|
+
newValue = Math.max(module.thumbVal + (settings.minRange || 0), newValue);
|
995
1072
|
}
|
996
1073
|
module.secondThumbVal = newValue;
|
997
1074
|
}
|
@@ -1010,6 +1087,10 @@
|
|
1010
1087
|
thumbVal = module.thumbVal || module.get.min(),
|
1011
1088
|
secondThumbVal = module.secondThumbVal || module.get.min()
|
1012
1089
|
;
|
1090
|
+
if (settings.showThumbTooltip) {
|
1091
|
+
var precision = module.get.precision();
|
1092
|
+
$targetThumb.attr('data-tooltip', Math.round(newValue * precision) / precision);
|
1093
|
+
}
|
1013
1094
|
if (module.is.range()) {
|
1014
1095
|
if (!$targetThumb.hasClass('second')) {
|
1015
1096
|
position = newPos;
|
@@ -1098,6 +1179,14 @@
|
|
1098
1179
|
settings: function () {
|
1099
1180
|
if (settings.start !== false) {
|
1100
1181
|
if (module.is.range()) {
|
1182
|
+
var rangeDiff = settings.end - settings.start;
|
1183
|
+
if (rangeDiff < 0
|
1184
|
+
|| (settings.minRange && rangeDiff < settings.minRange)
|
1185
|
+
|| (settings.maxRange && rangeDiff > settings.maxRange)
|
1186
|
+
|| (settings.minRange && settings.maxRange && settings.minRange > settings.maxRange)
|
1187
|
+
) {
|
1188
|
+
module.error(error.invalidRanges, settings.start, settings.end, settings.minRange, settings.maxRange);
|
1189
|
+
}
|
1101
1190
|
module.debug('Start position set from settings', settings.start, settings.end);
|
1102
1191
|
module.set.rangeValue(settings.start, settings.end);
|
1103
1192
|
} else {
|
@@ -1178,7 +1267,7 @@
|
|
1178
1267
|
});
|
1179
1268
|
}
|
1180
1269
|
clearTimeout(module.performance.timer);
|
1181
|
-
module.performance.timer = setTimeout(module.performance.display, 500);
|
1270
|
+
module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
|
1182
1271
|
},
|
1183
1272
|
display: function () {
|
1184
1273
|
var
|
@@ -1191,9 +1280,6 @@
|
|
1191
1280
|
totalTime += data['Execution Time'];
|
1192
1281
|
});
|
1193
1282
|
title += ' ' + totalTime + 'ms';
|
1194
|
-
if (moduleSelector) {
|
1195
|
-
title += ' \'' + moduleSelector + '\'';
|
1196
|
-
}
|
1197
1283
|
if (performance.length > 0) {
|
1198
1284
|
console.groupCollapsed(title);
|
1199
1285
|
if (console.table) {
|
@@ -1293,6 +1379,7 @@
|
|
1293
1379
|
error: {
|
1294
1380
|
method: 'The method you called is not defined.',
|
1295
1381
|
notrange: 'This slider is not a range slider',
|
1382
|
+
invalidRanges: 'Invalid range settings (start/end/minRange/maxRange)',
|
1296
1383
|
},
|
1297
1384
|
|
1298
1385
|
metadata: {
|
@@ -1305,6 +1392,8 @@
|
|
1305
1392
|
step: 1,
|
1306
1393
|
start: 0,
|
1307
1394
|
end: 20,
|
1395
|
+
minRange: false,
|
1396
|
+
maxRange: false,
|
1308
1397
|
labelType: 'number',
|
1309
1398
|
showLabelTicks: false,
|
1310
1399
|
smooth: false,
|
@@ -1341,6 +1430,13 @@
|
|
1341
1430
|
downArrow: 40,
|
1342
1431
|
},
|
1343
1432
|
|
1433
|
+
restrictedLabels: [],
|
1434
|
+
showThumbTooltip: false,
|
1435
|
+
tooltipConfig: {
|
1436
|
+
position: 'top center',
|
1437
|
+
variation: 'tiny black',
|
1438
|
+
},
|
1439
|
+
|
1344
1440
|
labelTypes: {
|
1345
1441
|
number: 'number',
|
1346
1442
|
letter: 'letter',
|
@@ -23,15 +23,25 @@
|
|
23
23
|
var
|
24
24
|
$allModules = $(this),
|
25
25
|
|
26
|
-
moduleSelector = $allModules.selector || '',
|
27
|
-
|
28
26
|
time = Date.now(),
|
29
27
|
performance = [],
|
30
28
|
|
31
29
|
query = arguments[0],
|
32
30
|
methodInvoked = typeof query === 'string',
|
33
31
|
queryArguments = [].slice.call(arguments, 1),
|
32
|
+
contextCheck = function (context, win) {
|
33
|
+
var $context;
|
34
|
+
if ([window, document].indexOf(context) >= 0) {
|
35
|
+
$context = $(context);
|
36
|
+
} else {
|
37
|
+
$context = $(win.document).find(context);
|
38
|
+
if ($context.length === 0) {
|
39
|
+
$context = win.frameElement ? contextCheck(context, win.parent) : window;
|
40
|
+
}
|
41
|
+
}
|
34
42
|
|
43
|
+
return $context;
|
44
|
+
},
|
35
45
|
returnedValue
|
36
46
|
;
|
37
47
|
$allModules.each(function () {
|
@@ -51,6 +61,7 @@
|
|
51
61
|
moduleNamespace = namespace + '-module',
|
52
62
|
|
53
63
|
$module = $(this),
|
64
|
+
$context = settings.context ? contextCheck(settings.context, window) : $module,
|
54
65
|
|
55
66
|
element = this,
|
56
67
|
instance = $module.data(moduleNamespace),
|
@@ -68,19 +79,11 @@
|
|
68
79
|
}
|
69
80
|
|
70
81
|
// bind events with delegated events
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
;
|
77
|
-
} else {
|
78
|
-
$module
|
79
|
-
.on('mouseenter' + eventNamespace, module.change.text)
|
80
|
-
.on('mouseleave' + eventNamespace, module.reset.text)
|
81
|
-
.on('click' + eventNamespace, module.toggle.state)
|
82
|
-
;
|
83
|
-
}
|
82
|
+
$context
|
83
|
+
.on('mouseenter' + eventNamespace, module.change.text)
|
84
|
+
.on('mouseleave' + eventNamespace, module.reset.text)
|
85
|
+
.on('click' + eventNamespace, module.toggle.state)
|
86
|
+
;
|
84
87
|
module.instantiate();
|
85
88
|
},
|
86
89
|
|
@@ -94,8 +97,11 @@
|
|
94
97
|
|
95
98
|
destroy: function () {
|
96
99
|
module.verbose('Destroying previous module', instance);
|
97
|
-
$
|
100
|
+
$context
|
98
101
|
.off(eventNamespace)
|
102
|
+
;
|
103
|
+
$module
|
104
|
+
.removeData(metadata.storedText)
|
99
105
|
.removeData(moduleNamespace)
|
100
106
|
;
|
101
107
|
},
|
@@ -476,7 +482,7 @@
|
|
476
482
|
});
|
477
483
|
}
|
478
484
|
clearTimeout(module.performance.timer);
|
479
|
-
module.performance.timer = setTimeout(module.performance.display, 500);
|
485
|
+
module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
|
480
486
|
},
|
481
487
|
display: function () {
|
482
488
|
var
|
@@ -489,9 +495,6 @@
|
|
489
495
|
totalTime += data['Execution Time'];
|
490
496
|
});
|
491
497
|
title += ' ' + totalTime + 'ms';
|
492
|
-
if (moduleSelector) {
|
493
|
-
title += ' \'' + moduleSelector + '\'';
|
494
|
-
}
|
495
498
|
if (performance.length > 0) {
|
496
499
|
console.groupCollapsed(title);
|
497
500
|
if (console.table) {
|
@@ -23,7 +23,6 @@
|
|
23
23
|
var
|
24
24
|
$allModules = $(this),
|
25
25
|
$document = $(document),
|
26
|
-
moduleSelector = $allModules.selector || '',
|
27
26
|
|
28
27
|
time = Date.now(),
|
29
28
|
performance = [],
|
@@ -31,6 +30,19 @@
|
|
31
30
|
query = arguments[0],
|
32
31
|
methodInvoked = typeof query === 'string',
|
33
32
|
queryArguments = [].slice.call(arguments, 1),
|
33
|
+
contextCheck = function (context, win) {
|
34
|
+
var $context;
|
35
|
+
if ([window, document].indexOf(context) >= 0) {
|
36
|
+
$context = $(context);
|
37
|
+
} else {
|
38
|
+
$context = $(win.document).find(context);
|
39
|
+
if ($context.length === 0) {
|
40
|
+
$context = win.frameElement ? contextCheck(context, win.parent) : window;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
return $context;
|
45
|
+
},
|
34
46
|
returnedValue
|
35
47
|
;
|
36
48
|
|
@@ -49,7 +61,7 @@
|
|
49
61
|
|
50
62
|
$module = $(this),
|
51
63
|
$window = $(window),
|
52
|
-
$scroll =
|
64
|
+
$scroll = contextCheck(settings.scrollContext, window),
|
53
65
|
$container,
|
54
66
|
$context,
|
55
67
|
|
@@ -127,19 +139,11 @@
|
|
127
139
|
},
|
128
140
|
|
129
141
|
determineContainer: function () {
|
130
|
-
|
131
|
-
$container = [window, document].indexOf(settings.container) < 0 ? $document.find(settings.container) : $(settings.container);
|
132
|
-
} else {
|
133
|
-
$container = $module.offsetParent();
|
134
|
-
}
|
142
|
+
$container = settings.container ? contextCheck(settings.container, window) : $module.offsetParent();
|
135
143
|
},
|
136
144
|
|
137
145
|
determineContext: function () {
|
138
|
-
|
139
|
-
$context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context);
|
140
|
-
} else {
|
141
|
-
$context = $container;
|
142
|
-
}
|
146
|
+
$context = settings.context ? contextCheck(settings.context, window) : $container;
|
143
147
|
if ($context.length === 0) {
|
144
148
|
module.error(error.invalidContext, settings.context, $module);
|
145
149
|
}
|
@@ -742,7 +746,7 @@
|
|
742
746
|
});
|
743
747
|
}
|
744
748
|
clearTimeout(module.performance.timer);
|
745
|
-
module.performance.timer = setTimeout(module.performance.display, 0);
|
749
|
+
module.performance.timer = setTimeout(function () { module.performance.display(); }, 0);
|
746
750
|
},
|
747
751
|
display: function () {
|
748
752
|
var
|
@@ -755,9 +759,6 @@
|
|
755
759
|
totalTime += data['Execution Time'];
|
756
760
|
});
|
757
761
|
title += ' ' + totalTime + 'ms';
|
758
|
-
if (moduleSelector) {
|
759
|
-
title += ' \'' + moduleSelector + '\'';
|
760
|
-
}
|
761
762
|
if (performance.length > 0) {
|
762
763
|
console.groupCollapsed(title);
|
763
764
|
if (console.table) {
|