foundation-rails 5.5.1.0 → 5.5.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/bower.json +2 -2
  2. data/lib/foundation/rails/version.rb +1 -1
  3. data/update-gem.sh +12 -7
  4. data/vendor/assets/javascripts/foundation.js +2 -2
  5. data/vendor/assets/javascripts/foundation/foundation.abide.js +62 -40
  6. data/vendor/assets/javascripts/foundation/foundation.accordion.js +7 -7
  7. data/vendor/assets/javascripts/foundation/foundation.alert.js +3 -3
  8. data/vendor/assets/javascripts/foundation/foundation.clearing.js +46 -48
  9. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +71 -62
  10. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +18 -14
  11. data/vendor/assets/javascripts/foundation/foundation.interchange.js +31 -25
  12. data/vendor/assets/javascripts/foundation/foundation.joyride.js +81 -73
  13. data/vendor/assets/javascripts/foundation/foundation.js +54 -41
  14. data/vendor/assets/javascripts/foundation/foundation.magellan.js +44 -39
  15. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +19 -19
  16. data/vendor/assets/javascripts/foundation/foundation.orbit.js +133 -129
  17. data/vendor/assets/javascripts/foundation/foundation.reveal.js +73 -51
  18. data/vendor/assets/javascripts/foundation/foundation.slider.js +63 -67
  19. data/vendor/assets/javascripts/foundation/foundation.tab.js +39 -19
  20. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +30 -23
  21. data/vendor/assets/javascripts/foundation/foundation.topbar.js +66 -59
  22. data/vendor/assets/stylesheets/foundation/_functions.scss +1 -1
  23. data/vendor/assets/stylesheets/foundation/_settings.scss +99 -77
  24. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +2 -2
  25. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +1 -0
  26. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +1 -1
  27. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +7 -4
  28. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +2 -1
  29. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +11 -2
  30. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +1 -0
  31. data/vendor/assets/stylesheets/foundation/components/_forms.scss +13 -6
  32. data/vendor/assets/stylesheets/foundation/components/_global.scss +3 -3
  33. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +32 -2
  34. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +6 -4
  35. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +15 -29
  36. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +12 -0
  37. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +1 -2
  38. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +3 -1
  39. data/vendor/assets/stylesheets/foundation/components/_toolbar.scss +3 -1
  40. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +10 -3
  41. data/vendor/assets/stylesheets/foundation/components/_type.scss +1 -62
  42. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +78 -12
  43. metadata +2 -3
  44. data/vendor/assets/_settings.scss +0 -1445
@@ -4,17 +4,17 @@
4
4
  Foundation.libs.dropdown = {
5
5
  name : 'dropdown',
6
6
 
7
- version : '5.5.0',
7
+ version : '5.5.1',
8
8
 
9
9
  settings : {
10
- active_class: 'open',
11
- disabled_class: 'disabled',
12
- mega_class: 'mega',
13
- align: 'bottom',
14
- is_hover: false,
15
- hover_timeout: 150,
16
- opened: function(){},
17
- closed: function(){}
10
+ active_class : 'open',
11
+ disabled_class : 'disabled',
12
+ mega_class : 'mega',
13
+ align : 'bottom',
14
+ is_hover : false,
15
+ hover_timeout : 150,
16
+ opened : function () {},
17
+ closed : function () {}
18
18
  },
19
19
 
20
20
  init : function (scope, method, options) {
@@ -57,11 +57,13 @@
57
57
 
58
58
  var settings = target.data(self.attr_name(true) + '-init') || self.settings;
59
59
 
60
- if(S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
60
+ if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
61
61
  self.closeall.call(self);
62
62
  }
63
63
 
64
- if (settings.is_hover) self.open.apply(self, [dropdown, target]);
64
+ if (settings.is_hover) {
65
+ self.open.apply(self, [dropdown, target]);
66
+ }
65
67
  })
66
68
  .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
67
69
  var $this = S(this);
@@ -69,17 +71,20 @@
69
71
 
70
72
  if ($this.data(self.data_attr())) {
71
73
  settings = $this.data(self.data_attr(true) + '-init') || self.settings;
72
- }
73
- else {
74
+ } else {
74
75
  var target = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
75
76
  settings = target.data(self.attr_name(true) + '-init') || self.settings;
76
77
  }
