fomantic-ui-sass 2.8.7.1 → 2.8.8.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/app/assets/javascripts/semantic-ui/calendar.js +9 -11
- data/app/assets/javascripts/semantic-ui/dimmer.js +8 -11
- data/app/assets/javascripts/semantic-ui/dropdown.js +191 -99
- data/app/assets/javascripts/semantic-ui/form.js +98 -60
- data/app/assets/javascripts/semantic-ui/modal.js +259 -16
- data/app/assets/javascripts/semantic-ui/nag.js +130 -64
- data/app/assets/javascripts/semantic-ui/popup.js +4 -4
- data/app/assets/javascripts/semantic-ui/progress.js +6 -8
- data/app/assets/javascripts/semantic-ui/search.js +14 -12
- data/app/assets/javascripts/semantic-ui/slider.js +55 -31
- data/app/assets/javascripts/semantic-ui/toast.js +26 -6
- data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +46 -5
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +14 -7
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +6 -4
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +50 -3
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +6 -2
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +29 -2
- data/app/assets/stylesheets/semantic-ui/elements/_container.scss +3 -4
- data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +10 -5
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +237 -65
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +2 -1
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +41 -37
- 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 +34 -2
- 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 +2 -3
- data/app/assets/stylesheets/semantic-ui/globals/_site.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +3 -3
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +46 -4
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +72 -3
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +19 -8
- data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +168 -16
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +4 -2
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +18 -10
- data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +18 -33
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -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 +3 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -2
- data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +97 -10
- 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 +74 -2
- data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
- data/fomantic-ui-sass.gemspec +1 -1
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +4 -4
@@ -58,14 +58,14 @@ $.fn.nag = function(parameters) {
|
|
58
58
|
|
59
59
|
element = this,
|
60
60
|
instance = $module.data(moduleNamespace),
|
61
|
-
|
61
|
+
storage,
|
62
62
|
module
|
63
63
|
;
|
64
64
|
module = {
|
65
65
|
|
66
66
|
initialize: function() {
|
67
67
|
module.verbose('Initializing element');
|
68
|
-
|
68
|
+
storage = module.get.storage();
|
69
69
|
$module
|
70
70
|
.on('click' + eventNamespace, selector.close, module.dismiss)
|
71
71
|
.data(moduleNamespace, module)
|
@@ -94,47 +94,47 @@ $.fn.nag = function(parameters) {
|
|
94
94
|
|
95
95
|
show: function() {
|
96
96
|
if( module.should.show() && !$module.is(':visible') ) {
|
97
|
+
if(settings.onShow.call(element) === false) {
|
98
|
+
module.debug('onShow callback returned false, cancelling nag animation');
|
99
|
+
return false;
|
100
|
+
}
|
97
101
|
module.debug('Showing nag', settings.animation.show);
|
98
|
-
if(settings.animation.show
|
102
|
+
if(settings.animation.show === 'fade') {
|
99
103
|
$module
|
100
|
-
.fadeIn(settings.duration, settings.easing)
|
104
|
+
.fadeIn(settings.duration, settings.easing, settings.onVisible)
|
101
105
|
;
|
102
106
|
}
|
103
107
|
else {
|
104
108
|
$module
|
105
|
-
.slideDown(settings.duration, settings.easing)
|
109
|
+
.slideDown(settings.duration, settings.easing, settings.onVisible)
|
106
110
|
;
|
107
111
|
}
|
108
112
|
}
|
109
113
|
},
|
110
114
|
|
111
115
|
hide: function() {
|
112
|
-
|
113
|
-
|
116
|
+
if(settings.onHide.call(element) === false) {
|
117
|
+
module.debug('onHide callback returned false, cancelling nag animation');
|
118
|
+
return false;
|
119
|
+
}
|
120
|
+
module.debug('Hiding nag', settings.animation.hide);
|
121
|
+
if(settings.animation.hide === 'fade') {
|
114
122
|
$module
|
115
|
-
.
|
123
|
+
.fadeOut(settings.duration, settings.easing, settings.onHidden)
|
116
124
|
;
|
117
125
|
}
|
118
126
|
else {
|
119
127
|
$module
|
120
|
-
.slideUp(settings.duration, settings.easing)
|
128
|
+
.slideUp(settings.duration, settings.easing, settings.onHidden)
|
121
129
|
;
|
122
130
|
}
|
123
131
|
},
|
124
132
|
|
125
|
-
onHide: function() {
|
126
|
-
module.debug('Removing nag', settings.animation.hide);
|
127
|
-
$module.remove();
|
128
|
-
if (settings.onHide) {
|
129
|
-
settings.onHide();
|
130
|
-
}
|
131
|
-
},
|
132
|
-
|
133
133
|
dismiss: function(event) {
|
134
|
-
if(settings.storageMethod) {
|
134
|
+
if(module.hide() !== false && settings.storageMethod) {
|
135
|
+
module.debug('Dismissing nag', settings.storageMethod, settings.key, settings.value, settings.expires);
|
135
136
|
module.storage.set(settings.key, settings.value);
|
136
137
|
}
|
137
|
-
module.hide();
|
138
138
|
event.stopImmediatePropagation();
|
139
139
|
event.preventDefault();
|
140
140
|
},
|
@@ -155,12 +155,71 @@ $.fn.nag = function(parameters) {
|
|
155
155
|
},
|
156
156
|
|
157
157
|
get: {
|
158
|
+
expirationDate: function(expires) {
|
159
|
+
if (typeof expires === 'number') {
|
160
|
+
expires = new Date(Date.now() + expires * 864e5);
|
161
|
+
}
|
162
|
+
if(expires instanceof Date && expires.getTime() ){
|
163
|
+
return expires.toUTCString();
|
164
|
+
} else {
|
165
|
+
module.error(error.expiresFormat);
|
166
|
+
}
|
167
|
+
},
|
168
|
+
storage: function(){
|
169
|
+
if(settings.storageMethod === 'localstorage' && window.localStorage !== undefined) {
|
170
|
+
module.debug('Using local storage');
|
171
|
+
return window.localStorage;
|
172
|
+
}
|
173
|
+
else if(settings.storageMethod === 'sessionstorage' && window.sessionStorage !== undefined) {
|
174
|
+
module.debug('Using session storage');
|
175
|
+
return window.sessionStorage;
|
176
|
+
}
|
177
|
+
else if("cookie" in document) {
|
178
|
+
module.debug('Using cookie');
|
179
|
+
return {
|
180
|
+
setItem: function(key, value, options) {
|
181
|
+
// RFC6265 compliant encoding
|
182
|
+
key = encodeURIComponent(key)
|
183
|
+
.replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)
|
184
|
+
.replace(/[()]/g, escape);
|
185
|
+
value = encodeURIComponent(value)
|
186
|
+
.replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);
|
187
|
+
|
188
|
+
var cookieOptions = '';
|
189
|
+
for (var option in options) {
|
190
|
+
if (options.hasOwnProperty(option)) {
|
191
|
+
cookieOptions += '; ' + option;
|
192
|
+
if (typeof options[option] === 'string') {
|
193
|
+
cookieOptions += '=' + options[option].split(';')[0];
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
document.cookie = key + '=' + value + cookieOptions;
|
198
|
+
},
|
199
|
+
getItem: function(key) {
|
200
|
+
var cookies = document.cookie.split('; ');
|
201
|
+
for (var i = 0, il = cookies.length; i < il; i++) {
|
202
|
+
var parts = cookies[i].split('='),
|
203
|
+
foundKey = parts[0].replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
|
204
|
+
if (key === foundKey) {
|
205
|
+
return parts[1] || '';
|
206
|
+
}
|
207
|
+
}
|
208
|
+
},
|
209
|
+
removeItem: function(key, options) {
|
210
|
+
storage.setItem(key,'',options);
|
211
|
+
}
|
212
|
+
};
|
213
|
+
} else {
|
214
|
+
module.error(error.noStorage);
|
215
|
+
}
|
216
|
+
},
|
158
217
|
storageOptions: function() {
|
159
218
|
var
|
160
219
|
options = {}
|
161
220
|
;
|
162
221
|
if(settings.expires) {
|
163
|
-
options.expires = settings.expires;
|
222
|
+
options.expires = module.get.expirationDate(settings.expires);
|
164
223
|
}
|
165
224
|
if(settings.domain) {
|
166
225
|
options.domain = settings.domain;
|
@@ -168,6 +227,12 @@ $.fn.nag = function(parameters) {
|
|
168
227
|
if(settings.path) {
|
169
228
|
options.path = settings.path;
|
170
229
|
}
|
230
|
+
if(settings.secure) {
|
231
|
+
options.secure = settings.secure;
|
232
|
+
}
|
233
|
+
if(settings.samesite) {
|
234
|
+
options.samesite = settings.samesite;
|
235
|
+
}
|
171
236
|
return options;
|
172
237
|
}
|
173
238
|
},
|
@@ -181,39 +246,30 @@ $.fn.nag = function(parameters) {
|
|
181
246
|
var
|
182
247
|
options = module.get.storageOptions()
|
183
248
|
;
|
184
|
-
if(
|
185
|
-
|
186
|
-
|
249
|
+
if(storage === window.localStorage && options.expires) {
|
250
|
+
module.debug('Storing expiration value in localStorage', key, options.expires);
|
251
|
+
storage.setItem(key + settings.expirationKey, options.expires );
|
187
252
|
}
|
188
|
-
|
189
|
-
|
190
|
-
|
253
|
+
module.debug('Value stored', key, value);
|
254
|
+
try {
|
255
|
+
storage.setItem(key, value, options);
|
191
256
|
}
|
192
|
-
|
193
|
-
|
194
|
-
module.debug('Value stored using cookie', key, value, options);
|
195
|
-
}
|
196
|
-
else {
|
197
|
-
module.error(error.noCookieStorage);
|
198
|
-
return;
|
257
|
+
catch(e) {
|
258
|
+
module.error(error.setItem, e);
|
199
259
|
}
|
200
260
|
},
|
201
|
-
get: function(key
|
261
|
+
get: function(key) {
|
202
262
|
var
|
203
263
|
storedValue
|
204
264
|
;
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
storedValue = $.cookie(key);
|
214
|
-
}
|
215
|
-
else {
|
216
|
-
module.error(error.noCookieStorage);
|
265
|
+
storedValue = storage.getItem(key);
|
266
|
+
if(storage === window.localStorage) {
|
267
|
+
var expiration = storage.getItem(key + settings.expirationKey);
|
268
|
+
if(expiration !== null && expiration !== undefined && new Date(expiration) < new Date()) {
|
269
|
+
module.debug('Value in localStorage has expired. Deleting key', key);
|
270
|
+
module.storage.remove(key);
|
271
|
+
storedValue = null;
|
272
|
+
}
|
217
273
|
}
|
218
274
|
if(storedValue == 'undefined' || storedValue == 'null' || storedValue === undefined || storedValue === null) {
|
219
275
|
storedValue = undefined;
|
@@ -224,19 +280,11 @@ $.fn.nag = function(parameters) {
|
|
224
280
|
var
|
225
281
|
options = module.get.storageOptions()
|
226
282
|
;
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {
|
231
|
-
window.sessionStorage.removeItem(key);
|
232
|
-
}
|
233
|
-
// store by cookie
|
234
|
-
else if($.cookie !== undefined) {
|
235
|
-
$.removeCookie(key, options);
|
236
|
-
}
|
237
|
-
else {
|
238
|
-
module.error(error.noStorage);
|
283
|
+
options.expires = module.get.expirationDate(-1);
|
284
|
+
if(storage === window.localStorage) {
|
285
|
+
storage.removeItem(key + settings.expirationKey);
|
239
286
|
}
|
287
|
+
storage.removeItem(key, options);
|
240
288
|
}
|
241
289
|
},
|
242
290
|
|
@@ -450,8 +498,12 @@ $.fn.nag.settings = {
|
|
450
498
|
detachable : false,
|
451
499
|
|
452
500
|
expires : 30,
|
501
|
+
|
502
|
+
// cookie storage only options
|
453
503
|
domain : false,
|
454
504
|
path : '/',
|
505
|
+
secure : false,
|
506
|
+
samesite : false,
|
455
507
|
|
456
508
|
// type of storage to use
|
457
509
|
storageMethod : 'cookie',
|
@@ -460,10 +512,14 @@ $.fn.nag.settings = {
|
|
460
512
|
key : 'nag',
|
461
513
|
value : 'dismiss',
|
462
514
|
|
515
|
+
// Key suffix to support expiration in localstorage
|
516
|
+
expirationKey : 'ExpirationDate',
|
517
|
+
|
463
518
|
error: {
|
464
|
-
|
465
|
-
|
466
|
-
|
519
|
+
noStorage : 'Unsupported storage method',
|
520
|
+
method : 'The method you called is not defined.',
|
521
|
+
setItem : 'Unexpected error while setting value',
|
522
|
+
expiresFormat : '"expires" must be a number of days or a Date Object'
|
467
523
|
},
|
468
524
|
|
469
525
|
className : {
|
@@ -472,13 +528,23 @@ $.fn.nag.settings = {
|
|
472
528
|
},
|
473
529
|
|
474
530
|
selector : {
|
475
|
-
close : '.close.icon'
|
531
|
+
close : '> .close.icon'
|
476
532
|
},
|
477
533
|
|
478
|
-
|
534
|
+
duration : 500,
|
479
535
|
easing : 'easeOutQuad',
|
480
536
|
|
481
|
-
|
537
|
+
// callback before show animation, return false to prevent show
|
538
|
+
onShow : function() {},
|
539
|
+
|
540
|
+
// called after show animation
|
541
|
+
onVisible : function() {},
|
542
|
+
|
543
|
+
// callback before hide animation, return false to prevent hide
|
544
|
+
onHide : function() {},
|
545
|
+
|
546
|
+
// callback after hide animation
|
547
|
+
onHidden : function() {}
|
482
548
|
|
483
549
|
};
|
484
550
|
|
@@ -434,11 +434,11 @@ $.fn.popup = function(parameters) {
|
|
434
434
|
module.set.visible();
|
435
435
|
$popup
|
436
436
|
.transition({
|
437
|
-
animation : settings.transition + ' in',
|
437
|
+
animation : (settings.transition.showMethod || settings.transition) + ' in',
|
438
438
|
queue : false,
|
439
439
|
debug : settings.debug,
|
440
440
|
verbose : settings.verbose,
|
441
|
-
duration : settings.duration,
|
441
|
+
duration : settings.transition.showDuration || settings.duration,
|
442
442
|
onComplete : function() {
|
443
443
|
module.bind.close();
|
444
444
|
callback.call($popup, element);
|
@@ -457,9 +457,9 @@ $.fn.popup = function(parameters) {
|
|
457
457
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
458
458
|
$popup
|
459
459
|
.transition({
|
460
|
-
animation : settings.transition + ' out',
|
460
|
+
animation : (settings.transition.hideMethod || settings.transition) + ' out',
|
461
461
|
queue : false,
|
462
|
-
duration : settings.duration,
|
462
|
+
duration : settings.transition.hideDuration || settings.duration,
|
463
463
|
debug : settings.debug,
|
464
464
|
verbose : settings.verbose,
|
465
465
|
onComplete : function() {
|
@@ -500,10 +500,14 @@ $.fn.progress = function(parameters) {
|
|
500
500
|
},
|
501
501
|
percent: function(percents) {
|
502
502
|
percents = module.helper.forceArray(percents).map(function(percent) {
|
503
|
-
|
503
|
+
percent = (typeof percent == 'string')
|
504
504
|
? +(percent.replace('%', ''))
|
505
505
|
: percent
|
506
506
|
;
|
507
|
+
return (settings.limitValues)
|
508
|
+
? Math.max(0, Math.min(100, percent))
|
509
|
+
: percent
|
510
|
+
;
|
507
511
|
});
|
508
512
|
var hasTotal = module.has.total();
|
509
513
|
var totalPercent = module.helper.sum(percents);
|
@@ -533,21 +537,15 @@ $.fn.progress = function(parameters) {
|
|
533
537
|
});
|
534
538
|
module.percent = roundedPercents;
|
535
539
|
if (hasTotal) {
|
536
|
-
module.value =
|
540
|
+
module.value = percents.map(function (percent) {
|
537
541
|
return (autoPrecision > 0)
|
538
542
|
? Math.round((percent / 100) * module.total * (10 * autoPrecision)) / (10 * autoPrecision)
|
539
543
|
: Math.round((percent / 100) * module.total * 10) / 10
|
540
544
|
;
|
541
545
|
});
|
542
|
-
if (settings.limitValues) {
|
543
|
-
module.value = module.value.map(function (value) {
|
544
|
-
return Math.max(0, Math.min(100, value));
|
545
|
-
});
|
546
|
-
}
|
547
546
|
}
|
548
547
|
module.set.barWidth(percents);
|
549
548
|
module.set.labelInterval();
|
550
|
-
module.set.labels();
|
551
549
|
}
|
552
550
|
settings.onChange.call(element, percents, module.value, module.total);
|
553
551
|
},
|
@@ -118,7 +118,7 @@ $.fn.search = function(parameters) {
|
|
118
118
|
.on(module.get.inputEvent() + eventNamespace, selector.prompt, module.event.input)
|
119
119
|
;
|
120
120
|
$prompt
|
121
|
-
.attr('autocomplete', 'off')
|
121
|
+
.attr('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off')
|
122
122
|
;
|
123
123
|
}
|
124
124
|
$module
|
@@ -227,9 +227,7 @@ $.fn.search = function(parameters) {
|
|
227
227
|
results = module.get.results(),
|
228
228
|
result = $result.data(metadata.result) || module.get.result(value, results)
|
229
229
|
;
|
230
|
-
|
231
|
-
module.set.value(value);
|
232
|
-
}
|
230
|
+
var oldValue = module.get.value();
|
233
231
|
if( $.isFunction(settings.onSelect) ) {
|
234
232
|
if(settings.onSelect.call(element, result, results) === false) {
|
235
233
|
module.debug('Custom onSelect callback cancelled default select action');
|
@@ -238,6 +236,9 @@ $.fn.search = function(parameters) {
|
|
238
236
|
}
|
239
237
|
}
|
240
238
|
module.hideResults();
|
239
|
+
if(value && module.get.value() === oldValue) {
|
240
|
+
module.set.value(value);
|
241
|
+
}
|
241
242
|
if(href) {
|
242
243
|
event.preventDefault();
|
243
244
|
module.verbose('Opening search link found in result', $link);
|
@@ -251,16 +252,16 @@ $.fn.search = function(parameters) {
|
|
251
252
|
}
|
252
253
|
}
|
253
254
|
},
|
254
|
-
ensureVisible: function
|
255
|
+
ensureVisible: function($el) {
|
255
256
|
var elTop, elBottom, resultsScrollTop, resultsHeight;
|
256
|
-
|
257
|
+
if($el.length === 0) {
|
258
|
+
return;
|
259
|
+
}
|
257
260
|
elTop = $el.position().top;
|
258
261
|
elBottom = elTop + $el.outerHeight(true);
|
259
262
|
|
260
263
|
resultsScrollTop = $results.scrollTop();
|
261
|
-
resultsHeight = $results.height()
|
262
|
-
parseInt($results.css('paddingTop'), 0) +
|
263
|
-
parseInt($results.css('paddingBottom'), 0);
|
264
|
+
resultsHeight = $results.height();
|
264
265
|
|
265
266
|
if (elTop < 0) {
|
266
267
|
$results.scrollTop(resultsScrollTop + elTop);
|
@@ -401,6 +402,9 @@ $.fn.search = function(parameters) {
|
|
401
402
|
animating: function() {
|
402
403
|
return $results.hasClass(className.animating);
|
403
404
|
},
|
405
|
+
chrome: function() {
|
406
|
+
return !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
|
407
|
+
},
|
404
408
|
hidden: function() {
|
405
409
|
return $results.hasClass(className.hidden);
|
406
410
|
},
|
@@ -976,9 +980,7 @@ $.fn.search = function(parameters) {
|
|
976
980
|
duration : settings.duration,
|
977
981
|
onShow : function() {
|
978
982
|
var $firstResult = $module.find(selector.result).eq(0);
|
979
|
-
|
980
|
-
module.ensureVisible($firstResult);
|
981
|
-
}
|
983
|
+
module.ensureVisible($firstResult);
|
982
984
|
},
|
983
985
|
onComplete : function() {
|
984
986
|
callback();
|
@@ -88,6 +88,7 @@ $.fn.slider = function(parameters) {
|
|
88
88
|
precision,
|
89
89
|
isTouch,
|
90
90
|
gapRatio = 1,
|
91
|
+
previousValue,
|
91
92
|
|
92
93
|
initialPosition,
|
93
94
|
initialLoad,
|
@@ -205,28 +206,26 @@ $.fn.slider = function(parameters) {
|
|
205
206
|
});
|
206
207
|
},
|
207
208
|
autoLabel: function() {
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
?
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
$labels.append($label);
|
229
|
-
}
|
209
|
+
$labels = $module.find('.labels');
|
210
|
+
if($labels.length != 0) {
|
211
|
+
$labels.empty();
|
212
|
+
}
|
213
|
+
else {
|
214
|
+
$labels = $module.append('<ul class="auto labels"></ul>').find('.labels');
|
215
|
+
}
|
216
|
+
for(var i = 0, len = module.get.numLabels(); i <= len; i++) {
|
217
|
+
var
|
218
|
+
labelText = module.get.label(i),
|
219
|
+
$label = (labelText !== "")
|
220
|
+
? !(i % module.get.gapRatio())
|
221
|
+
? $('<li class="label">' + labelText + '</li>')
|
222
|
+
: $('<li class="halftick label"></li>')
|
223
|
+
: null,
|
224
|
+
ratio = i / len
|
225
|
+
;
|
226
|
+
if($label) {
|
227
|
+
module.update.labelPosition(ratio, $label);
|
228
|
+
$labels.append($label);
|
230
229
|
}
|
231
230
|
}
|
232
231
|
}
|
@@ -331,7 +330,13 @@ $.fn.slider = function(parameters) {
|
|
331
330
|
} else {
|
332
331
|
$currThumb = module.determine.closestThumb(newPos);
|
333
332
|
}
|
333
|
+
if (previousValue === undefined) {
|
334
|
+
previousValue = module.get.currentThumbValue();
|
335
|
+
}
|
336
|
+
} else if (previousValue === undefined) {
|
337
|
+
previousValue = module.get.value();
|
334
338
|
}
|
339
|
+
|
335
340
|
if(!module.is.disabled()) {
|
336
341
|
module.bind.slidingEvents();
|
337
342
|
}
|
@@ -379,6 +384,9 @@ $.fn.slider = function(parameters) {
|
|
379
384
|
var value = module.determine.valueFromEvent(event);
|
380
385
|
module.set.value(value);
|
381
386
|
module.unbind.slidingEvents();
|
387
|
+
if (previousValue !== undefined) {
|
388
|
+
previousValue = undefined;
|
389
|
+
}
|
382
390
|
},
|
383
391
|
keydown: function(event, first) {
|
384
392
|
if(settings.preventCrossover && module.is.range() && module.thumbVal === module.secondThumbVal) {
|
@@ -577,7 +585,7 @@ $.fn.slider = function(parameters) {
|
|
577
585
|
return settings.step;
|
578
586
|
},
|
579
587
|
numLabels: function() {
|
580
|
-
var value = Math.round((module.get.max() - module.get.min()) / module.get.step());
|
588
|
+
var value = Math.round((module.get.max() - module.get.min()) / (module.get.step() === 0 ? 1 : module.get.step()));
|
581
589
|
module.debug('Determined that there should be ' + value + ' labels');
|
582
590
|
return value;
|
583
591
|
},
|
@@ -591,7 +599,7 @@ $.fn.slider = function(parameters) {
|
|
591
599
|
|
592
600
|
switch (settings.labelType) {
|
593
601
|
case settings.labelTypes.number:
|
594
|
-
return Math.round(((value * module.get.step()) + module.get.min()) * precision ) / precision;
|
602
|
+
return Math.round(((value * (module.get.step() === 0 ? 1 : module.get.step())) + module.get.min()) * precision ) / precision;
|
595
603
|
case settings.labelTypes.letter:
|
596
604
|
return alphabet[(value) % 26];
|
597
605
|
default:
|
@@ -853,20 +861,31 @@ $.fn.slider = function(parameters) {
|
|
853
861
|
},
|
854
862
|
|
855
863
|
set: {
|
856
|
-
value: function(newValue) {
|
864
|
+
value: function(newValue, fireChange) {
|
865
|
+
fireChange = fireChange !== false;
|
866
|
+
var toReset = previousValue === undefined;
|
867
|
+
previousValue = previousValue === undefined ? module.get.value() : previousValue;
|
857
868
|
module.update.value(newValue, function(value, thumbVal, secondThumbVal) {
|
858
|
-
if (!initialLoad || settings.fireOnInit){
|
859
|
-
|
869
|
+
if ((!initialLoad || settings.fireOnInit) && fireChange){
|
870
|
+
if (newValue !== previousValue) {
|
871
|
+
settings.onChange.call(element, value, thumbVal, secondThumbVal);
|
872
|
+
}
|
860
873
|
settings.onMove.call(element, value, thumbVal, secondThumbVal);
|
861
874
|
}
|
875
|
+
if (toReset) {
|
876
|
+
previousValue = undefined;
|
877
|
+
}
|
862
878
|
});
|
863
879
|
},
|
864
|
-
rangeValue: function(first, second) {
|
880
|
+
rangeValue: function(first, second, fireChange) {
|
881
|
+
fireChange = fireChange !== false;
|
865
882
|
if(module.is.range()) {
|
866
883
|
var
|
867
884
|
min = module.get.min(),
|
868
|
-
max = module.get.max()
|
885
|
+
max = module.get.max(),
|
886
|
+
toReset = previousValue === undefined
|
869
887
|
;
|
888
|
+
previousValue = previousValue === undefined ? module.get.value() : previousValue;
|
870
889
|
if (first <= min) {
|
871
890
|
first = min;
|
872
891
|
} else if(first >= max){
|
@@ -882,10 +901,15 @@ $.fn.slider = function(parameters) {
|
|
882
901
|
value = Math.abs(module.thumbVal - module.secondThumbVal);
|
883
902
|
module.update.position(module.thumbVal, $thumb);
|
884
903
|
module.update.position(module.secondThumbVal, $secondThumb);
|
885
|
-
if (!initialLoad || settings.fireOnInit) {
|
886
|
-
|
904
|
+
if ((!initialLoad || settings.fireOnInit) && fireChange) {
|
905
|
+
if (value !== previousValue) {
|
906
|
+
settings.onChange.call(element, value, module.thumbVal, module.secondThumbVal);
|
907
|
+
}
|
887
908
|
settings.onMove.call(element, value, module.thumbVal, module.secondThumbVal);
|
888
909
|
}
|
910
|
+
if (toReset) {
|
911
|
+
previousValue = undefined;
|
912
|
+
}
|
889
913
|
} else {
|
890
914
|
module.error(error.notrange);
|
891
915
|
}
|