foundation-rails 5.4.5.0 → 5.5.0.0
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.
- 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
|
},
|