foundation-rails 5.0.3.1 → 5.1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +6 -2
- data/bower.json +7 -0
- data/lib/foundation/rails/version.rb +1 -1
- data/update-gem.sh +13 -0
- data/vendor/assets/javascripts/foundation.js +2 -1
- data/vendor/assets/javascripts/foundation/foundation.abide.js +67 -33
- data/vendor/assets/javascripts/foundation/foundation.accordion.js +19 -11
- data/vendor/assets/javascripts/foundation/foundation.alert.js +8 -5
- data/vendor/assets/javascripts/foundation/foundation.clearing.js +74 -52
- data/vendor/assets/javascripts/foundation/foundation.dropdown.js +52 -46
- data/vendor/assets/javascripts/foundation/foundation.equalizer.js +63 -0
- data/vendor/assets/javascripts/foundation/foundation.interchange.js +47 -26
- data/vendor/assets/javascripts/foundation/foundation.joyride.js +42 -36
- data/vendor/assets/javascripts/foundation/foundation.js +286 -118
- data/vendor/assets/javascripts/foundation/foundation.magellan.js +139 -98
- data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +8 -6
- data/vendor/assets/javascripts/foundation/foundation.orbit.js +29 -21
- data/vendor/assets/javascripts/foundation/foundation.reveal.js +58 -50
- data/vendor/assets/javascripts/foundation/foundation.tab.js +22 -10
- data/vendor/assets/javascripts/foundation/foundation.tooltip.js +38 -26
- data/vendor/assets/javascripts/foundation/foundation.topbar.js +79 -73
- data/vendor/assets/stylesheets/foundation/_functions.scss +37 -18
- data/vendor/assets/stylesheets/foundation/_settings.scss +115 -110
- data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +14 -9
- data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +1 -1
- data/vendor/assets/stylesheets/foundation/components/_clearing.scss +13 -1
- data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +1 -1
- data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +1 -1
- data/vendor/assets/stylesheets/foundation/components/_forms.scss +23 -29
- data/vendor/assets/stylesheets/foundation/components/_global.scss +23 -54
- data/vendor/assets/stylesheets/foundation/components/_grid.scss +38 -31
- data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_joyride.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_magellan.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +96 -96
- data/vendor/assets/stylesheets/foundation/components/_orbit.scss +3 -0
- data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +2 -2
- data/vendor/assets/stylesheets/foundation/components/_reveal.scss +8 -3
- data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +10 -5
- data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +6 -3
- data/vendor/assets/stylesheets/foundation/components/_tabs.scss +2 -0
- data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +11 -1
- data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +20 -7
- data/vendor/assets/stylesheets/foundation/components/_type.scss +82 -4
- data/vendor/assets/stylesheets/foundation/components/_visibility.scss +2 -2
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a91edad2d0aa9d012f21be4826ffe70ed4d60bd
|
4
|
+
data.tar.gz: e2b77d4c9a12372a84418407d85bd25684f50304
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3f515dfcdf6eef038ca6407c8fe018f81f6a9a460895e71fcfb09baaf14b40d7c152ae7fa5488062b8c5cb8fcc47053e29acd0c51a4d61168707b9f542e6409
|
7
|
+
data.tar.gz: d33b4cafc4efc36a99add35aba603d88c587998b6271ee73bc9bdb18be3fd4059467401b8f2014e0e1853c191e217dd9f8bb4653a48b3732f3833b74a1ba9a72
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Foundation::Rails
|
2
2
|
|
3
|
-
|
3
|
+
The easiest way to use Foundation in your Rails app.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,7 +18,11 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
After Foundation has been added to your `Gemfile` you can install it into your project by running:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
rails g foundation:install
|
25
|
+
```
|
22
26
|
|
23
27
|
## Contributing
|
24
28
|
|
data/bower.json
ADDED
data/update-gem.sh
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
|
3
|
+
bower install
|
4
|
+
rm -rf vendor/assets/javascripts/vendor
|
5
|
+
rm -rf vendor/assets/stylesheets
|
6
|
+
mkdir -p vendor/assets/javascripts/vendor
|
7
|
+
mkdir -p vendor/assets/stylesheets
|
8
|
+
cp bower_components/modernizr/modernizr.js vendor/assets/javascripts/vendor/.
|
9
|
+
cp -R bower_components/foundation/js/foundation/ vendor/assets/javascripts/foundation/
|
10
|
+
cp -R bower_components/foundation/scss/ vendor/assets/stylesheets/
|
11
|
+
cp bower_components/foundation/scss/foundation/_settings.scss vendor/assets/.
|
12
|
+
|
13
|
+
# echo "Now update version.rb"
|
@@ -4,16 +4,17 @@
|
|
4
4
|
Foundation.libs.abide = {
|
5
5
|
name : 'abide',
|
6
6
|
|
7
|
-
version : '5.0
|
7
|
+
version : '5.1.0',
|
8
8
|
|
9
9
|
settings : {
|
10
|
+
live_validate : true,
|
10
11
|
focus_on_invalid : true,
|
11
12
|
error_labels: true, // labels with a for="inputId" will recieve an `error` class
|
12
13
|
timeout : 1000,
|
13
14
|
patterns : {
|
14
|
-
alpha:
|
15
|
-
alpha_numeric :
|
16
|
-
integer:
|
15
|
+
alpha: /^[a-zA-Z]+$/,
|
16
|
+
alpha_numeric : /^[a-zA-Z0-9]+$/,
|
17
|
+
integer: /^\d+$/,
|
17
18
|
number: /-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?/,
|
18
19
|
|
19
20
|
// generic password: upper-case, lower-case, number/special character, and min 8 characters
|
@@ -52,14 +53,19 @@
|
|
52
53
|
|
53
54
|
events : function (scope) {
|
54
55
|
var self = this,
|
55
|
-
form =
|
56
|
-
settings = form.data('
|
56
|
+
form = self.S(scope).attr('novalidate', 'novalidate'),
|
57
|
+
settings = form.data(this.attr_name(true) + '-init');
|
58
|
+
|
59
|
+
this.invalid_attr = this.add_namespace('data-invalid');
|
57
60
|
|
58
61
|
form
|
59
62
|
.off('.abide')
|
60
63
|
.on('submit.fndtn.abide validate.fndtn.abide', function (e) {
|
61
|
-
var is_ajax = /ajax/i.test(
|
62
|
-
return self.validate(
|
64
|
+
var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
|
65
|
+
return self.validate(self.S(this).find('input, textarea, select').get(), e, is_ajax);
|
66
|
+
})
|
67
|
+
.on('reset', function() {
|
68
|
+
return self.reset($(this));
|
63
69
|
})
|
64
70
|
.find('input, textarea, select')
|
65
71
|
.off('.abide')
|
@@ -68,24 +74,33 @@
|
|
68
74
|
})
|
69
75
|
.on('keydown.fndtn.abide', function (e) {
|
70
76
|
var settings = $(this).closest('form').data('abide-init');
|
71
|
-
|
72
|
-
|
73
|
-
self.
|
74
|
-
|
77
|
+
if (settings.live_validate === true) {
|
78
|
+
clearTimeout(self.timer);
|
79
|
+
self.timer = setTimeout(function () {
|
80
|
+
self.validate([this], e);
|
81
|
+
}.bind(this), settings.timeout);
|
82
|
+
}
|
75
83
|
});
|
76
84
|
},
|
77
85
|
|
86
|
+
reset : function (form) {
|
87
|
+
form.removeAttr(this.invalid_attr);
|
88
|
+
$(this.invalid_attr, form).removeAttr(this.invalid_attr);
|
89
|
+
$('.error', form).not('small').removeClass('error');
|
90
|
+
},
|
91
|
+
|
78
92
|
validate : function (els, e, is_ajax) {
|
79
93
|
var validations = this.parse_patterns(els),
|
80
94
|
validation_count = validations.length,
|
81
|
-
form =
|
95
|
+
form = this.S(els[0]).closest('form'),
|
82
96
|
submit_event = /submit/.test(e.type);
|
83
97
|
|
98
|
+
// Has to count up to make sure the focus gets applied to the top error
|
84
99
|
for (var i=0; i < validation_count; i++) {
|
85
100
|
if (!validations[i] && (submit_event || is_ajax)) {
|
86
101
|
if (this.settings.focus_on_invalid) els[i].focus();
|
87
102
|
form.trigger('invalid');
|
88
|
-
|
103
|
+
this.S(els[i]).closest('form').attr(this.invalid_attr, '');
|
89
104
|
return false;
|
90
105
|
}
|
91
106
|
}
|
@@ -94,7 +109,7 @@
|
|
94
109
|
form.trigger('valid');
|
95
110
|
}
|
96
111
|
|
97
|
-
form.removeAttr(
|
112
|
+
form.removeAttr(this.invalid_attr);
|
98
113
|
|
99
114
|
if (is_ajax) return false;
|
100
115
|
|
@@ -102,10 +117,10 @@
|
|
102
117
|
},
|
103
118
|
|
104
119
|
parse_patterns : function (els) {
|
105
|
-
var
|
120
|
+
var i = els.length,
|
106
121
|
el_patterns = [];
|
107
122
|
|
108
|
-
|
123
|
+
while (i--) {
|
109
124
|
el_patterns.push(this.pattern(els[i]));
|
110
125
|
}
|
111
126
|
|
@@ -134,37 +149,51 @@
|
|
134
149
|
},
|
135
150
|
|
136
151
|
check_validation_and_apply_styles : function (el_patterns) {
|
137
|
-
var
|
152
|
+
var i = el_patterns.length,
|
138
153
|
validations = [];
|
139
154
|
|
140
|
-
|
155
|
+
while (i--) {
|
141
156
|
var el = el_patterns[i][0],
|
142
157
|
required = el_patterns[i][2],
|
143
158
|
value = el.value,
|
144
|
-
|
159
|
+
direct_parent = this.S(el).parent(),
|
160
|
+
is_equal = el.getAttribute(this.add_namespace('data-equalto')),
|
145
161
|
is_radio = el.type === "radio",
|
146
162
|
is_checkbox = el.type === "checkbox",
|
147
|
-
label =
|
163
|
+
label = this.S('label[for="' + el.getAttribute('id') + '"]'),
|
148
164
|
valid_length = (required) ? (el.value.length > 0) : true;
|
149
165
|
|
166
|
+
var parent;
|
167
|
+
|
168
|
+
if (!direct_parent.is('label')) {
|
169
|
+
parent = direct_parent;
|
170
|
+
} else {
|
171
|
+
parent = direct_parent.parent();
|
172
|
+
}
|
173
|
+
|
150
174
|
if (is_radio && required) {
|
151
175
|
validations.push(this.valid_radio(el, required));
|
152
176
|
} else if (is_checkbox && required) {
|
153
177
|
validations.push(this.valid_checkbox(el, required));
|
154
178
|
} else if (is_equal && required) {
|
155
|
-
validations.push(this.valid_equal(el, required));
|
179
|
+
validations.push(this.valid_equal(el, required, parent));
|
156
180
|
} else {
|
181
|
+
|
157
182
|
if (el_patterns[i][1].test(value) && valid_length ||
|
158
183
|
!required && el.value.length < 1) {
|
159
|
-
|
184
|
+
this.S(el).removeAttr(this.invalid_attr);
|
185
|
+
parent.removeClass('error');
|
160
186
|
if (label.length > 0 && this.settings.error_labels) label.removeClass('error');
|
161
187
|
|
162
188
|
validations.push(true);
|
189
|
+
$(el).triggerHandler('valid');
|
163
190
|
} else {
|
164
|
-
|
191
|
+
this.S(el).attr(this.invalid_attr, '');
|
192
|
+
parent.addClass('error');
|
165
193
|
if (label.length > 0 && this.settings.error_labels) label.addClass('error');
|
166
194
|
|
167
195
|
validations.push(false);
|
196
|
+
$(el).triggerHandler('invalid');
|
168
197
|
}
|
169
198
|
}
|
170
199
|
}
|
@@ -173,12 +202,13 @@
|
|
173
202
|
},
|
174
203
|
|
175
204
|
valid_checkbox : function(el, required) {
|
176
|
-
var el =
|
205
|
+
var el = this.S(el),
|
177
206
|
valid = (el.is(':checked') || !required);
|
207
|
+
|
178
208
|
if (valid) {
|
179
|
-
el.removeAttr(
|
209
|
+
el.removeAttr(this.invalid_attr).parent().removeClass('error');
|
180
210
|
} else {
|
181
|
-
el.attr(
|
211
|
+
el.attr(this.invalid_attr, '').parent().addClass('error');
|
182
212
|
}
|
183
213
|
|
184
214
|
return valid;
|
@@ -190,30 +220,34 @@
|
|
190
220
|
count = group.length,
|
191
221
|
valid = false;
|
192
222
|
|
223
|
+
// Has to count up to make sure the focus gets applied to the top error
|
193
224
|
for (var i=0; i < count; i++) {
|
194
225
|
if (group[i].checked) valid = true;
|
195
226
|
}
|
196
227
|
|
228
|
+
// Has to count up to make sure the focus gets applied to the top error
|
197
229
|
for (var i=0; i < count; i++) {
|
198
230
|
if (valid) {
|
199
|
-
|
231
|
+
this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass('error');
|
200
232
|
} else {
|
201
|
-
|
233
|
+
this.S(group[i]).attr(this.invalid_attr, '').parent().addClass('error');
|
202
234
|
}
|
203
235
|
}
|
204
236
|
|
205
237
|
return valid;
|
206
238
|
},
|
207
239
|
|
208
|
-
valid_equal: function(el, required) {
|
209
|
-
var from = document.getElementById(el.getAttribute('data-equalto')).value,
|
240
|
+
valid_equal: function(el, required, parent) {
|
241
|
+
var from = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
|
210
242
|
to = el.value,
|
211
243
|
valid = (from === to);
|
212
244
|
|
213
245
|
if (valid) {
|
214
|
-
|
246
|
+
this.S(el).removeAttr(this.invalid_attr);
|
247
|
+
parent.removeClass('error');
|
215
248
|
} else {
|
216
|
-
|
249
|
+
this.S(el).attr(this.invalid_attr, '');
|
250
|
+
parent.addClass('error');
|
217
251
|
}
|
218
252
|
|
219
253
|
return valid;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
Foundation.libs.accordion = {
|
5
5
|
name : 'accordion',
|
6
6
|
|
7
|
-
version : '5.0
|
7
|
+
version : '5.1.0',
|
8
8
|
|
9
9
|
settings : {
|
10
10
|
active_class: 'active',
|
@@ -12,25 +12,33 @@
|
|
12
12
|
},
|
13
13
|
|
14
14
|
init : function (scope, method, options) {
|
15
|
-
this.bindings(method, options);
|
15
|
+
this.bindings(method, options);
|
16
16
|
},
|
17
17
|
|
18
18
|
events : function () {
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
var self = this;
|
20
|
+
var S = this.S;
|
21
|
+
S(this.scope)
|
22
|
+
.off('.fndtn.accordion')
|
23
|
+
.on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a', function (e) {
|
24
|
+
var accordion = S(this).closest('[' + self.attr_name() + ']'),
|
25
|
+
target = S('#' + this.href.split('#')[1]),
|
26
|
+
siblings = S('dd > .content', accordion),
|
27
|
+
aunts = $('> dd', accordion),
|
28
|
+
settings = accordion.data(self.attr_name(true) + '-init'),
|
29
|
+
active_content = S('dd > .content.' + settings.active_class, accordion),
|
30
|
+
active_parent = S('dd.' + settings.active_class, accordion);
|
25
31
|
|
26
32
|
e.preventDefault();
|
27
33
|
|
28
|
-
if (
|
29
|
-
|
34
|
+
if (active_content[0] == target[0] && settings.toggleable) {
|
35
|
+
active_parent.toggleClass(settings.active_class, false);
|
36
|
+
return target.toggleClass(settings.active_class, false);
|
30
37
|
}
|
31
38
|
|
32
39
|
siblings.removeClass(settings.active_class);
|
33
|
-
|
40
|
+
aunts.removeClass(settings.active_class);
|
41
|
+
target.addClass(settings.active_class).parent().addClass(settings.active_class);
|
34
42
|
});
|
35
43
|
},
|
36
44
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
Foundation.libs.alert = {
|
5
5
|
name : 'alert',
|
6
6
|
|
7
|
-
version : '5.0
|
7
|
+
version : '5.1.0',
|
8
8
|
|
9
9
|
settings : {
|
10
10
|
animation: 'fadeOut',
|
@@ -17,13 +17,16 @@
|
|
17
17
|
},
|
18
18
|
|
19
19
|
events : function () {
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
var self = this,
|
21
|
+
S = this.S;
|
22
|
+
|
23
|
+
$(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] a.close', function (e) {
|
24
|
+
var alertBox = S(this).closest('[' + self.attr_name() + ']'),
|
25
|
+
settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
|
23
26
|
|
24
27
|
e.preventDefault();
|
25
28
|
alertBox[settings.animation](settings.speed, function () {
|
26
|
-
|
29
|
+
S(this).trigger('closed').remove();
|
27
30
|
settings.callback();
|
28
31
|
});
|
29
32
|
});
|
@@ -4,12 +4,12 @@
|
|
4
4
|
Foundation.libs.clearing = {
|
5
5
|
name : 'clearing',
|
6
6
|
|
7
|
-
version: '5.0
|
7
|
+
version: '5.1.0',
|
8
8
|
|
9
9
|
settings : {
|
10
10
|
templates : {
|
11
11
|
viewing : '<a href="#" class="clearing-close">×</a>' +
|
12
|
-
'<div class="visible-img" style="display: none"><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
|
12
|
+
'<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
|
13
13
|
'<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
|
14
14
|
'<a href="#" class="clearing-main-next"><span></span></a></div>'
|
15
15
|
},
|
@@ -18,6 +18,8 @@
|
|
18
18
|
// add 'div.clearing-blackout, div.visible-img' to close on background click
|
19
19
|
close_selectors : '.clearing-close',
|
20
20
|
|
21
|
+
touch_label : '← Swipe to Advance →',
|
22
|
+
|
21
23
|
// event initializers and locks
|
22
24
|
init : false,
|
23
25
|
locked : false
|
@@ -25,37 +27,38 @@
|
|
25
27
|
|
26
28
|
init : function (scope, method, options) {
|
27
29
|
var self = this;
|
28
|
-
Foundation.inherit(this, 'throttle
|
30
|
+
Foundation.inherit(this, 'throttle image_loaded');
|
29
31
|
|
30
32
|
this.bindings(method, options);
|
31
33
|
|
32
|
-
if (
|
33
|
-
this.assemble(
|
34
|
+
if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
|
35
|
+
this.assemble(self.S('li', this.scope));
|
34
36
|
} else {
|
35
|
-
|
36
|
-
self.assemble(
|
37
|
+
self.S('[' + this.attr_name() + ']', this.scope).each(function () {
|
38
|
+
self.assemble(self.S('li', this));
|
37
39
|
});
|
38
40
|
}
|
39
41
|
},
|
40
42
|
|
41
43
|
events : function (scope) {
|
42
|
-
var self = this
|
44
|
+
var self = this,
|
45
|
+
S = self.S;
|
43
46
|
|
44
|
-
|
47
|
+
S(this.scope)
|
45
48
|
.off('.clearing')
|
46
|
-
.on('click.fndtn.clearing', 'ul[
|
49
|
+
.on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li',
|
47
50
|
function (e, current, target) {
|
48
|
-
var current = current ||
|
51
|
+
var current = current || S(this),
|
49
52
|
target = target || current,
|
50
53
|
next = current.next('li'),
|
51
|
-
settings = current.closest('[
|
52
|
-
image =
|
54
|
+
settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
|
55
|
+
image = S(e.target);
|
53
56
|
|
54
57
|
e.preventDefault();
|
55
58
|
|
56
59
|
if (!settings) {
|
57
60
|
self.init();
|
58
|
-
settings = current.closest('[
|
61
|
+
settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
|
59
62
|
}
|
60
63
|
|
61
64
|
// if clearing is open and the current image is
|
@@ -64,7 +67,7 @@
|
|
64
67
|
current[0] === target[0] &&
|
65
68
|
next.length > 0 && self.is_open(current)) {
|
66
69
|
target = next;
|
67
|
-
image =
|
70
|
+
image = S('img', target);
|
68
71
|
}
|
69
72
|
|
70
73
|
// set current and target to the clicked li if not otherwise defined.
|
@@ -81,16 +84,17 @@
|
|
81
84
|
.on('keydown.fndtn.clearing',
|
82
85
|
function (e) { self.keydown(e) });
|
83
86
|
|
84
|
-
|
87
|
+
S(window).off('.clearing').on('resize.fndtn.clearing',
|
85
88
|
function () { self.resize() });
|
86
89
|
|
87
90
|
this.swipe_events(scope);
|
88
91
|
},
|
89
92
|
|
90
93
|
swipe_events : function (scope) {
|
91
|
-
var self = this
|
94
|
+
var self = this,
|
95
|
+
S = self.S;
|
92
96
|
|
93
|
-
|
97
|
+
S(this.scope)
|
94
98
|
.on('touchstart.fndtn.clearing', '.visible-img', function(e) {
|
95
99
|
if (!e.touches) { e = e.originalEvent; }
|
96
100
|
var data = {
|
@@ -101,7 +105,7 @@
|
|
101
105
|
is_scrolling: undefined
|
102
106
|
};
|
103
107
|
|
104
|
-
|
108
|
+
S(this).data('swipe-transition', data);
|
105
109
|
e.stopPropagation();
|
106
110
|
})
|
107
111
|
.on('touchmove.fndtn.clearing', '.visible-img', function(e) {
|
@@ -109,7 +113,7 @@
|
|
109
113
|
// Ignore pinch/zoom events
|
110
114
|
if(e.touches.length > 1 || e.scale && e.scale !== 1) return;
|
111
115
|
|
112
|
-
var data =
|
116
|
+
var data = S(this).data('swipe-transition');
|
113
117
|
|
114
118
|
if (typeof data === 'undefined') {
|
115
119
|
data = {};
|
@@ -129,7 +133,7 @@
|
|
129
133
|
}
|
130
134
|
})
|
131
135
|
.on('touchend.fndtn.clearing', '.visible-img', function(e) {
|
132
|
-
|
136
|
+
S(this).data('swipe-transition', {});
|
133
137
|
e.stopPropagation();
|
134
138
|
});
|
135
139
|
},
|
@@ -140,24 +144,31 @@
|
|
140
144
|
if ($el.parent().hasClass('carousel')) return;
|
141
145
|
$el.after('<div id="foundationClearingHolder"></div>');
|
142
146
|
|
143
|
-
var holder =
|
144
|
-
settings = $el.data('
|
147
|
+
var holder = this.S('#foundationClearingHolder'),
|
148
|
+
settings = $el.data(this.attr_name(true) + '-init'),
|
145
149
|
grid = $el.detach(),
|
146
150
|
data = {
|
147
151
|
grid: '<div class="carousel">' + grid[0].outerHTML + '</div>',
|
148
152
|
viewing: settings.templates.viewing
|
149
153
|
},
|
150
154
|
wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
|
151
|
-
data.grid + '</div></div>'
|
155
|
+
data.grid + '</div></div>',
|
156
|
+
touch_label = this.settings.touch_label;
|
157
|
+
|
158
|
+
if (Modernizr.touch) {
|
159
|
+
wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
|
160
|
+
}
|
152
161
|
|
153
|
-
|
162
|
+
holder.after(wrapper).remove();
|
154
163
|
},
|
155
164
|
|
156
165
|
open : function ($image, current, target) {
|
157
|
-
var
|
158
|
-
|
159
|
-
|
160
|
-
|
166
|
+
var self = this,
|
167
|
+
root = target.closest('.clearing-assembled'),
|
168
|
+
container = self.S('div', root).first(),
|
169
|
+
visible_image = self.S('.visible-img', container),
|
170
|
+
image = self.S('img', visible_image).not($image),
|
171
|
+
label = self.S('.clearing-touch-label', container);
|
161
172
|
|
162
173
|
if (!this.locked()) {
|
163
174
|
// set the image to the selected thumbnail
|
@@ -165,15 +176,15 @@
|
|
165
176
|
.attr('src', this.load($image))
|
166
177
|
.css('visibility', 'hidden');
|
167
178
|
|
168
|
-
this.
|
179
|
+
this.image_loaded(image, function () {
|
169
180
|
image.css('visibility', 'visible');
|
170
181
|
// toggle the gallery
|
171
182
|
root.addClass('clearing-blackout');
|
172
183
|
container.addClass('clearing-container');
|
173
184
|
visible_image.show();
|
174
185
|
this.fix_height(target)
|
175
|
-
.caption(
|
176
|
-
.
|
186
|
+
.caption(self.S('.clearing-caption', visible_image), $image)
|
187
|
+
.center_and_label(image,label)
|
177
188
|
.shift(current, target, function () {
|
178
189
|
target.siblings().removeClass('visible');
|
179
190
|
target.addClass('visible');
|
@@ -197,7 +208,7 @@
|
|
197
208
|
container = $('div', root).first();
|
198
209
|
visible_image = $('.visible-img', container);
|
199
210
|
this.settings.prev_index = 0;
|
200
|
-
$('ul[
|
211
|
+
$('ul[' + this.attr_name() + ']', root)
|
201
212
|
.attr('style', '').closest('.clearing-blackout')
|
202
213
|
.removeClass('clearing-blackout');
|
203
214
|
container.removeClass('clearing-container');
|
@@ -212,28 +223,29 @@
|
|
212
223
|
},
|
213
224
|
|
214
225
|
keydown : function (e) {
|
215
|
-
var clearing = $('ul[
|
226
|
+
var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout'),
|
216
227
|
NEXT_KEY = this.rtl ? 37 : 39,
|
217
228
|
PREV_KEY = this.rtl ? 39 : 37,
|
218
229
|
ESC_KEY = 27;
|
219
230
|
|
220
231
|
if (e.which === NEXT_KEY) this.go(clearing, 'next');
|
221
232
|
if (e.which === PREV_KEY) this.go(clearing, 'prev');
|
222
|
-
if (e.which === ESC_KEY)
|
233
|
+
if (e.which === ESC_KEY) this.S('a.clearing-close').trigger('click');
|
223
234
|
},
|
224
235
|
|
225
236
|
nav : function (e, direction) {
|
226
|
-
var clearing = $('ul[
|
237
|
+
var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
|
227
238
|
|
228
239
|
e.preventDefault();
|
229
240
|
this.go(clearing, direction);
|
230
241
|
},
|
231
242
|
|
232
243
|
resize : function () {
|
233
|
-
var image = $('img', '.clearing-blackout .visible-img')
|
244
|
+
var image = $('img', '.clearing-blackout .visible-img'),
|
245
|
+
label = $('.clearing-touch-label', '.clearing-blackout');
|
234
246
|
|
235
247
|
if (image.length) {
|
236
|
-
this.
|
248
|
+
this.center_and_label(image, label);
|
237
249
|
}
|
238
250
|
},
|
239
251
|
|
@@ -243,7 +255,7 @@
|
|
243
255
|
self = this;
|
244
256
|
|
245
257
|
lis.each(function () {
|
246
|
-
var li =
|
258
|
+
var li = self.S(this),
|
247
259
|
image = li.find('img');
|
248
260
|
|
249
261
|
if (li.height() > image.outerHeight()) {
|
@@ -262,28 +274,32 @@
|
|
262
274
|
.siblings('.visible-img');
|
263
275
|
|
264
276
|
if (target.next().length > 0) {
|
265
|
-
|
277
|
+
this.S('.clearing-main-next', visible_image)
|
266
278
|
.removeClass('disabled');
|
267
279
|
} else {
|
268
|
-
|
280
|
+
this.S('.clearing-main-next', visible_image)
|
269
281
|
.addClass('disabled');
|
270
282
|
}
|
271
283
|
|
272
284
|
if (target.prev().length > 0) {
|
273
|
-
|
285
|
+
this.S('.clearing-main-prev', visible_image)
|
274
286
|
.removeClass('disabled');
|
275
287
|
} else {
|
276
|
-
|
288
|
+
this.S('.clearing-main-prev', visible_image)
|
277
289
|
.addClass('disabled');
|
278
290
|
}
|
279
291
|
},
|
280
292
|
|
281
|
-
|
293
|
+
center_and_label : function (target, label) {
|
282
294
|
if (!this.rtl) {
|
283
295
|
target.css({
|
284
296
|
marginLeft : -(target.outerWidth() / 2),
|
285
297
|
marginTop : -(target.outerHeight() / 2)
|
286
298
|
});
|
299
|
+
label.css({
|
300
|
+
marginLeft : -(label.outerWidth() / 2),
|
301
|
+
marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
|
302
|
+
});
|
287
303
|
} else {
|
288
304
|
target.css({
|
289
305
|
marginRight : -(target.outerWidth() / 2),
|
@@ -291,6 +307,12 @@
|
|
291
307
|
left: 'auto',
|
292
308
|
right: '50%'
|
293
309
|
});
|
310
|
+
label.css({
|
311
|
+
marginRight : -(label.outerWidth() / 2),
|
312
|
+
marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
|
313
|
+
left: 'auto',
|
314
|
+
right: '50%'
|
315
|
+
});
|
294
316
|
}
|
295
317
|
return this;
|
296
318
|
},
|
@@ -319,12 +341,12 @@
|
|
319
341
|
img : function (img) {
|
320
342
|
if (img.length) {
|
321
343
|
var new_img = new Image(),
|
322
|
-
new_a =
|
344
|
+
new_a = this.S('a', img);
|
323
345
|
|
324
346
|
if (new_a.length) {
|
325
347
|
new_img.src = new_a.attr('href');
|
326
348
|
} else {
|
327
|
-
new_img.src =
|
349
|
+
new_img.src = this.S('img', img).attr('src');
|
328
350
|
}
|
329
351
|
}
|
330
352
|
return this;
|
@@ -350,11 +372,11 @@
|
|
350
372
|
// directional methods
|
351
373
|
|
352
374
|
go : function ($ul, direction) {
|
353
|
-
var current =
|
375
|
+
var current = this.S('.visible', $ul),
|
354
376
|
target = current[direction]();
|
355
377
|
|
356
378
|
if (target.length) {
|
357
|
-
|
379
|
+
this.S('img', target)
|
358
380
|
.trigger('click', [current, target]);
|
359
381
|
}
|
360
382
|
},
|
@@ -402,9 +424,9 @@
|
|
402
424
|
},
|
403
425
|
|
404
426
|
direction : function ($el, current, target) {
|
405
|
-
var lis =
|
427
|
+
var lis = this.S('li', $el),
|
406
428
|
li_width = lis.outerWidth() + (lis.outerWidth() / 4),
|
407
|
-
up_count = Math.floor(
|
429
|
+
up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
|
408
430
|
target_index = lis.index(target),
|
409
431
|
response;
|
410
432
|
|
@@ -451,8 +473,8 @@
|
|
451
473
|
},
|
452
474
|
|
453
475
|
off : function () {
|
454
|
-
|
455
|
-
|
476
|
+
this.S(this.scope).off('.fndtn.clearing');
|
477
|
+
this.S(window).off('.fndtn.clearing');
|
456
478
|
},
|
457
479
|
|
458
480
|
reflow : function () {
|