foundation-rails 5.4.5.0 → 5.5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bower.json +2 -2
- data/foundation-rails.gemspec +1 -1
- data/lib/foundation/rails/generators/install_generator.rb +4 -4
- data/lib/foundation/rails/templates/application.html.erb +3 -2
- data/lib/foundation/rails/templates/application.html.haml +1 -1
- data/lib/foundation/rails/templates/application.html.slim +1 -1
- data/lib/foundation/rails/version.rb +1 -1
- data/vendor/assets/_settings.scss +25 -21
- data/vendor/assets/javascripts/foundation/foundation.abide.js +28 -23
- data/vendor/assets/javascripts/foundation/foundation.accordion.js +10 -8
- data/vendor/assets/javascripts/foundation/foundation.alert.js +4 -4
- data/vendor/assets/javascripts/foundation/foundation.clearing.js +3 -3
- data/vendor/assets/javascripts/foundation/foundation.dropdown.js +139 -22
- data/vendor/assets/javascripts/foundation/foundation.equalizer.js +1 -2
- data/vendor/assets/javascripts/foundation/foundation.interchange.js +14 -10
- data/vendor/assets/javascripts/foundation/foundation.joyride.js +18 -9
- data/vendor/assets/javascripts/foundation/foundation.js +86 -21
- data/vendor/assets/javascripts/foundation/foundation.magellan.js +15 -6
- data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +14 -14
- data/vendor/assets/javascripts/foundation/foundation.orbit.js +3 -3
- data/vendor/assets/javascripts/foundation/foundation.reveal.js +16 -11
- data/vendor/assets/javascripts/foundation/foundation.slider.js +56 -28
- data/vendor/assets/javascripts/foundation/foundation.tab.js +9 -9
- data/vendor/assets/javascripts/foundation/foundation.tooltip.js +1 -1
- data/vendor/assets/javascripts/foundation/foundation.topbar.js +5 -5
- data/vendor/assets/stylesheets/foundation/_functions.scss +57 -12
- data/vendor/assets/stylesheets/foundation/_settings.scss +25 -21
- data/vendor/assets/stylesheets/foundation/components/_accordion.scss +1 -1
- data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +2 -0
- data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +1 -2
- data/vendor/assets/stylesheets/foundation/components/_buttons.scss +4 -5
- data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +11 -10
- data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +1 -0
- data/vendor/assets/stylesheets/foundation/components/_forms.scss +31 -32
- data/vendor/assets/stylesheets/foundation/components/_global.scss +53 -25
- data/vendor/assets/stylesheets/foundation/components/_grid.scss +18 -4
- data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +51 -15
- data/vendor/assets/stylesheets/foundation/components/_labels.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +8 -6
- data/vendor/assets/stylesheets/foundation/components/_orbit.scss +11 -11
- data/vendor/assets/stylesheets/foundation/components/_panels.scss +6 -0
- data/vendor/assets/stylesheets/foundation/components/_reveal.scss +6 -3
- data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +1 -3
- data/vendor/assets/stylesheets/foundation/components/_switches.scss +25 -13
- data/vendor/assets/stylesheets/foundation/components/_tabs.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_toolbar.scss +3 -3
- data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +64 -53
- data/vendor/assets/stylesheets/foundation/components/_visibility.scss +7 -7
- data/vendor/assets/stylesheets/normalize.scss +5 -3
- metadata +8 -8
@@ -22,9 +22,13 @@
|
|
22
22
|
|
23
23
|
header_helpers([
|
24
24
|
'foundation-mq-small',
|
25
|
+
'foundation-mq-small-only',
|
25
26
|
'foundation-mq-medium',
|
27
|
+
'foundation-mq-medium-only',
|
26
28
|
'foundation-mq-large',
|
29
|
+
'foundation-mq-large-only',
|
27
30
|
'foundation-mq-xlarge',
|
31
|
+
'foundation-mq-xlarge-only',
|
28
32
|
'foundation-mq-xxlarge',
|
29
33
|
'foundation-data-attribute-namespace']);
|
30
34
|
|
@@ -98,7 +102,6 @@
|
|
98
102
|
var self = this,
|
99
103
|
should_bind_events = !S(this).data(this.attr_name(true));
|
100
104
|
|
101
|
-
|
102
105
|
if (S(this.scope).is('[' + this.attr_name() +']')) {
|
103
106
|
S(this.scope).data(this.attr_name(true) + '-init', $.extend({}, this.settings, (options || method), this.data_options(S(this.scope))));
|
104
107
|
|
@@ -158,23 +161,23 @@
|
|
158
161
|
|
159
162
|
window.matchMedia = window.matchMedia || (function( doc ) {
|
160
163
|
|
161
|
-
|
164
|
+
'use strict';
|
162
165
|
|
163
166
|
var bool,
|
164
167
|
docElem = doc.documentElement,
|
165
168
|
refNode = docElem.firstElementChild || docElem.firstChild,
|
166
169
|
// fakeBody required for <FF4 when executed in <head>
|
167
|
-
fakeBody = doc.createElement(
|
168
|
-
div = doc.createElement(
|
170
|
+
fakeBody = doc.createElement( 'body' ),
|
171
|
+
div = doc.createElement( 'div' );
|
169
172
|
|
170
|
-
div.id =
|
171
|
-
div.style.cssText =
|
172
|
-
fakeBody.style.background =
|
173
|
+
div.id = 'mq-test-1';
|
174
|
+
div.style.cssText = 'position:absolute;top:-100em';
|
175
|
+
fakeBody.style.background = 'none';
|
173
176
|
fakeBody.appendChild(div);
|
174
177
|
|
175
178
|
return function (q) {
|
176
179
|
|
177
|
-
div.innerHTML =
|
180
|
+
div.innerHTML = '­<style media="' + q + '"> #mq-test-1 { width: 42px; }</style>';
|
178
181
|
|
179
182
|
docElem.insertBefore( fakeBody, refNode );
|
180
183
|
bool = div.offsetWidth === 42;
|
@@ -213,10 +216,10 @@
|
|
213
216
|
jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
|
214
217
|
|
215
218
|
for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
|
216
|
-
requestAnimationFrame = window[ vendors[lastTime] +
|
219
|
+
requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
|
217
220
|
cancelAnimationFrame = cancelAnimationFrame ||
|
218
|
-
window[ vendors[lastTime] +
|
219
|
-
window[ vendors[lastTime] +
|
221
|
+
window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
|
222
|
+
window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
|
220
223
|
}
|
221
224
|
|
222
225
|
function raf() {
|
@@ -278,14 +281,18 @@
|
|
278
281
|
window.Foundation = {
|
279
282
|
name : 'Foundation',
|
280
283
|
|
281
|
-
version : '5.
|
284
|
+
version : '5.5.0',
|
282
285
|
|
283
286
|
media_queries : {
|
284
|
-
small
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
287
|
+
'small' : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
288
|
+
'small-only' : S('.foundation-mq-small-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
289
|
+
'medium' : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
290
|
+
'medium-only' : S('.foundation-mq-medium-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
291
|
+
'large' : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
292
|
+
'large-only' : S('.foundation-mq-large-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
293
|
+
'xlarge' : S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
294
|
+
'xlarge-only' : S('.foundation-mq-xlarge-only').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
|
295
|
+
'xxlarge' : S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '')
|
289
296
|
},
|
290
297
|
|
291
298
|
stylesheet : $('<style></style>').appendTo('head')[0].sheet,
|
@@ -337,15 +344,15 @@
|
|
337
344
|
|
338
345
|
if (args && args.hasOwnProperty(lib)) {
|
339
346
|
if (typeof this.libs[lib].settings !== 'undefined') {
|
340
|
-
|
347
|
+
$.extend(true, this.libs[lib].settings, args[lib]);
|
341
348
|
}
|
342
349
|
else if (typeof this.libs[lib].defaults !== 'undefined') {
|
343
|
-
|
350
|
+
$.extend(true, this.libs[lib].defaults, args[lib]);
|
344
351
|
}
|
345
352
|
return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
|
346
353
|
}
|
347
354
|
|
348
|
-
args = args instanceof Array ? args : new Array(args);
|
355
|
+
args = args instanceof Array ? args : new Array(args);
|
349
356
|
return this.libs[lib].init.apply(this.libs[lib], args);
|
350
357
|
}
|
351
358
|
|
@@ -504,7 +511,7 @@
|
|
504
511
|
ii = opts_arr.length;
|
505
512
|
|
506
513
|
function isNumber (o) {
|
507
|
-
return ! isNaN (o-0) && o !== null && o !==
|
514
|
+
return ! isNaN (o-0) && o !== null && o !== '' && o !== false && o !== true;
|
508
515
|
}
|
509
516
|
|
510
517
|
function trim (str) {
|
@@ -609,6 +616,64 @@
|
|
609
616
|
this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
|
610
617
|
|
611
618
|
return this.prefix + (this.fidx++).toString(36);
|
619
|
+
},
|
620
|
+
|
621
|
+
// Description:
|
622
|
+
// Helper for window.matchMedia
|
623
|
+
//
|
624
|
+
// Arguments:
|
625
|
+
// mq (String): Media query
|
626
|
+
//
|
627
|
+
// Returns:
|
628
|
+
// (Boolean): Whether the media query passes or not
|
629
|
+
match : function (mq) {
|
630
|
+
return window.matchMedia(mq).matches;
|
631
|
+
},
|
632
|
+
|
633
|
+
// Description:
|
634
|
+
// Helpers for checking Foundation default media queries with JS
|
635
|
+
//
|
636
|
+
// Returns:
|
637
|
+
// (Boolean): Whether the media query passes or not
|
638
|
+
|
639
|
+
is_small_up : function () {
|
640
|
+
return this.match(Foundation.media_queries.small);
|
641
|
+
},
|
642
|
+
|
643
|
+
is_medium_up : function () {
|
644
|
+
return this.match(Foundation.media_queries.medium);
|
645
|
+
},
|
646
|
+
|
647
|
+
is_large_up : function () {
|
648
|
+
return this.match(Foundation.media_queries.large);
|
649
|
+
},
|
650
|
+
|
651
|
+
is_xlarge_up : function () {
|
652
|
+
return this.match(Foundation.media_queries.xlarge);
|
653
|
+
},
|
654
|
+
|
655
|
+
is_xxlarge_up : function () {
|
656
|
+
return this.match(Foundation.media_queries.xxlarge);
|
657
|
+
},
|
658
|
+
|
659
|
+
is_small_only : function () {
|
660
|
+
return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
|
661
|
+
},
|
662
|
+
|
663
|
+
is_medium_only : function () {
|
664
|
+
return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
|
665
|
+
},
|
666
|
+
|
667
|
+
is_large_only : function () {
|
668
|
+
return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
|
669
|
+
},
|
670
|
+
|
671
|
+
is_xlarge_only : function () {
|
672
|
+
return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
|
673
|
+
},
|
674
|
+
|
675
|
+
is_xxlarge_only : function () {
|
676
|
+
return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
|
612
677
|
}
|
613
678
|
}
|
614
679
|
};
|
@@ -4,14 +4,17 @@
|
|
4
4
|
Foundation.libs['magellan-expedition'] = {
|
5
5
|
name : 'magellan-expedition',
|
6
6
|
|
7
|
-
version : '5.
|
7
|
+
version : '5.5.0',
|
8
8
|
|
9
9
|
settings : {
|
10
10
|
active_class: 'active',
|
11
11
|
threshold: 0, // pixels from the top of the expedition for it to become fixes
|
12
12
|
destination_threshold: 20, // pixels from the top of destination for it to be considered active
|
13
13
|
throttle_delay: 30, // calculation throttling to increase framerate
|
14
|
-
fixed_top: 0 // top distance in pixels assigend to the fixed element on scroll
|
14
|
+
fixed_top: 0, // top distance in pixels assigend to the fixed element on scroll
|
15
|
+
offset_by_height: true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
|
16
|
+
duration: 700, // animation duration time
|
17
|
+
easing: 'swing' // animation easing
|
15
18
|
},
|
16
19
|
|
17
20
|
init : function (scope, method, options) {
|
@@ -34,7 +37,7 @@
|
|
34
37
|
var expedition = $(this).closest('[' + self.attr_name() + ']'),
|
35
38
|
settings = expedition.data('magellan-expedition-init'),
|
36
39
|
hash = this.hash.split('#').join(''),
|
37
|
-
target = $(
|
40
|
+
target = $('a[name="'+hash+'"]');
|
38
41
|
|
39
42
|
if (target.length === 0) {
|
40
43
|
target = $('#'+hash);
|
@@ -44,11 +47,13 @@
|
|
44
47
|
|
45
48
|
// Account for expedition height if fixed position
|
46
49
|
var scroll_top = target.offset().top - settings.destination_threshold + 1;
|
47
|
-
|
50
|
+
if (settings.offset_by_height) {
|
51
|
+
scroll_top = scroll_top - expedition.outerHeight();
|
52
|
+
}
|
48
53
|
|
49
54
|
$('html, body').stop().animate({
|
50
55
|
'scrollTop': scroll_top
|
51
|
-
},
|
56
|
+
}, settings.duration, settings.easing, function () {
|
52
57
|
if(history.pushState) {
|
53
58
|
history.pushState(null, null, '#'+hash);
|
54
59
|
}
|
@@ -152,7 +157,11 @@
|
|
152
157
|
var name = $(this).data(self.data_attr('magellan-arrival')),
|
153
158
|
dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
|
154
159
|
if (dest.length > 0) {
|
155
|
-
var top_offset =
|
160
|
+
var top_offset = dest.offset().top - settings.destination_threshold;
|
161
|
+
if (settings.offset_by_height) {
|
162
|
+
top_offset = top_offset - expedition.outerHeight();
|
163
|
+
}
|
164
|
+
top_offset = Math.floor(top_offset);
|
156
165
|
return {
|
157
166
|
destination : dest,
|
158
167
|
arrival : $(this),
|
@@ -4,7 +4,7 @@
|
|
4
4
|
Foundation.libs.offcanvas = {
|
5
5
|
name : 'offcanvas',
|
6
6
|
|
7
|
-
version : '5.
|
7
|
+
version : '5.5.0',
|
8
8
|
|
9
9
|
settings : {
|
10
10
|
open_method: 'move',
|
@@ -38,7 +38,7 @@
|
|
38
38
|
.on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
|
39
39
|
self.click_toggle_class(e, move_class + right_postfix);
|
40
40
|
if (self.settings.open_method !== 'overlap'){
|
41
|
-
S(
|
41
|
+
S('.left-submenu').removeClass(move_class + right_postfix);
|
42
42
|
}
|
43
43
|
$('.left-off-canvas-toggle').attr('aria-expanded', 'true');
|
44
44
|
})
|
@@ -46,13 +46,13 @@
|
|
46
46
|
var settings = self.get_settings(e);
|
47
47
|
var parent = S(this).parent();
|
48
48
|
|
49
|
-
if(settings.close_on_click && !parent.hasClass(
|
49
|
+
if(settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')){
|
50
50
|
self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
|
51
51
|
parent.parent().removeClass(move_class + right_postfix);
|
52
|
-
}else if(S(this).parent().hasClass(
|
52
|
+
}else if(S(this).parent().hasClass('has-submenu')){
|
53
53
|
e.preventDefault();
|
54
|
-
S(this).siblings(
|
55
|
-
}else if(parent.hasClass(
|
54
|
+
S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
|
55
|
+
}else if(parent.hasClass('back')){
|
56
56
|
e.preventDefault();
|
57
57
|
parent.parent().removeClass(move_class + right_postfix);
|
58
58
|
}
|
@@ -61,7 +61,7 @@
|
|
61
61
|
.on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
|
62
62
|
self.click_toggle_class(e, move_class + left_postfix);
|
63
63
|
if (self.settings.open_method !== 'overlap'){
|
64
|
-
S(
|
64
|
+
S('.right-submenu').removeClass(move_class + left_postfix);
|
65
65
|
}
|
66
66
|
$('.right-off-canvas-toggle').attr('aria-expanded', 'true');
|
67
67
|
})
|
@@ -69,13 +69,13 @@
|
|
69
69
|
var settings = self.get_settings(e);
|
70
70
|
var parent = S(this).parent();
|
71
71
|
|
72
|
-
if(settings.close_on_click && !parent.hasClass(
|
72
|
+
if(settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')){
|
73
73
|
self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
|
74
74
|
parent.parent().removeClass(move_class + left_postfix);
|
75
|
-
}else if(S(this).parent().hasClass(
|
75
|
+
}else if(S(this).parent().hasClass('has-submenu')){
|
76
76
|
e.preventDefault();
|
77
|
-
S(this).siblings(
|
78
|
-
}else if(parent.hasClass(
|
77
|
+
S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
|
78
|
+
}else if(parent.hasClass('back')){
|
79
79
|
e.preventDefault();
|
80
80
|
parent.parent().removeClass(move_class + left_postfix);
|
81
81
|
}
|
@@ -83,10 +83,10 @@
|
|
83
83
|
})
|
84
84
|
.on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
|
85
85
|
self.click_remove_class(e, move_class + left_postfix);
|
86
|
-
S(
|
86
|
+
S('.right-submenu').removeClass(move_class + left_postfix);
|
87
87
|
if (right_postfix){
|
88
88
|
self.click_remove_class(e, move_class + right_postfix);
|
89
|
-
S(
|
89
|
+
S('.left-submenu').removeClass(move_class + left_postfix);
|
90
90
|
}
|
91
91
|
$('.right-off-canvas-toggle').attr('aria-expanded', 'true');
|
92
92
|
})
|
@@ -95,7 +95,7 @@
|
|
95
95
|
$('.left-off-canvas-toggle').attr('aria-expanded', 'false');
|
96
96
|
if (right_postfix) {
|
97
97
|
self.click_remove_class(e, move_class + right_postfix);
|
98
|
-
$('.right-off-canvas-toggle').attr('aria-expanded',
|
98
|
+
$('.right-off-canvas-toggle').attr('aria-expanded', 'false');
|
99
99
|
}
|
100
100
|
});
|
101
101
|
},
|
@@ -158,7 +158,7 @@
|
|
158
158
|
self.link_custom = function(e) {
|
159
159
|
e.preventDefault();
|
160
160
|
var link = $(this).attr('data-orbit-link');
|
161
|
-
if ((typeof link === 'string') && (link = $.trim(link)) !=
|
161
|
+
if ((typeof link === 'string') && (link = $.trim(link)) != '') {
|
162
162
|
var slide = container.find('[data-orbit-slide='+link+']');
|
163
163
|
if (slide.index() != -1) {self._goto(slide.index());}
|
164
164
|
}
|
@@ -166,7 +166,7 @@
|
|
166
166
|
|
167
167
|
self.link_bullet = function(e) {
|
168
168
|
var index = $(this).attr('data-orbit-slide');
|
169
|
-
if ((typeof index === 'string') && (index = $.trim(index)) !=
|
169
|
+
if ((typeof index === 'string') && (index = $.trim(index)) != '') {
|
170
170
|
if(isNaN(parseInt(index)))
|
171
171
|
{
|
172
172
|
var slide = container.find('[data-orbit-slide='+index+']');
|
@@ -402,7 +402,7 @@
|
|
402
402
|
Foundation.libs.orbit = {
|
403
403
|
name: 'orbit',
|
404
404
|
|
405
|
-
version: '5.
|
405
|
+
version: '5.5.0',
|
406
406
|
|
407
407
|
settings: {
|
408
408
|
animation: 'slide',
|
@@ -4,7 +4,7 @@
|
|
4
4
|
Foundation.libs.reveal = {
|
5
5
|
name : 'reveal',
|
6
6
|
|
7
|
-
version : '5.
|
7
|
+
version : '5.5.0',
|
8
8
|
|
9
9
|
locked : false,
|
10
10
|
|
@@ -15,6 +15,7 @@
|
|
15
15
|
close_on_esc: true,
|
16
16
|
dismiss_modal_class: 'close-reveal-modal',
|
17
17
|
bg_class: 'reveal-modal-bg',
|
18
|
+
bg_root_element: 'body',
|
18
19
|
root_element: 'body',
|
19
20
|
open: function(){},
|
20
21
|
opened: function(){},
|
@@ -71,7 +72,7 @@
|
|
71
72
|
e.preventDefault();
|
72
73
|
|
73
74
|
if (!self.locked) {
|
74
|
-
var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init'),
|
75
|
+
var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
|
75
76
|
bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
|
76
77
|
|
77
78
|
if (bg_clicked) {
|
@@ -193,7 +194,8 @@
|
|
193
194
|
$.extend(ajax_settings, {
|
194
195
|
success: function (data, textStatus, jqXHR) {
|
195
196
|
if ( $.isFunction(old_success) ) {
|
196
|
-
old_success(data, textStatus, jqXHR);
|
197
|
+
var result = old_success(data, textStatus, jqXHR);
|
198
|
+
if (typeof result == 'string') data = result;
|
197
199
|
}
|
198
200
|
|
199
201
|
modal.html(data);
|
@@ -237,10 +239,13 @@
|
|
237
239
|
return base;
|
238
240
|
},
|
239
241
|
|
240
|
-
toggle_bg : function (modal, state) {
|
242
|
+
toggle_bg : function (el, modal, state) {
|
243
|
+
var settings = el.data(this.attr_name(true) + '-init') || this.settings,
|
244
|
+
bg_root_element = settings.bg_root_element; // Adding option to specify the background root element fixes scrolling issue
|
245
|
+
|
241
246
|
if (this.S('.' + this.settings.bg_class).length === 0) {
|
242
247
|
this.settings.bg = $('<div />', {'class': this.settings.bg_class})
|
243
|
-
.appendTo(
|
248
|
+
.appendTo(bg_root_element).hide();
|
244
249
|
}
|
245
250
|
|
246
251
|
var visible = this.settings.bg.filter(':visible').length > 0;
|
@@ -275,9 +280,9 @@
|
|
275
280
|
this.locked = false;
|
276
281
|
}
|
277
282
|
if (animData.pop) {
|
278
|
-
css.top = $(
|
283
|
+
css.top = $(root_element).scrollTop() - el.data('offset') + 'px'; //adding root_element instead of window for scrolling offset if modal trigger is below the fold
|
279
284
|
var end_css = {
|
280
|
-
top: $(
|
285
|
+
top: $(root_element).scrollTop() + el.data('css-top') + 'px', //adding root_element instead of window for scrolling offset if modal trigger is below the fold
|
281
286
|
opacity: 1
|
282
287
|
};
|
283
288
|
|
@@ -293,7 +298,7 @@
|
|
293
298
|
}
|
294
299
|
|
295
300
|
if (animData.fade) {
|
296
|
-
css.top = $(
|
301
|
+
css.top = $(root_element).scrollTop() + el.data('css-top') + 'px'; //adding root_element instead of window for scrolling offset if modal trigger is below the fold
|
297
302
|
var end_css = {opacity: 1};
|
298
303
|
|
299
304
|
return setTimeout(function () {
|
@@ -325,8 +330,8 @@
|
|
325
330
|
hide : function (el, css) {
|
326
331
|
// is modal
|
327
332
|
if (css) {
|
328
|
-
var settings = el.data(this.attr_name(true) + '-init')
|
329
|
-
|
333
|
+
var settings = el.data(this.attr_name(true) + '-init') || this.settings,
|
334
|
+
root_element = settings.root_element;
|
330
335
|
|
331
336
|
var animData = getAnimationData(settings.animation);
|
332
337
|
if (!animData.animate) {
|
@@ -334,7 +339,7 @@
|
|
334
339
|
}
|
335
340
|
if (animData.pop) {
|
336
341
|
var end_css = {
|
337
|
-
top: - $(
|
342
|
+
top: - $(root_element).scrollTop() - el.data('offset') + 'px', //adding root_element instead of window for scrolling offset if modal trigger is below the fold
|
338
343
|
opacity: 0
|
339
344
|
};
|
340
345
|
|
@@ -4,15 +4,17 @@
|
|
4
4
|
Foundation.libs.slider = {
|
5
5
|
name : 'slider',
|
6
6
|
|
7
|
-
version : '5.
|
7
|
+
version : '5.5.0',
|
8
8
|
|
9
9
|
settings: {
|
10
10
|
start: 0,
|
11
11
|
end: 100,
|
12
12
|
step: 1,
|
13
|
+
precision: null,
|
13
14
|
initial: null,
|
14
15
|
display_selector: '',
|
15
16
|
vertical: false,
|
17
|
+
trigger_input_change: false,
|
16
18
|
on_change: function(){}
|
17
19
|
},
|
18
20
|
|
@@ -44,16 +46,9 @@
|
|
44
46
|
if (!e.pageY) {
|
45
47
|
scroll_offset = window.scrollY;
|
46
48
|
}
|
47
|
-
self.calculate_position(self.cache.active, (e
|
48
|
-
e.originalEvent.clientY ||
|
49
|
-
e.originalEvent.touches[0].clientY ||
|
50
|
-
e.currentPoint.y)
|
51
|
-
+ scroll_offset);
|
49
|
+
self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
|
52
50
|
} else {
|
53
|
-
self.calculate_position(self.cache.active, e
|
54
|
-
e.originalEvent.clientX ||
|
55
|
-
e.originalEvent.touches[0].clientX ||
|
56
|
-
e.currentPoint.x);
|
51
|
+
self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
|
57
52
|
}
|
58
53
|
}
|
59
54
|
})
|
@@ -70,6 +65,26 @@
|
|
70
65
|
}, 300));
|
71
66
|
},
|
72
67
|
|
68
|
+
get_cursor_position : function(e, xy) {
|
69
|
+
var pageXY = 'page' + xy.toUpperCase(),
|
70
|
+
clientXY = 'client' + xy.toUpperCase(),
|
71
|
+
position;
|
72
|
+
|
73
|
+
if (typeof e[pageXY] !== 'undefined') {
|
74
|
+
position = e[pageXY];
|
75
|
+
}
|
76
|
+
else if (typeof e.originalEvent[clientXY] !== 'undefined') {
|
77
|
+
position = e.originalEvent[clientXY];
|
78
|
+
}
|
79
|
+
else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
|
80
|
+
position = e.originalEvent.touches[0][clientXY];
|
81
|
+
}
|
82
|
+
else if(e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
|
83
|
+
position = e.currentPoint[xy];
|
84
|
+
}
|
85
|
+
return position;
|
86
|
+
},
|
87
|
+
|
73
88
|
set_active_slider : function($handle) {
|
74
89
|
this.cache.active = $handle;
|
75
90
|
},
|
@@ -97,7 +112,7 @@
|
|
97
112
|
|
98
113
|
pct = settings.vertical ? 1-pct : pct;
|
99
114
|
|
100
|
-
var norm = self.normalized_value(pct, settings.start, settings.end, settings.step);
|
115
|
+
var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
|
101
116
|
|
102
117
|
self.set_ui($handle, norm);
|
103
118
|
});
|
@@ -109,7 +124,9 @@
|
|
109
124
|
bar_l = $.data($handle[0], 'bar_l'),
|
110
125
|
norm_pct = this.normalized_percentage(value, settings.start, settings.end),
|
111
126
|
handle_offset = norm_pct*(bar_l-handle_l)-1,
|
112
|
-
progress_bar_length = norm_pct*100
|
127
|
+
progress_bar_length = norm_pct*100,
|
128
|
+
$handle_parent = $handle.parent(),
|
129
|
+
$hidden_inputs = $handle.parent().children('input[type=hidden]');
|
113
130
|
|
114
131
|
if (Foundation.rtl && !settings.vertical) {
|
115
132
|
handle_offset = -handle_offset;
|
@@ -124,27 +141,30 @@
|
|
124
141
|
$handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
|
125
142
|
}
|
126
143
|
|
127
|
-
$
|
144
|
+
$handle_parent.attr(this.attr_name(), value).trigger('change').trigger('change.fndtn.slider');
|
128
145
|
|
129
|
-
$
|
146
|
+
$hidden_inputs.val(value);
|
147
|
+
if (settings.trigger_input_change) {
|
148
|
+
$hidden_inputs.trigger('change');
|
149
|
+
}
|
130
150
|
|
131
151
|
if (!$handle[0].hasAttribute('aria-valuemin')) {
|
132
152
|
$handle.attr({
|
133
153
|
'aria-valuemin': settings.start,
|
134
|
-
'aria-valuemax': settings.end
|
154
|
+
'aria-valuemax': settings.end
|
135
155
|
});
|
136
156
|
}
|
137
157
|
$handle.attr('aria-valuenow', value);
|
138
158
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
159
|
+
if (settings.display_selector != '') {
|
160
|
+
$(settings.display_selector).each(function(){
|
161
|
+
if (this.hasOwnProperty('value')) {
|
162
|
+
$(this).val(value);
|
163
|
+
} else {
|
164
|
+
$(this).text(value);
|
165
|
+
}
|
166
|
+
});
|
167
|
+
}
|
148
168
|
|
149
169
|
},
|
150
170
|
|
@@ -152,13 +172,13 @@
|
|
152
172
|
return Math.min(1, (val - start)/(end - start));
|
153
173
|
},
|
154
174
|
|
155
|
-
normalized_value : function(val, start, end, step) {
|
175
|
+
normalized_value : function(val, start, end, step, precision) {
|
156
176
|
var range = end - start,
|
157
177
|
point = val*range,
|
158
178
|
mod = (point-(point%step)) / step,
|
159
179
|
rem = point % step,
|
160
180
|
round = ( rem >= step*0.5 ? step : 0);
|
161
|
-
return (mod*step + round) + start;
|
181
|
+
return ((mod*step + round) + start).toFixed(precision);
|
162
182
|
},
|
163
183
|
|
164
184
|
set_translate : function(ele, offset, vertical) {
|
@@ -183,8 +203,16 @@
|
|
183
203
|
return Math.min(Math.max(val, min), max);
|
184
204
|
},
|
185
205
|
|
206
|
+
|
207
|
+
|
186
208
|
initialize_settings : function(handle) {
|
187
|
-
var settings = $.extend({}, this.settings, this.data_options($(handle).parent()))
|
209
|
+
var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
|
210
|
+
decimal_places_match_result;
|
211
|
+
|
212
|
+
if (settings.precision === null) {
|
213
|
+
decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
|
214
|
+
settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
|
215
|
+
}
|
188
216
|
|
189
217
|
if (settings.vertical) {
|
190
218
|
$.data(handle, 'bar_o', $(handle).parent().offset().top);
|
@@ -204,7 +232,7 @@
|
|
204
232
|
|
205
233
|
set_initial_position : function($ele) {
|
206
234
|
var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
|
207
|
-
initial = (
|
235
|
+
initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end-settings.start)*0.5/settings.step)*settings.step+settings.start),
|
208
236
|
$handle = $ele.children('.range-slider-handle');
|
209
237
|
this.set_ui($handle, initial);
|
210
238
|
},
|