77
78
 
78
79
  self.timeout = setTimeout(function () {
79
80
  if ($this.data(self.data_attr())) {
80
- if (settings.is_hover) self.close.call(self, S('#' + $this.data(self.data_attr())));
81
+ if (settings.is_hover) {
82
+ self.close.call(self, S('#' + $this.data(self.data_attr())));
83
+ }
81
84
  } else {
82
- if (settings.is_hover) self.close.call(self, $this);
85
+ if (settings.is_hover) {
86
+ self.close.call(self, $this);
87
+ }
83
88
  }
84
89
  }.bind(this), settings.hover_timeout);
85
90
  })
@@ -87,10 +92,14 @@
87
92
  var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
88
93
  var links = parent.find('a');
89
94
 
90
- if (links.length > 0 && parent.attr('aria-autoclose') !== "false") {
95
+ if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
91
96
  self.close.call(self, S('[' + self.attr_name() + '-content]'));
92
97
  }
93
98
 
99
+ if (e.target !== document && !$.contains(document.documentElement, e.target)) {
100
+ return;
101
+ }
102
+
94
103
  if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
95
104
  return;
96
105
  }
@@ -120,14 +129,14 @@
120
129
  this.resize();
121
130
  },
122
131
 
123
- close: function (dropdown) {
132
+ close : function (dropdown) {
124
133
  var self = this;
125
134
  dropdown.each(function () {
126
- var original_target = $('[' + self.attr_name() + '=' + dropdown[0].id + ']') || $('aria-controls=' + dropdown[0].id+ ']');
135
+ var original_target = $('[' + self.attr_name() + '=' + dropdown[0].id + ']') || $('aria-controls=' + dropdown[0].id + ']');
127
136
  original_target.attr('aria-expanded', 'false');
128
137
  if (self.S(this).hasClass(self.settings.active_class)) {
129
138
  self.S(this)
130
- .css(Foundation.rtl ? 'right':'left', '-99999px')
139
+ .css(Foundation.rtl ? 'right' : 'left', '-99999px')
131
140
  .attr('aria-hidden', 'true')
132
141
  .removeClass(self.settings.active_class)
133
142
  .prev('[' + self.attr_name() + ']')
@@ -140,14 +149,14 @@
140
149
  dropdown.removeClass('f-open-' + this.attr_name(true));
141
150
  },
142
151
 
143
- closeall: function() {
152
+ closeall : function () {
144
153
  var self = this;
145
- $.each(self.S('.f-open-' + this.attr_name(true)), function() {
154
+ $.each(self.S('.f-open-' + this.attr_name(true)), function () {
146
155
  self.close.call(self, self.S(this));
147
156
  });
148
157
  },
149
158
 
150
- open: function (dropdown, target) {
159
+ open : function (dropdown, target) {
151
160
  this
152
161
  .css(dropdown
153
162
  .addClass(this.settings.active_class), target);
@@ -159,7 +168,7 @@
159
168
  dropdown.addClass('f-open-' + this.attr_name(true));
160
169
  },
161
170
 
162
- data_attr: function () {
171
+ data_attr : function () {
163
172
  if (this.namespace.length > 0) {
164
173
  return this.namespace + '-' + this.name;
165
174
  }
@@ -181,16 +190,17 @@
181
190
 
182
191
  if (dropdown.hasClass(this.settings.active_class)) {
183
192
  this.close.call(this, dropdown);
184
- if (dropdown.data('target') !== target.get(0))
193
+ if (dropdown.data('target') !== target.get(0)) {
185
194
  this.open.call(this, dropdown, target);
195
+ }
186
196
  } else {
187
197
  this.open.call(this, dropdown, target);
188
198
  }
189
199
  },
190
200
 
191
201
  resize : function () {
192
- var dropdown = this.S('[' + this.attr_name() + '-content].open'),
193
- target = this.S('[' + this.attr_name() + '="' + dropdown.attr('id') + '"]');
202
+ var dropdown = this.S('[' + this.attr_name() + '-content].open');
203
+ var target = $(dropdown.data("target"));
194
204
 
195
205
  if (dropdown.length && target.length) {
196
206
  this.css(dropdown, target);
@@ -208,12 +218,12 @@
208
218
 
209
219
  dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
210
220
  position : 'absolute',
211
- width: '95%',
212
- 'max-width': 'none',
213
- top: p.top
221
+ width : '95%',
222
+ 'max-width' : 'none',
223
+ top : p.top
214
224
  });
215
225
 
216
- dropdown.css(Foundation.rtl ? 'right':'left', left_offset);
226
+ dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
217
227
  } else {
218
228
 
219
229
  this.style(dropdown, target, settings);
@@ -223,7 +233,7 @@
223
233
  },
224
234
 
225
235
  style : function (dropdown, target, settings) {
226
- var css = $.extend({position: 'absolute'},
236
+ var css = $.extend({position : 'absolute'},
227
237
  this.dirs[settings.align].call(dropdown, target, settings));
228
238
 
229
239
  dropdown.attr('style', '').css(css);
@@ -240,13 +250,13 @@
240
250
 
241
251
  p.top -= o.top;
242
252
  p.left -= o.left;
243
-
253
+
244
254
  //set some flags on the p object to pass along
245
255
  p.missRight = false;
246
256
  p.missTop = false;
247
257
  p.missLeft = false;
248
258
  p.leftRightFlag = false;
249
-
259
+
250
260
  //lets see if the panel will be off the screen
251
261
  //get the actual width of the page and store it
252
262
  var actualBodyWidth;
@@ -258,7 +268,7 @@
258
268
 
259
269
  var actualMarginWidth = (window.outerWidth - actualBodyWidth) / 2;
260
270
  var actualBoundary = actualBodyWidth;
261
-
271
+
262
272
  if (!this.hasClass('mega')) {
263
273
  //miss top
264
274
  if (t.offset().top <= this.outerHeight()) {
@@ -266,13 +276,13 @@
266
276
  actualBoundary = window.outerWidth - actualMarginWidth;
267
277
  p.leftRightFlag = true;
268
278
  }
269
-
279
+
270
280
  //miss right
271
281
  if (t.offset().left + this.outerWidth() > t.offset().left + actualMarginWidth && t.offset().left - actualMarginWidth > this.outerWidth()) {
272
282
  p.missRight = true;
273
283
  p.missLeft = false;
274
284
  }
275
-
285
+
276
286
  //miss left
277
287
  if (t.offset().left - this.outerWidth() <= 0) {
278
288
  p.missLeft = true;
@@ -283,34 +293,34 @@
283
293
  return p;
284
294
  },
285
295
 
286
- top: function (t, s) {
296
+ top : function (t, s) {
287
297
  var self = Foundation.libs.dropdown,
288
298
  p = self.dirs._base.call(this, t);
289
299
 
290
300
  this.addClass('drop-top');
291
-
301
+
292
302
  if (p.missTop == true) {
293
303
  p.top = p.top + t.outerHeight() + this.outerHeight();
294
304
  this.removeClass('drop-top');
295
305
  }
296
-
306
+
297
307
  if (p.missRight == true) {
298
308
  p.left = p.left - this.outerWidth() + t.outerWidth();
299
309
  }
300
310
 
301
311
  if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
302
- self.adjust_pip(this,t,s,p);
312
+ self.adjust_pip(this, t, s, p);
303
313
  }
304
314
 
305
315
  if (Foundation.rtl) {
306
- return {left: p.left - this.outerWidth() + t.outerWidth(),
307
- top: p.top - this.outerHeight()};
316
+ return {left : p.left - this.outerWidth() + t.outerWidth(),
317
+ top : p.top - this.outerHeight()};
308
318
  }
309
319
 
310
- return {left: p.left, top: p.top - this.outerHeight()};
320
+ return {left : p.left, top : p.top - this.outerHeight()};
311
321
  },
312
322
 
313
- bottom: function (t,s) {
323
+ bottom : function (t, s) {
314
324
  var self = Foundation.libs.dropdown,
315
325
  p = self.dirs._base.call(this, t);
316
326
 
@@ -319,35 +329,35 @@
319
329
  }
320
330
 
321
331
  if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
322
- self.adjust_pip(this,t,s,p);
332
+ self.adjust_pip(this, t, s, p);
323
333
  }
324
334
 
325
335
  if (self.rtl) {
326
- return {left: p.left - this.outerWidth() + t.outerWidth(), top: p.top + t.outerHeight()};
336
+ return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
327
337
  }
328
338
 
329
- return {left: p.left, top: p.top + t.outerHeight()};
339
+ return {left : p.left, top : p.top + t.outerHeight()};
330
340
  },
331
341
 
332
- left: function (t, s) {
342
+ left : function (t, s) {
333
343
  var p = Foundation.libs.dropdown.dirs._base.call(this, t);
334
344
 
335
345
  this.addClass('drop-left');
336
-
346
+
337
347
  if (p.missLeft == true) {
338
348
  p.left = p.left + this.outerWidth();
339
349
  p.top = p.top + t.outerHeight();
340
350
  this.removeClass('drop-left');
341
351
  }
342
352
 
343
- return {left: p.left - this.outerWidth(), top: p.top};
353
+ return {left : p.left - this.outerWidth(), top : p.top};
344
354
  },
345
355
 
346
- right: function (t, s) {
356
+ right : function (t, s) {
347
357
  var p = Foundation.libs.dropdown.dirs._base.call(this, t);
348
358
 
349
359
  this.addClass('drop-right');
350
-
360
+
351
361
  if (p.missRight == true) {
352
362
  p.left = p.left - this.outerWidth();
353
363
  p.top = p.top + t.outerHeight();
@@ -355,26 +365,25 @@
355
365
  } else {
356
366
  p.triggeredRight = true;
357
367
  }
358
-
368
+
359
369
  var self = Foundation.libs.dropdown;
360
370
 
361
371
  if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
362
- self.adjust_pip(this,t,s,p);
372
+ self.adjust_pip(this, t, s, p);
363
373
  }
364
374
 
365
- return {left: p.left + t.outerWidth(), top: p.top};
375
+ return {left : p.left + t.outerWidth(), top : p.top};
366
376
  }
367
377
  },
368
378
 
369
379
  // Insert rule to style psuedo elements
370
- adjust_pip : function (dropdown,target,settings,position) {
380
+ adjust_pip : function (dropdown, target, settings, position) {
371
381
  var sheet = Foundation.stylesheet,
372
382
  pip_offset_base = 8;
373
383
 
374
384
  if (dropdown.hasClass(settings.mega_class)) {
375
- pip_offset_base = position.left + (target.outerWidth()/2) - 8;
376
- }
377
- else if (this.small()) {
385
+ pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
386
+ } else if (this.small()) {
378
387
  pip_offset_base += position.left - 8;
379
388
  }
380
389
 
@@ -385,7 +394,7 @@
385
394
  sel_after = '.f-dropdown.open:after',
386
395
  css_before = 'left: ' + pip_offset_base + 'px;',
387
396
  css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
388
-
397
+
389
398
  if (position.missRight == true) {
390
399
  pip_offset_base = dropdown.outerWidth() - 23;
391
400
  sel_before = '.f-dropdown.open:before',
@@ -393,7 +402,7 @@
393
402
  css_before = 'left: ' + pip_offset_base + 'px;',
394
403
  css_after = 'left: ' + (pip_offset_base - 1) + 'px;';
395
404
  }
396
-
405
+
397
406
  //just a case where right is fired, but its not missing right
398
407
  if (position.triggeredRight == true) {
399
408
  sel_before = '.f-dropdown.open:before',
@@ -427,7 +436,7 @@
427
436
  !matchMedia(Foundation.media_queries.medium).matches;
428
437
  },
429
438
 
430
- off: function () {
439
+ off : function () {
431
440
  this.S(this.scope).off('.fndtn.dropdown');
432
441
  this.S('html, body').off('.fndtn.dropdown');
433
442
  this.S(window).off('.fndtn.dropdown');
@@ -4,13 +4,13 @@
4
4
  Foundation.libs.equalizer = {
5
5
  name : 'equalizer',
6
6
 
7
- version : '5.5.0',
7
+ version : '5.5.1',
8
8
 
9
9
  settings : {
10
- use_tallest: true,
11
- before_height_change: $.noop,
12
- after_height_change: $.noop,
13
- equalize_on_stack: false
10
+ use_tallest : true,
11
+ before_height_change : $.noop,
12
+ after_height_change : $.noop,
13
+ equalize_on_stack : false
14
14
  },
15
15
 
16
16
  init : function (scope, method, options) {
@@ -20,22 +20,24 @@
20
20
  },
21
21
 
22
22
  events : function () {
23
- this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function(e){
23
+ this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
24
24
  this.reflow();
25
25
  }.bind(this));
26
26
  },
27
27
 
28
- equalize: function(equalizer) {
28
+ equalize : function (equalizer) {
29
29
  var isStacked = false,
30
30
  vals = equalizer.find('[' + this.attr_name() + '-watch]:visible'),
31
- settings = equalizer.data(this.attr_name(true)+'-init');
31
+ settings = equalizer.data(this.attr_name(true) + '-init');
32
32
 
33
- if (vals.length === 0) return;
33
+ if (vals.length === 0) {
34
+ return;
35
+ }
34
36
  var firstTopOffset = vals.first().offset().top;
35
37
  settings.before_height_change();
36
38
  equalizer.trigger('before-height-change').trigger('before-height-change.fndth.equalizer');
37
39
  vals.height('inherit');
38
- vals.each(function(){
40
+ vals.each(function () {
39
41
  var el = $(this);
40
42
  if (el.offset().top !== firstTopOffset) {
41
43
  isStacked = true;
@@ -43,10 +45,12 @@
43
45
  });
44
46
 
45
47
  if (settings.equalize_on_stack === false) {
46
- if (isStacked) return;
48
+ if (isStacked) {
49
+ return;
50
+ }
47
51
  };
48
52
 
49
- var heights = vals.map(function(){ return $(this).outerHeight(false) }).get();
53
+ var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
50
54
 
51
55
  if (settings.use_tallest) {
52
56
  var max = Math.max.apply(null, heights);
@@ -62,9 +66,9 @@
62
66
  reflow : function () {
63
67
  var self = this;
64
68
 
65
- this.S('[' + this.attr_name() + ']', this.scope).each(function(){
69
+ this.S('[' + this.attr_name() + ']', this.scope).each(function () {
66
70
  var $eq_target = $(this);
67
- self.image_loaded(self.S('img', this), function(){
71
+ self.image_loaded(self.S('img', this), function () {
68
72
  self.equalize($eq_target)
69
73
  });
70
74
  });
@@ -4,7 +4,7 @@
4
4
  Foundation.libs.interchange = {
5
5
  name : 'interchange',
6
6
 
7
- version : '5.5.0',
7
+ version : '5.5.1',
8
8
 
9
9
  cache : {},
10
10
 
@@ -36,7 +36,7 @@
36
36
  },
37
37
 
38
38
  directives : {
39
- replace: function (el, path, trigger) {
39
+ replace : function (el, path, trigger) {
40
40
  // The trigger argument, if called within the directive, fires
41
41
  // an event named after the directive on the element, passing
42
42
  // any parameters along to the event that you pass to trigger.
@@ -51,7 +51,9 @@
51
51
  if (/IMG/.test(el[0].nodeName)) {
52
52
  var orig_path = el[0].src;
53
53
 
54
- if (new RegExp(path, 'i').test(orig_path)) return;
54
+ if (new RegExp(path, 'i').test(orig_path)) {
55
+ return;
56
+ }
55
57
 
56
58
  el[0].src = path;
57
59
 
@@ -60,10 +62,12 @@
60
62
  var last_path = el.data(this.data_attr + '-last-path'),
61
63
  self = this;
62
64
 
63
- if (last_path == path) return;
65
+ if (last_path == path) {
66
+ return;
67
+ }
64
68
 
65
69
  if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
66
- $(el).css('background-image', 'url('+path+')');
70
+ $(el).css('background-image', 'url(' + path + ')');
67
71
  el.data('interchange-last-path', path);
68
72
  return trigger(path);
69
73
  }
@@ -88,8 +92,8 @@
88
92
  this.load('nodes');
89
93
  },
90
94
 
91
- get_media_hash : function() {
92
- var mediaHash='';
95
+ get_media_hash : function () {
96
+ var mediaHash = '';
93
97
  for (var queryName in this.settings.named_queries ) {
94
98
  mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
95
99
  }
@@ -115,7 +119,7 @@
115
119
  resize : function () {
116
120
  var cache = this.cache;
117
121
 
118
- if(!this.images_loaded || !this.nodes_loaded) {
122
+ if (!this.images_loaded || !this.nodes_loaded) {
119
123
  setTimeout($.proxy(this.resize, this), 50);
120
124
  return;
121
125
  }
@@ -126,15 +130,17 @@
126
130
 
127
131
  if (passed) {
128
132
  this.settings.directives[passed
129
- .scenario[1]].call(this, passed.el, passed.scenario[0], function () {
133
+ .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
130
134
  if (arguments[0] instanceof Array) {
131
135
  var args = arguments[0];
132
- } else {
136
+ } else {
133
137
  var args = Array.prototype.slice.call(arguments, 0);
134
138
  }
135
139
 
136
- passed.el.trigger(passed.scenario[1], args);
137
- });
140
+ return function() {
141
+ passed.el.trigger(passed.scenario[1], args);
142
+ }
143
+ }(passed)));
138
144
  }
139
145
  }
140
146
  }
@@ -155,7 +161,7 @@
155
161
  mq = matchMedia(rule);
156
162
  }
157
163
  if (mq.matches) {
158
- return {el: el, scenario: scenarios[count]};
164
+ return {el : el, scenario : scenarios[count]};
159
165
  }
160
166
  }
161
167
  }
@@ -211,7 +217,6 @@
211
217
  this.cached_nodes = [];
212
218
  this.nodes_loaded = (count === 0);
213
219
 
214
-
215
220
  while (i--) {
216
221
  loaded_count++;
217
222
  var str = nodes[i].getAttribute(data_attr) || '';
@@ -220,7 +225,7 @@
220
225
  this.cached_nodes.push(nodes[i]);
221
226
  }
222
227
 
223
- if(loaded_count === count) {
228
+ if (loaded_count === count) {
224
229
  this.nodes_loaded = true;
225
230
  this.enhance('nodes');
226
231
  }
@@ -259,24 +264,23 @@
259
264
  if (directive_match) {
260
265
  var path = directive_match[1],
261
266
  directive = directive_match[2];
262
- }
263
- else {
267
+ } else {
264
268
  var cached_split = scenario[0].split(/,\s*$/),
265
269
  path = cached_split[0],
266
- directive = '';
270
+ directive = '';
267
271
  }
268
272
 
269
273
  return [this.trim(path), this.convert_directive(directive), this.trim(media_query)];
270
274
  },
271
275
 
272
- object : function(el) {
276
+ object : function (el) {
273
277
  var raw_arr = this.parse_data_attr(el),
274
- scenarios = [],
278
+ scenarios = [],
275
279
  i = raw_arr.length;
276
280
 
277
281
  if (i > 0) {
278
282
  while (i--) {
279
- var split = raw_arr[i].split(/\((.*?)(\))$/);
283
+ var split = raw_arr[i].split(/\(([^\)]*?)(\))$/);
280
284
 
281
285
  if (split.length > 1) {
282
286
  var params = this.parse_scenario(split);
@@ -292,14 +296,16 @@
292
296
  var uuid = this.random_str(),
293
297
  current_uuid = el.data(this.add_namespace('uuid', true));
294
298
 
295
- if (this.cache[current_uuid]) return this.cache[current_uuid];
299
+ if (this.cache[current_uuid]) {
300
+ return this.cache[current_uuid];
301
+ }
296
302
 
297
303
  el.attr(this.add_namespace('data-uuid'), uuid);
298
304
 
299
305
  return this.cache[uuid] = scenarios;
300
306
  },
301
307
 
302
- trim : function(str) {
308
+ trim : function (str) {
303
309
 
304
310
  if (typeof str === 'string') {
305
311
  return $.trim(str);
@@ -308,7 +314,7 @@
308
314
  return str;
309
315
  },
310
316
 
311
- set_data_attr: function (init) {
317
+ set_data_attr : function (init) {
312
318
  if (init) {
313
319
  if (this.namespace.length > 0) {
314
320
  return this.namespace + '-' + this.settings.load_attr;
@@ -326,7 +332,7 @@
326
332
 
327
333
  parse_data_attr : function (el) {
328
334
  var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
329
- i = raw.length,
335
+ i = raw.length,
330
336
  output = [];
331
337
 
332
338
  while (i--) {