paint-rails 0.6.7 → 0.7.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/lib/paint-rails/version.rb +1 -1
- data/paint-rails.gemspec +2 -2
- data/vendor/assets/stylesheets/Brocfile.js +3 -0
- data/vendor/assets/stylesheets/Gemfile +3 -0
- data/vendor/assets/stylesheets/Gemfile.lock +14 -0
- data/vendor/assets/stylesheets/bin/ci +6 -0
- data/vendor/assets/stylesheets/bin/lint +5 -0
- data/vendor/assets/stylesheets/bin/setup +7 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/.bower.json +5 -5
- data/vendor/assets/stylesheets/bower_components/fontawesome/.gitignore +1 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/bower.json +1 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/css/font-awesome.css +133 -4
- data/vendor/assets/stylesheets/bower_components/fontawesome/css/font-awesome.css.map +7 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/css/font-awesome.min.css +2 -2
- data/vendor/assets/stylesheets/bower_components/fontawesome/fonts/FontAwesome.otf +0 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/fonts/fontawesome-webfont.eot +0 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/fonts/fontawesome-webfont.svg +53 -8
- data/vendor/assets/stylesheets/bower_components/fontawesome/fonts/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/fonts/fontawesome-webfont.woff +0 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/{spinning.less → animated.less} +6 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/core.less +3 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/font-awesome.less +2 -2
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/icons.less +45 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/mixins.less +3 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/path.less +1 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/variables.less +47 -2
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/{_spinning.scss → _animated.scss} +5 -0
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/_core.scss +3 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/_icons.scss +45 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/_mixins.scss +3 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/_path.scss +2 -1
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/_variables.scss +47 -2
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/font-awesome.scss +2 -2
- data/vendor/assets/stylesheets/bower_components/foundation/.bower.json +5 -5
- data/vendor/assets/stylesheets/bower_components/foundation/bower.json +1 -1
- data/vendor/assets/stylesheets/bower_components/foundation/css/foundation.css +1855 -1667
- data/vendor/assets/stylesheets/bower_components/foundation/css/foundation.css.map +7 -0
- data/vendor/assets/stylesheets/bower_components/foundation/css/foundation.min.css +1 -0
- data/vendor/assets/stylesheets/bower_components/foundation/css/normalize.css +11 -12
- data/vendor/assets/stylesheets/bower_components/foundation/css/normalize.css.map +7 -0
- data/vendor/assets/stylesheets/bower_components/foundation/css/normalize.min.css +1 -0
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.abide.js +156 -62
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.accordion.js +35 -13
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.alert.js +8 -8
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.clearing.js +93 -65
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.dropdown.js +203 -66
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.equalizer.js +57 -27
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.interchange.js +61 -46
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.joyride.js +93 -78
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.js +177 -77
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.magellan.js +81 -55
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.offcanvas.js +28 -28
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.orbit.js +135 -131
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.reveal.js +119 -65
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.slider.js +113 -71
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.tab.js +67 -35
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.tooltip.js +76 -37
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.topbar.js +71 -58
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation.js +1570 -919
- data/vendor/assets/stylesheets/bower_components/foundation/js/foundation.min.js +5 -4
- data/vendor/assets/stylesheets/bower_components/foundation/js/vendor/fastclick.js +8 -9
- data/vendor/assets/stylesheets/bower_components/foundation/js/vendor/jquery.js +10 -9
- data/vendor/assets/stylesheets/bower_components/foundation/js/vendor/modernizr.js +1 -1
- data/vendor/assets/stylesheets/bower_components/foundation/js/vendor/placeholder.js +2 -2
- data/vendor/assets/stylesheets/bower_components/foundation/package.json +53 -0
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/_functions.scss +76 -22
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/_settings.scss +152 -107
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_accordion.scss +8 -8
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_alert-boxes.scss +12 -12
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_block-grid.scss +14 -13
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_breadcrumbs.scss +18 -19
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_button-groups.scss +35 -25
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_buttons.scss +16 -19
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_clearing.scss +60 -47
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss +15 -15
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_dropdown.scss +42 -36
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_flex-video.scss +7 -7
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_forms.scss +103 -79
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_global.scss +95 -53
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_grid.scss +42 -25
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_icon-bar.scss +371 -204
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_inline-lists.scss +8 -8
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_joyride.scss +40 -42
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_keystrokes.scss +2 -3
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_labels.scss +7 -7
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_magellan.scss +2 -2
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_offcanvas.scss +184 -179
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_orbit.scss +90 -70
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_pagination.scss +15 -15
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_panels.scss +27 -15
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_pricing-tables.scss +16 -16
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_progress-bars.scss +4 -4
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_range-slider.scss +28 -19
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_reveal.scss +37 -50
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_side-nav.scss +15 -11
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_split-buttons.scss +26 -14
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_sub-nav.scss +14 -12
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_switches.scss +32 -21
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_tables.scss +8 -8
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_tabs.scss +50 -31
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_thumbs.scss +8 -8
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_tooltips.scss +25 -25
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_top-bar.scss +197 -145
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_type.scss +20 -81
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_visibility.scss +99 -15
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation.scss +37 -38
- data/vendor/assets/stylesheets/bower_components/foundation/scss/normalize.scss +8 -11
- data/vendor/assets/stylesheets/bower_components/jquery/.bower.json +5 -4
- data/vendor/assets/stylesheets/bower_components/jquery/bower.json +2 -1
- data/vendor/assets/stylesheets/bower_components/jquery/dist/jquery.js +9 -4
- data/vendor/assets/stylesheets/bower_components/jquery/dist/jquery.min.js +4 -4
- data/vendor/assets/stylesheets/bower_components/jquery/dist/jquery.min.map +1 -1
- data/vendor/assets/stylesheets/bower_components/jquery/src/core.js +6 -1
- data/vendor/assets/stylesheets/circle.yml +17 -0
- data/vendor/assets/stylesheets/components/_button.scss +120 -21
- data/vendor/assets/stylesheets/components/_dropdown.scss +316 -14
- data/vendor/assets/stylesheets/components/_flip-panel.scss +191 -0
- data/vendor/assets/stylesheets/components/_form.scss +346 -0
- data/vendor/assets/stylesheets/components/_layout.scss +261 -121
- data/vendor/assets/stylesheets/components/_panel.scss +91 -0
- data/vendor/assets/stylesheets/components/_quick-jump.scss +267 -0
- data/vendor/assets/stylesheets/components/_side-panel.scss +154 -0
- data/vendor/assets/stylesheets/components/_table.scss +105 -0
- data/vendor/assets/stylesheets/components/_typography.scss +34 -3
- data/vendor/assets/stylesheets/components/_vertical-align.scss +9 -0
- data/vendor/assets/stylesheets/globals/_functions.scss +69 -0
- data/vendor/assets/stylesheets/globals/_mixins.scss +23 -1
- data/vendor/assets/stylesheets/globals/_settings.scss +35 -36
- data/vendor/assets/stylesheets/paint.scss +22 -14
- metadata +29 -8
- data/vendor/assets/stylesheets/bower_components/fontawesome/less/extras.less +0 -2
- data/vendor/assets/stylesheets/bower_components/fontawesome/scss/_extras.scss +0 -44
- data/vendor/assets/stylesheets/bower_components/foundation/scss/foundation/components/_toolbar.scss +0 -70
data/vendor/assets/stylesheets/bower_components/foundation/js/foundation/foundation.slider.js
CHANGED
@@ -4,39 +4,41 @@
|
|
4
4
|
Foundation.libs.slider = {
|
5
5
|
name : 'slider',
|
6
6
|
|
7
|
-
version : '5.
|
8
|
-
|
9
|
-
settings: {
|
10
|
-
start: 0,
|
11
|
-
end: 100,
|
12
|
-
step: 1,
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
version : '5.5.2',
|
8
|
+
|
9
|
+
settings : {
|
10
|
+
start : 0,
|
11
|
+
end : 100,
|
12
|
+
step : 1,
|
13
|
+
precision : null,
|
14
|
+
initial : null,
|
15
|
+
display_selector : '',
|
16
|
+
vertical : false,
|
17
|
+
trigger_input_change : false,
|
18
|
+
on_change : function () {}
|
17
19
|
},
|
18
20
|
|
19
21
|
cache : {},
|
20
22
|
|
21
23
|
init : function (scope, method, options) {
|
22
|
-
Foundation.inherit(this,'throttle');
|
24
|
+
Foundation.inherit(this, 'throttle');
|
23
25
|
this.bindings(method, options);
|
24
26
|
this.reflow();
|
25
27
|
},
|
26
28
|
|
27
|
-
events : function() {
|
29
|
+
events : function () {
|
28
30
|
var self = this;
|
29
31
|
|
30
32
|
$(this.scope)
|
31
33
|
.off('.slider')
|
32
34
|
.on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
|
33
|
-
'[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function(e) {
|
35
|
+
'[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
|
34
36
|
if (!self.cache.active) {
|
35
37
|
e.preventDefault();
|
36
38
|
self.set_active_slider($(e.target));
|
37
39
|
}
|
38
40
|
})
|
39
|
-
.on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function(e) {
|
41
|
+
.on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
|
40
42
|
if (!!self.cache.active) {
|
41
43
|
e.preventDefault();
|
42
44
|
if ($.data(self.cache.active[0], 'settings').vertical) {
|
@@ -44,41 +46,70 @@
|
|
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
|
})
|
60
|
-
.on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function(e) {
|
55
|
+
.on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
|
61
56
|
self.remove_active_slider();
|
62
57
|
})
|
63
|
-
.on('change.fndtn.slider', function(e) {
|
58
|
+
.on('change.fndtn.slider', function (e) {
|
64
59
|
self.settings.on_change();
|
65
60
|
});
|
66
61
|
|
67
62
|
self.S(window)
|
68
|
-
.on('resize.fndtn.slider', self.throttle(function(e) {
|
63
|
+
.on('resize.fndtn.slider', self.throttle(function (e) {
|
69
64
|
self.reflow();
|
70
65
|
}, 300));
|
66
|
+
|
67
|
+
// update slider value as users change input value
|
68
|
+
this.S('[' + this.attr_name() + ']').each(function () {
|
69
|
+
var slider = $(this),
|
70
|
+
handle = slider.children('.range-slider-handle')[0],
|
71
|
+
settings = self.initialize_settings(handle);
|
72
|
+
|
73
|
+
if (settings.display_selector != '') {
|
74
|
+
$(settings.display_selector).each(function(){
|
75
|
+
if (this.hasOwnProperty('value')) {
|
76
|
+
$(this).change(function(){
|
77
|
+
// is there a better way to do this?
|
78
|
+
slider.foundation("slider", "set_value", $(this).val());
|
79
|
+
});
|
80
|
+
}
|
81
|
+
});
|
82
|
+
}
|
83
|
+
});
|
71
84
|
},
|
72
85
|
|
73
|
-
|
86
|
+
get_cursor_position : function (e, xy) {
|
87
|
+
var pageXY = 'page' + xy.toUpperCase(),
|
88
|
+
clientXY = 'client' + xy.toUpperCase(),
|
89
|
+
position;
|
90
|
+
|
91
|
+
if (typeof e[pageXY] !== 'undefined') {
|
92
|
+
position = e[pageXY];
|
93
|
+
} else if (typeof e.originalEvent[clientXY] !== 'undefined') {
|
94
|
+
position = e.originalEvent[clientXY];
|
95
|
+
} else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
|
96
|
+
position = e.originalEvent.touches[0][clientXY];
|
97
|
+
} else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
|
98
|
+
position = e.currentPoint[xy];
|
99
|
+
}
|
100
|
+
|
101
|
+
return position;
|
102
|
+
},
|
103
|
+
|
104
|
+
set_active_slider : function ($handle) {
|
74
105
|
this.cache.active = $handle;
|
75
106
|
},
|
76
107
|
|
77
|
-
remove_active_slider : function() {
|
108
|
+
remove_active_slider : function () {
|
78
109
|
this.cache.active = null;
|
79
110
|
},
|
80
111
|
|
81
|
-
calculate_position : function($handle, cursor_x) {
|
112
|
+
calculate_position : function ($handle, cursor_x) {
|
82
113
|
var self = this,
|
83
114
|
settings = $.data($handle[0], 'settings'),
|
84
115
|
handle_l = $.data($handle[0], 'handle_l'),
|
@@ -86,30 +117,32 @@
|
|
86
117
|
bar_l = $.data($handle[0], 'bar_l'),
|
87
118
|
bar_o = $.data($handle[0], 'bar_o');
|
88
119
|
|
89
|
-
requestAnimationFrame(function(){
|
120
|
+
requestAnimationFrame(function () {
|
90
121
|
var pct;
|
91
122
|
|
92
123
|
if (Foundation.rtl && !settings.vertical) {
|
93
|
-
pct = self.limit_to(((bar_o+bar_l-cursor_x)/bar_l),0,1);
|
124
|
+
pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
|
94
125
|
} else {
|
95
|
-
pct = self.limit_to(((cursor_x-bar_o)/bar_l),0,1);
|
126
|
+
pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
|
96
127
|
}
|
97
128
|
|
98
|
-
pct = settings.vertical ? 1-pct : pct;
|
129
|
+
pct = settings.vertical ? 1 - pct : pct;
|
99
130
|
|
100
|
-
var norm = self.normalized_value(pct, settings.start, settings.end, settings.step);
|
131
|
+
var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
|
101
132
|
|
102
133
|
self.set_ui($handle, norm);
|
103
134
|
});
|
104
135
|
},
|
105
136
|
|
106
|
-
set_ui : function($handle, value) {
|
137
|
+
set_ui : function ($handle, value) {
|
107
138
|
var settings = $.data($handle[0], 'settings'),
|
108
139
|
handle_l = $.data($handle[0], 'handle_l'),
|
109
140
|
bar_l = $.data($handle[0], 'bar_l'),
|
110
141
|
norm_pct = this.normalized_percentage(value, settings.start, settings.end),
|
111
|
-
handle_offset = norm_pct*(bar_l-handle_l)-1,
|
112
|
-
progress_bar_length = norm_pct*100
|
142
|
+
handle_offset = norm_pct * (bar_l - handle_l) - 1,
|
143
|
+
progress_bar_length = norm_pct * 100,
|
144
|
+
$handle_parent = $handle.parent(),
|
145
|
+
$hidden_inputs = $handle.parent().children('input[type=hidden]');
|
113
146
|
|
114
147
|
if (Foundation.rtl && !settings.vertical) {
|
115
148
|
handle_offset = -handle_offset;
|
@@ -124,21 +157,24 @@
|
|
124
157
|
$handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
|
125
158
|
}
|
126
159
|
|
127
|
-
$
|
160
|
+
$handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
|
128
161
|
|
129
|
-
$
|
162
|
+
$hidden_inputs.val(value);
|
163
|
+
if (settings.trigger_input_change) {
|
164
|
+
$hidden_inputs.trigger('change.fndtn.slider');
|
165
|
+
}
|
130
166
|
|
131
167
|
if (!$handle[0].hasAttribute('aria-valuemin')) {
|
132
168
|
$handle.attr({
|
133
|
-
'aria-valuemin': settings.start,
|
134
|
-
'aria-valuemax': settings.end
|
169
|
+
'aria-valuemin' : settings.start,
|
170
|
+
'aria-valuemax' : settings.end
|
135
171
|
});
|
136
172
|
}
|
137
173
|
$handle.attr('aria-valuenow', value);
|
138
174
|
|
139
175
|
if (settings.display_selector != '') {
|
140
|
-
$(settings.display_selector).each(function(){
|
141
|
-
if (this.
|
176
|
+
$(settings.display_selector).each(function () {
|
177
|
+
if (this.hasAttribute('value')) {
|
142
178
|
$(this).val(value);
|
143
179
|
} else {
|
144
180
|
$(this).text(value);
|
@@ -148,43 +184,49 @@
|
|
148
184
|
|
149
185
|
},
|
150
186
|
|
151
|
-
normalized_percentage : function(val, start, end) {
|
152
|
-
return Math.min(1, (val - start)/(end - start));
|
187
|
+
normalized_percentage : function (val, start, end) {
|
188
|
+
return Math.min(1, (val - start) / (end - start));
|
153
189
|
},
|
154
190
|
|
155
|
-
normalized_value : function(val, start, end, step) {
|
191
|
+
normalized_value : function (val, start, end, step, precision) {
|
156
192
|
var range = end - start,
|
157
|
-
point = val*range,
|
158
|
-
mod = (point-(point%step)) / step,
|
193
|
+
point = val * range,
|
194
|
+
mod = (point - (point % step)) / step,
|
159
195
|
rem = point % step,
|
160
|
-
round = ( rem >= step*0.5 ? step : 0);
|
161
|
-
return (mod*step + round) + start;
|
196
|
+
round = ( rem >= step * 0.5 ? step : 0);
|
197
|
+
return ((mod * step + round) + start).toFixed(precision);
|
162
198
|
},
|
163
199
|
|
164
|
-
set_translate : function(ele, offset, vertical) {
|
200
|
+
set_translate : function (ele, offset, vertical) {
|
165
201
|
if (vertical) {
|
166
202
|
$(ele)
|
167
|
-
.css('-webkit-transform', 'translateY('+offset+'px)')
|
168
|
-
.css('-moz-transform', 'translateY('+offset+'px)')
|
169
|
-
.css('-ms-transform', 'translateY('+offset+'px)')
|
170
|
-
.css('-o-transform', 'translateY('+offset+'px)')
|
171
|
-
.css('transform', 'translateY('+offset+'px)');
|
203
|
+
.css('-webkit-transform', 'translateY(' + offset + 'px)')
|
204
|
+
.css('-moz-transform', 'translateY(' + offset + 'px)')
|
205
|
+
.css('-ms-transform', 'translateY(' + offset + 'px)')
|
206
|
+
.css('-o-transform', 'translateY(' + offset + 'px)')
|
207
|
+
.css('transform', 'translateY(' + offset + 'px)');
|
172
208
|
} else {
|
173
209
|
$(ele)
|
174
|
-
.css('-webkit-transform', 'translateX('+offset+'px)')
|
175
|
-
.css('-moz-transform', 'translateX('+offset+'px)')
|
176
|
-
.css('-ms-transform', 'translateX('+offset+'px)')
|
177
|
-
.css('-o-transform', 'translateX('+offset+'px)')
|
178
|
-
.css('transform', 'translateX('+offset+'px)');
|
210
|
+
.css('-webkit-transform', 'translateX(' + offset + 'px)')
|
211
|
+
.css('-moz-transform', 'translateX(' + offset + 'px)')
|
212
|
+
.css('-ms-transform', 'translateX(' + offset + 'px)')
|
213
|
+
.css('-o-transform', 'translateX(' + offset + 'px)')
|
214
|
+
.css('transform', 'translateX(' + offset + 'px)');
|
179
215
|
}
|
180
216
|
},
|
181
217
|
|
182
|
-
limit_to : function(val, min, max) {
|
218
|
+
limit_to : function (val, min, max) {
|
183
219
|
return Math.min(Math.max(val, min), max);
|
184
220
|
},
|
185
221
|
|
186
|
-
initialize_settings : function(handle) {
|
187
|
-
var settings = $.extend({}, this.settings, this.data_options($(handle).parent()))
|
222
|
+
initialize_settings : function (handle) {
|
223
|
+
var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
|
224
|
+
decimal_places_match_result;
|
225
|
+
|
226
|
+
if (settings.precision === null) {
|
227
|
+
decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
|
228
|
+
settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
|
229
|
+
}
|
188
230
|
|
189
231
|
if (settings.vertical) {
|
190
232
|
$.data(handle, 'bar_o', $(handle).parent().offset().top);
|
@@ -199,19 +241,19 @@
|
|
199
241
|
}
|
200
242
|
|
201
243
|
$.data(handle, 'bar', $(handle).parent());
|
202
|
-
$.data(handle, 'settings', settings);
|
244
|
+
return $.data(handle, 'settings', settings);
|
203
245
|
},
|
204
246
|
|
205
|
-
set_initial_position : function($ele) {
|
247
|
+
set_initial_position : function ($ele) {
|
206
248
|
var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
|
207
|
-
initial = (
|
249
|
+
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
250
|
$handle = $ele.children('.range-slider-handle');
|
209
251
|
this.set_ui($handle, initial);
|
210
252
|
},
|
211
253
|
|
212
|
-
set_value : function(value) {
|
254
|
+
set_value : function (value) {
|
213
255
|
var self = this;
|
214
|
-
$('[' + self.attr_name() + ']', this.scope).each(function(){
|
256
|
+
$('[' + self.attr_name() + ']', this.scope).each(function () {
|
215
257
|
$(this).attr(self.attr_name(), value);
|
216
258
|
});
|
217
259
|
if (!!$(this.scope).attr(self.attr_name())) {
|
@@ -220,9 +262,9 @@
|
|
220
262
|
self.reflow();
|
221
263
|
},
|
222
264
|
|
223
|
-
reflow : function() {
|
265
|
+
reflow : function () {
|
224
266
|
var self = this;
|
225
|
-
self.S('[' + this.attr_name() + ']').each(function() {
|
267
|
+
self.S('[' + this.attr_name() + ']').each(function () {
|
226
268
|
var handle = $(this).children('.range-slider-handle')[0],
|
227
269
|
val = $(this).attr(self.attr_name());
|
228
270
|
self.initialize_settings(handle);
|
@@ -4,55 +4,74 @@
|
|
4
4
|
Foundation.libs.tab = {
|
5
5
|
name : 'tab',
|
6
6
|
|
7
|
-
version : '5.
|
7
|
+
version : '5.5.2',
|
8
8
|
|
9
9
|
settings : {
|
10
|
-
active_class: 'active',
|
10
|
+
active_class : 'active',
|
11
11
|
callback : function () {},
|
12
|
-
deep_linking: false,
|
13
|
-
scroll_to_content: true,
|
14
|
-
is_hover: false
|
12
|
+
deep_linking : false,
|
13
|
+
scroll_to_content : true,
|
14
|
+
is_hover : false
|
15
15
|
},
|
16
16
|
|
17
|
-
default_tab_hashes: [],
|
17
|
+
default_tab_hashes : [],
|
18
18
|
|
19
19
|
init : function (scope, method, options) {
|
20
20
|
var self = this,
|
21
21
|
S = this.S;
|
22
22
|
|
23
|
+
// Store the default active tabs which will be referenced when the
|
24
|
+
// location hash is absent, as in the case of navigating the tabs and
|
25
|
+
// returning to the first viewing via the browser Back button.
|
26
|
+
S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
|
27
|
+
self.default_tab_hashes.push(this.hash);
|
28
|
+
});
|
29
|
+
|
30
|
+
// store the initial href, which is used to allow correct behaviour of the
|
31
|
+
// browser back button when deep linking is turned on.
|
32
|
+
self.entry_location = window.location.href;
|
33
|
+
|
23
34
|
this.bindings(method, options);
|
24
35
|
this.handle_location_hash_change();
|
25
|
-
|
26
|
-
// Store the default active tabs which will be referenced when the
|
27
|
-
// location hash is absent, as in the case of navigating the tabs and
|
28
|
-
// returning to the first viewing via the browser Back button.
|
29
|
-
S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
|
30
|
-
self.default_tab_hashes.push(this.hash);
|
31
|
-
});
|
32
36
|
},
|
33
37
|
|
34
38
|
events : function () {
|
35
39
|
var self = this,
|
36
40
|
S = this.S;
|
37
41
|
|
38
|
-
var usual_tab_behavior = function (e) {
|
39
|
-
var settings = S(
|
42
|
+
var usual_tab_behavior = function (e, target) {
|
43
|
+
var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
|
40
44
|
if (!settings.is_hover || Modernizr.touch) {
|
41
45
|
e.preventDefault();
|
42
46
|
e.stopPropagation();
|
43
|
-
self.toggle_active_tab(S(
|
47
|
+
self.toggle_active_tab(S(target).parent());
|
44
48
|
}
|
45
49
|
};
|
46
50
|
|
47
51
|
S(this.scope)
|
48
52
|
.off('.tab')
|
53
|
+
// Key event: focus/tab key
|
54
|
+
.on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
|
55
|
+
var el = this;
|
56
|
+
var keyCode = e.keyCode || e.which;
|
57
|
+
// if user pressed tab key
|
58
|
+
if (keyCode == 9) {
|
59
|
+
e.preventDefault();
|
60
|
+
// TODO: Change usual_tab_behavior into accessibility function?
|
61
|
+
usual_tab_behavior(e, el);
|
62
|
+
}
|
63
|
+
})
|
49
64
|
// Click event: tab title
|
50
|
-
.on('
|
51
|
-
|
65
|
+
.on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
|
66
|
+
var el = this;
|
67
|
+
usual_tab_behavior(e, el);
|
68
|
+
})
|
52
69
|
// Hover event: tab title
|
53
70
|
.on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
|
54
|
-
var settings = S(this).closest('[' + self.attr_name() +']').data(self.attr_name(true) + '-init');
|
55
|
-
if (settings.is_hover)
|
71
|
+
var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
|
72
|
+
if (settings.is_hover) {
|
73
|
+
self.toggle_active_tab(S(this).parent());
|
74
|
+
}
|
56
75
|
});
|
57
76
|
|
58
77
|
// Location hash change event
|
@@ -103,8 +122,9 @@
|
|
103
122
|
});
|
104
123
|
},
|
105
124
|
|
106
|
-
toggle_active_tab: function (tab, location_hash) {
|
107
|
-
var
|
125
|
+
toggle_active_tab : function (tab, location_hash) {
|
126
|
+
var self = this,
|
127
|
+
S = self.S,
|
108
128
|
tabs = tab.closest('[' + this.attr_name() + ']'),
|
109
129
|
tab_link = tab.find('a'),
|
110
130
|
anchor = tab.children('a').first(),
|
@@ -112,7 +132,7 @@
|
|
112
132
|
target = S(target_hash),
|
113
133
|
siblings = tab.siblings(),
|
114
134
|
settings = tabs.data(this.attr_name(true) + '-init'),
|
115
|
-
interpret_keyup_action = function(e) {
|
135
|
+
interpret_keyup_action = function (e) {
|
116
136
|
// Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
|
117
137
|
|
118
138
|
// define current, previous and next (possible) tabs
|
@@ -157,19 +177,31 @@
|
|
157
177
|
$('#' + $(document.activeElement).attr('href').substring(1))
|
158
178
|
.attr('aria-hidden', null);
|
159
179
|
|
180
|
+
},
|
181
|
+
go_to_hash = function(hash) {
|
182
|
+
// This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
|
183
|
+
// the user would get continually redirected to the default hash.
|
184
|
+
var is_entry_location = window.location.href === self.entry_location,
|
185
|
+
default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : is_entry_location ? window.location.hash :'fndtn-' + self.default_tab_hashes[0].replace('#', '')
|
186
|
+
|
187
|
+
if (!(is_entry_location && hash === default_hash)) {
|
188
|
+
window.location.hash = hash;
|
189
|
+
}
|
160
190
|
};
|
161
191
|
|
162
192
|
// allow usage of data-tab-content attribute instead of href
|
163
|
-
if (
|
164
|
-
target_hash = '#' +
|
193
|
+
if (anchor.data('tab-content')) {
|
194
|
+
target_hash = '#' + anchor.data('tab-content').split('#')[1];
|
165
195
|
target = S(target_hash);
|
166
196
|
}
|
167
197
|
|
168
198
|
if (settings.deep_linking) {
|
169
199
|
|
170
200
|
if (settings.scroll_to_content) {
|
201
|
+
|
171
202
|
// retain current hash to scroll to content
|
172
|
-
|
203
|
+
go_to_hash(location_hash || target_hash);
|
204
|
+
|
173
205
|
if (location_hash == undefined || location_hash == target_hash) {
|
174
206
|
tab.parent()[0].scrollIntoView();
|
175
207
|
} else {
|
@@ -178,9 +210,9 @@
|
|
178
210
|
} else {
|
179
211
|
// prefix the hashes so that the browser doesn't scroll down
|
180
212
|
if (location_hash != undefined) {
|
181
|
-
|
213
|
+
go_to_hash('fndtn-' + location_hash.replace('#', ''));
|
182
214
|
} else {
|
183
|
-
|
215
|
+
go_to_hash('fndtn-' + target_hash.replace('#', ''));
|
184
216
|
}
|
185
217
|
}
|
186
218
|
}
|
@@ -190,19 +222,19 @@
|
|
190
222
|
// window (notably in Chrome).
|
191
223
|
// Clean up multiple attr instances to done once
|
192
224
|
tab.addClass(settings.active_class).triggerHandler('opened');
|
193
|
-
tab_link.attr({
|
225
|
+
tab_link.attr({'aria-selected' : 'true', tabindex : 0});
|
194
226
|
siblings.removeClass(settings.active_class)
|
195
|
-
siblings.find('a').attr({
|
196
|
-
target.siblings().removeClass(settings.active_class).attr({
|
197
|
-
target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr(
|
227
|
+
siblings.find('a').attr({'aria-selected' : 'false', tabindex : -1});
|
228
|
+
target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true', tabindex : -1});
|
229
|
+
target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
|
198
230
|
settings.callback(tab);
|
199
|
-
target.triggerHandler('toggled', [
|
200
|
-
tabs.triggerHandler('toggled', [
|
231
|
+
target.triggerHandler('toggled', [target]);
|
232
|
+
tabs.triggerHandler('toggled', [tab]);
|
201
233
|
|
202
234
|
tab_link.off('keydown').on('keydown', interpret_keyup_action );
|
203
235
|
},
|
204
236
|
|
205
|
-
data_attr: function (str) {
|
237
|
+
data_attr : function (str) {
|
206
238
|
if (this.namespace.length > 0) {
|
207
239
|
return this.namespace + '-' + str;
|
208
240
|
}
|