mtl 1.1.0 → 1.1.1

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mtl/dropdown.coffee +1 -1
  3. data/app/assets/stylesheets/mtl/extend/_chips.scss +20 -0
  4. data/app/assets/stylesheets/mtl/extend/_side-nav.scss +4 -2
  5. data/lib/generators/mtl/templates/_variables.scss +5 -0
  6. data/lib/mtl/version.rb +2 -2
  7. data/mtl.gemspec +11 -0
  8. data/package.json +1 -1
  9. data/vendor/assets/javascripts/materialize/animation.js +8 -9
  10. data/vendor/assets/javascripts/materialize/carousel.js +51 -24
  11. data/vendor/assets/javascripts/materialize/character_counter.js +2 -2
  12. data/vendor/assets/javascripts/materialize/chips.js +40 -11
  13. data/vendor/assets/javascripts/materialize/dropdown.js +12 -12
  14. data/vendor/assets/javascripts/materialize/forms.js +131 -35
  15. data/vendor/assets/javascripts/materialize/global.js +55 -0
  16. data/vendor/assets/javascripts/materialize/init.js +40 -3
  17. data/vendor/assets/javascripts/materialize/materialbox.js +93 -77
  18. data/vendor/assets/javascripts/materialize/modal.js +12 -12
  19. data/vendor/assets/javascripts/materialize/parallax.js +48 -48
  20. data/vendor/assets/javascripts/materialize/scrollFire.js +40 -37
  21. data/vendor/assets/javascripts/materialize/scrollspy.js +2 -53
  22. data/vendor/assets/javascripts/materialize/sideNav.js +46 -40
  23. data/vendor/assets/javascripts/materialize/slider.js +15 -12
  24. data/vendor/assets/javascripts/materialize/tabs.js +104 -35
  25. data/vendor/assets/javascripts/materialize/toasts.js +122 -123
  26. data/vendor/assets/javascripts/materialize/tooltip.js +15 -13
  27. data/vendor/assets/javascripts/materialize/transitions.js +24 -24
  28. data/vendor/assets/stylesheets/materialize/_badges.scss +46 -0
  29. data/vendor/assets/stylesheets/materialize/_buttons.scss +29 -17
  30. data/vendor/assets/stylesheets/materialize/_cards.scss +9 -3
  31. data/vendor/assets/stylesheets/materialize/_carousel.scss +1 -1
  32. data/vendor/assets/stylesheets/materialize/_collapsible.scss +3 -7
  33. data/vendor/assets/stylesheets/materialize/_global.scss +5 -61
  34. data/vendor/assets/stylesheets/materialize/_materialbox.scss +13 -12
  35. data/vendor/assets/stylesheets/materialize/_navbar.scss +26 -7
  36. data/vendor/assets/stylesheets/materialize/_sideNav.scss +5 -5
  37. data/vendor/assets/stylesheets/materialize/_table_of_contents.scss +2 -2
  38. data/vendor/assets/stylesheets/materialize/_toast.scss +1 -1
  39. data/vendor/assets/stylesheets/materialize/_tooltip.scss +2 -3
  40. data/vendor/assets/stylesheets/materialize/_transitions.scss +13 -0
  41. data/vendor/assets/stylesheets/materialize/_variables.scss +7 -1
  42. data/vendor/assets/stylesheets/materialize/_waves.scss +80 -143
  43. data/vendor/assets/stylesheets/materialize/forms/_input-fields.scss +4 -4
  44. metadata +9 -4
@@ -5,11 +5,13 @@
5
5
  Materialize.updateTextFields = function() {
6
6
  var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
7
7
  $(input_selector).each(function(index, element) {
8
- if ($(element).val().length > 0 || element.autofocus ||$(this).attr('placeholder') !== undefined || $(element)[0].validity.badInput === true) {
9
- $(this).siblings('label').addClass('active');
10
- }
11
- else {
12
- $(this).siblings('label').removeClass('active');
8
+ var $this = $(this);
9
+ if ($(element).val().length > 0 || element.autofocus || $this.attr('placeholder') !== undefined) {
10
+ $this.siblings('label').addClass('active');
11
+ } else if ($(element)[0].validity) {
12
+ $this.siblings('label').toggleClass('active', $(element)[0].validity.badInput === true);
13
+ } else {
14
+ $this.siblings('label').removeClass('active');
13
15
  }
14
16
  });
15
17
  };
@@ -68,8 +70,8 @@
68
70
  });
69
71
 
70
72
  window.validate_field = function(object) {
71
- var hasLength = object.attr('length') !== undefined;
72
- var lenAttr = parseInt(object.attr('length'));
73
+ var hasLength = object.attr('data-length') !== undefined;
74
+ var lenAttr = parseInt(object.attr('data-length'));
73
75
  var len = object.val().length;
74
76
 
75
77
  if (object.val().length === 0 && object[0].validity.badInput === false) {
@@ -281,7 +283,9 @@
281
283
  $.fn.autocomplete = function (options) {
282
284
  // Defaults
283
285
  var defaults = {
284
- data: {}
286
+ data: {},
287
+ limit: Infinity,
288
+ onAutocomplete: null
285
289
  };
286
290
 
287
291
  options = $.extend(defaults, options);
@@ -289,20 +293,34 @@
289
293
  return this.each(function() {
290
294
  var $input = $(this);
291
295
  var data = options.data,
296
+ count = 0,
297
+ activeIndex = 0,
298
+ oldVal,
292
299
  $inputDiv = $input.closest('.input-field'); // Div to append on
293
300
 
294
301
  // Check if data isn't empty
295
302
  if (!$.isEmptyObject(data)) {
296
- // Create autocomplete element
297
303
  var $autocomplete = $('<ul class="autocomplete-content dropdown-content"></ul>');
304
+ var $oldAutocomplete;
298
305
 
299
- // Append autocomplete element
306
+ // Append autocomplete element.
307
+ // Prevent double structure init.
300
308
  if ($inputDiv.length) {
301
- $inputDiv.append($autocomplete); // Set ul in body
309
+ $oldAutocomplete = $inputDiv.children('.autocomplete-content.dropdown-content').first();
310
+ if (!$oldAutocomplete.length) {
311
+ $inputDiv.append($autocomplete); // Set ul in body
312
+ }
302
313
  } else {
303
- $input.after($autocomplete);
314
+ $oldAutocomplete = $input.next('.autocomplete-content.dropdown-content');
315
+ if (!$oldAutocomplete.length) {
316
+ $input.after($autocomplete);
317
+ }
318
+ }
319
+ if ($oldAutocomplete.length) {
320
+ $autocomplete = $oldAutocomplete;
304
321
  }
305
322
 
323
+ // Highlight partial match.
306
324
  var highlight = function(string, $el) {
307
325
  var img = $el.find('img');
308
326
  var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""),
@@ -316,42 +334,109 @@
316
334
  }
317
335
  };
318
336
 
337
+ // Reset current element position
338
+ var resetCurrentElement = function() {
339
+ activeIndex = 0;
340
+ $autocomplete.find('.active').removeClass('active');
341
+ }
342
+
319
343
  // Perform search
320
- $input.on('keyup', function (e) {
321
- // Capture Enter
322
- if (e.which === 13) {
323
- $autocomplete.find('li').first().click();
344
+ $input.off('keyup.autocomplete').on('keyup.autocomplete', function (e) {
345
+ // Reset count.
346
+ count = 0;
347
+
348
+ // Don't capture enter or arrow key usage.
349
+ if (e.which === 13 ||
350
+ e.which === 38 ||
351
+ e.which === 40) {
324
352
  return;
325
353
  }
326
354
 
327
355
  var val = $input.val().toLowerCase();
328
- $autocomplete.empty();
329
356
 
330
357
  // Check if the input isn't empty
331
- if (val !== '') {
332
- for(var key in data) {
333
- if (data.hasOwnProperty(key) &&
334
- key.toLowerCase().indexOf(val) !== -1 &&
335
- key.toLowerCase() !== val) {
336
- var autocompleteOption = $('<li></li>');
337
- if(!!data[key]) {
338
- autocompleteOption.append('<img src="'+ data[key] +'" class="right circle"><span>'+ key +'</span>');
339
- } else {
340
- autocompleteOption.append('<span>'+ key +'</span>');
358
+ if (oldVal !== val) {
359
+ $autocomplete.empty();
360
+ resetCurrentElement();
361
+
362
+ if (val !== '') {
363
+ for(var key in data) {
364
+ if (data.hasOwnProperty(key) &&
365
+ key.toLowerCase().indexOf(val) !== -1 &&
366
+ key.toLowerCase() !== val) {
367
+ // Break if past limit
368
+ if (count >= options.limit) {
369
+ break;
370
+ }
371
+
372
+ var autocompleteOption = $('<li></li>');
373
+ if (!!data[key]) {
374
+ autocompleteOption.append('<img src="'+ data[key] +'" class="right circle"><span>'+ key +'</span>');
375
+ } else {
376
+ autocompleteOption.append('<span>'+ key +'</span>');
377
+ }
378
+
379
+ $autocomplete.append(autocompleteOption);
380
+ highlight(val, autocompleteOption);
381
+ count++;
341
382
  }
342
- $autocomplete.append(autocompleteOption);
343
-
344
- highlight(val, autocompleteOption);
345
383
  }
346
384
  }
347
385
  }
386
+
387
+ // Update oldVal
388
+ oldVal = val;
389
+ });
390
+
391
+ $input.off('keydown.autocomplete').on('keydown.autocomplete', function (e) {
392
+ // Arrow keys and enter key usage
393
+ var keyCode = e.which,
394
+ liElement,
395
+ numItems = $autocomplete.children('li').length,
396
+ $active = $autocomplete.children('.active').first();
397
+
398
+ // select element on Enter
399
+ if (keyCode === 13) {
400
+ liElement = $autocomplete.children('li').eq(activeIndex);
401
+ if (liElement.length) {
402
+ liElement.click();
403
+ e.preventDefault();
404
+ }
405
+ return;
406
+ }
407
+
408
+ // Capture up and down key
409
+ if ( keyCode === 38 || keyCode === 40 ) {
410
+ e.preventDefault();
411
+
412
+ if (keyCode === 38 &&
413
+ activeIndex > 0) {
414
+ activeIndex--;
415
+ }
416
+
417
+ if (keyCode === 40 &&
418
+ activeIndex < (numItems - 1) &&
419
+ $active.length) {
420
+ activeIndex++;
421
+ }
422
+
423
+ $active.removeClass('active');
424
+ $autocomplete.children('li').eq(activeIndex).addClass('active');
425
+ }
348
426
  });
349
427
 
350
428
  // Set input value
351
429
  $autocomplete.on('click', 'li', function () {
352
- $input.val($(this).text().trim());
430
+ var text = $(this).text().trim();
431
+ $input.val(text);
353
432
  $input.trigger('change');
354
433
  $autocomplete.empty();
434
+ resetCurrentElement();
435
+
436
+ // Handle onAutocomplete callback.
437
+ if (typeof(options.onAutocomplete) === "function") {
438
+ options.onAutocomplete.call(this, text);
439
+ }
355
440
  });
356
441
  }
357
442
  });
@@ -514,10 +599,14 @@
514
599
  if (!options.is(':visible')) {
515
600
  $(this).trigger('open', ['focus']);
516
601
  var label = $(this).val();
602
+ if (multiple && label.indexOf(',') >= 0) {
603
+ label = label.split(',')[0];
604
+ }
605
+
517
606
  var selectedOption = options.find('li').filter(function() {
518
607
  return $(this).text().toLowerCase() === label.toLowerCase();
519
608
  })[0];
520
- activateOption(options, selectedOption);
609
+ activateOption(options, selectedOption, true);
521
610
  }
522
611
  },
523
612
  'click': function (e){
@@ -554,13 +643,20 @@
554
643
  });
555
644
  }
556
645
 
557
- // Make option as selected and scroll to selected position
558
- var activateOption = function(collection, newOption) {
646
+ /**
647
+ * Make option as selected and scroll to selected position
648
+ * @param {jQuery} collection Select options jQuery element
649
+ * @param {Element} newOption element of the new option
650
+ * @param {Boolean} firstActivation If on first activation of select
651
+ */
652
+ var activateOption = function(collection, newOption, firstActivation) {
559
653
  if (newOption) {
560
654
  collection.find('li.selected').removeClass('selected');
561
655
  var option = $(newOption);
562
656
  option.addClass('selected');
563
- options.scrollTo(option);
657
+ if (!multiple || !!firstActivation) {
658
+ options.scrollTo(option);
659
+ }
564
660
  }
565
661
  };
566
662
 
@@ -86,6 +86,61 @@ Materialize.elementOrParentIsFixed = function(element) {
86
86
  return isFixed;
87
87
  };
88
88
 
89
+
90
+ /**
91
+ * Get time in ms
92
+ * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
93
+ * @type {function}
94
+ * @return {number}
95
+ */
96
+ var getTime = (Date.now || function () {
97
+ return new Date().getTime();
98
+ });
99
+
100
+
101
+ /**
102
+ * Returns a function, that, when invoked, will only be triggered at most once
103
+ * during a given window of time. Normally, the throttled function will run
104
+ * as much as it can, without ever going more than once per `wait` duration;
105
+ * but if you'd like to disable the execution on the leading edge, pass
106
+ * `{leading: false}`. To disable execution on the trailing edge, ditto.
107
+ * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
108
+ * @param {function} func
109
+ * @param {number} wait
110
+ * @param {Object=} options
111
+ * @returns {Function}
112
+ */
113
+ Materialize.throttle = function(func, wait, options) {
114
+ var context, args, result;
115
+ var timeout = null;
116
+ var previous = 0;
117
+ options || (options = {});
118
+ var later = function () {
119
+ previous = options.leading === false ? 0 : getTime();
120
+ timeout = null;
121
+ result = func.apply(context, args);
122
+ context = args = null;
123
+ };
124
+ return function () {
125
+ var now = getTime();
126
+ if (!previous && options.leading === false) previous = now;
127
+ var remaining = wait - (now - previous);
128
+ context = this;
129
+ args = arguments;
130
+ if (remaining <= 0) {
131
+ clearTimeout(timeout);
132
+ timeout = null;
133
+ previous = now;
134
+ result = func.apply(context, args);
135
+ context = args = null;
136
+ } else if (!timeout && options.trailing !== false) {
137
+ timeout = setTimeout(later, remaining);
138
+ }
139
+ return result;
140
+ };
141
+ };
142
+
143
+
89
144
  // Velocity has conflicts when loaded with jQuery, this will check for it
90
145
  // First, check if in noConflict mode
91
146
  var Vel;
@@ -78,6 +78,12 @@
78
78
  checkForChanges();
79
79
 
80
80
 
81
+ // BuySellAds Demos close button.
82
+ $('.buysellads.buysellads-demo .close').on('click', function() {
83
+ $(this).parent().remove();
84
+ });
85
+
86
+
81
87
  // Github Latest Commit
82
88
  if ($('.github-commit').length) { // Checks if widget div exists (Index only)
83
89
  $.ajax({
@@ -137,8 +143,33 @@
137
143
  indeterminateCheckbox.indeterminate = true;
138
144
 
139
145
 
146
+ // Pushpin Demo Init
147
+ if ($('.pushpin-demo-nav').length) {
148
+ $('.pushpin-demo-nav').each(function() {
149
+ var $this = $(this);
150
+ var $target = $('#' + $(this).attr('data-target'));
151
+ $this.pushpin({
152
+ top: $target.offset().top,
153
+ bottom: $target.offset().top + $target.outerHeight() - $this.height()
154
+ });
155
+ });
156
+ }
157
+
158
+ // CSS Transitions Demo Init
159
+ if ($('#scale-demo').length &&
160
+ $('#scale-demo-trigger').length) {
161
+ $('#scale-demo-trigger').click(function() {
162
+ $('#scale-demo').toggleClass('scale-out');
163
+ });
164
+ }
165
+
166
+ // Swipeable Tabs Demo Init
167
+ if ($('#tabs-swipe-demo').length) {
168
+ $('#tabs-swipe-demo').tabs({ 'swipeable': true });
169
+ }
170
+
140
171
  // Plugin initialization
141
- $('.carousel.carousel-slider').carousel({full_width: true});
172
+ $('.carousel.carousel-slider').carousel({fullWidth: true});
142
173
  $('.carousel').carousel();
143
174
  $('.slider').slider({full_width: true});
144
175
  $('.parallax').parallax();
@@ -151,8 +182,8 @@
151
182
  data: {"Apple": null, "Microsoft": null, "Google": 'http://placehold.it/250x250'}
152
183
  });
153
184
 
185
+ // Chips
154
186
  $('.chips').material_chip();
155
-
156
187
  $('.chips-initial').material_chip({
157
188
  readOnly: true,
158
189
  data: [{
@@ -163,11 +194,17 @@
163
194
  tag: 'Google',
164
195
  }]
165
196
  });
166
-
167
197
  $('.chips-placeholder').material_chip({
168
198
  placeholder: 'Enter a tag',
169
199
  secondaryPlaceholder: '+Tag',
170
200
  });
201
+ $('.chips-autocomplete').material_chip({
202
+ autocompleteData: {
203
+ 'Apple': null,
204
+ 'Microsoft': null,
205
+ 'Google': null
206
+ }
207
+ });
171
208
 
172
209
 
173
210
  }); // end of document ready
@@ -75,7 +75,11 @@
75
75
  }
76
76
 
77
77
  // Set css on origin
78
- origin.css({position: 'absolute', 'z-index': 1000})
78
+ origin.css({
79
+ position: 'absolute',
80
+ 'z-index': 1000,
81
+ 'will-change': 'left, top, width, height'
82
+ })
79
83
  .data('width', originalWidth)
80
84
  .data('height', originalHeight);
81
85
 
@@ -88,10 +92,21 @@
88
92
  if (doneAnimating === true)
89
93
  returnToOriginal();
90
94
  });
91
- // Animate Overlay
92
- // Put before in origin image to preserve z-index layering.
93
- origin.before(overlay);
94
- overlay.velocity({opacity: 1},
95
+
96
+ // Put before in origin image to preserve z-index layering.
97
+ origin.before(overlay);
98
+
99
+ // Set dimensions if needed
100
+ var overlayOffset = overlay[0].getBoundingClientRect();
101
+ overlay.css({
102
+ width: windowWidth,
103
+ height: windowHeight,
104
+ left: -1 * overlayOffset.left,
105
+ top: -1 * overlayOffset.top
106
+ })
107
+
108
+ // Animate Overlay
109
+ overlay.velocity({opacity: 1},
95
110
  {duration: inDuration, queue: false, easing: 'easeOutQuad'} );
96
111
 
97
112
  // Add and animate caption if it exists
@@ -162,7 +177,7 @@
162
177
  ); // End Velocity
163
178
  }
164
179
 
165
- }); // End origin on click
180
+ }); // End origin on click
166
181
 
167
182
 
168
183
  // Return on scroll
@@ -186,84 +201,85 @@
186
201
  // This function returns the modaled image to the original spot
187
202
  function returnToOriginal() {
188
203
 
189
- doneAnimating = false;
190
-
191
- var placeholder = origin.parent('.material-placeholder');
192
- var windowWidth = window.innerWidth;
193
- var windowHeight = window.innerHeight;
194
- var originalWidth = origin.data('width');
195
- var originalHeight = origin.data('height');
204
+ doneAnimating = false;
196
205
 
197
- origin.velocity("stop", true);
198
- $('#materialbox-overlay').velocity("stop", true);
199
- $('.materialbox-caption').velocity("stop", true);
206
+ var placeholder = origin.parent('.material-placeholder');
207
+ var windowWidth = window.innerWidth;
208
+ var windowHeight = window.innerHeight;
209
+ var originalWidth = origin.data('width');
210
+ var originalHeight = origin.data('height');
200
211
 
212
+ origin.velocity("stop", true);
213
+ $('#materialbox-overlay').velocity("stop", true);
214
+ $('.materialbox-caption').velocity("stop", true);
201
215
 
202
- $('#materialbox-overlay').velocity({opacity: 0}, {
203
- duration: outDuration, // Delay prevents animation overlapping
204
- queue: false, easing: 'easeOutQuad',
205
- complete: function(){
206
- // Remove Overlay
207
- overlayActive = false;
208
- $(this).remove();
209
- }
210
- });
211
216
 
212
- // Resize Image
213
- origin.velocity(
214
- {
215
- width: originalWidth,
216
- height: originalHeight,
217
- left: 0,
218
- top: 0
219
- },
220
- {
221
- duration: outDuration,
222
- queue: false, easing: 'easeOutQuad'
223
- }
224
- );
217
+ $('#materialbox-overlay').velocity({opacity: 0}, {
218
+ duration: outDuration, // Delay prevents animation overlapping
219
+ queue: false, easing: 'easeOutQuad',
220
+ complete: function(){
221
+ // Remove Overlay
222
+ overlayActive = false;
223
+ $(this).remove();
224
+ }
225
+ });
225
226
 
226
- // Remove Caption + reset css settings on image
227
- $('.materialbox-caption').velocity({opacity: 0}, {
228
- duration: outDuration, // Delay prevents animation overlapping
229
- queue: false, easing: 'easeOutQuad',
230
- complete: function(){
231
- placeholder.css({
232
- height: '',
233
- width: '',
234
- position: '',
235
- top: '',
236
- left: ''
237
- });
238
-
239
- origin.css({
240
- height: '',
241
- top: '',
242
- left: '',
243
- width: '',
244
- 'max-width': '',
245
- position: '',
246
- 'z-index': ''
247
- });
248
-
249
- // Remove class
250
- origin.removeClass('active');
251
- doneAnimating = true;
252
- $(this).remove();
253
-
254
- // Remove overflow overrides on ancestors
255
- if (ancestorsChanged) {
256
- ancestorsChanged.css('overflow', '');
257
- }
227
+ // Resize Image
228
+ origin.velocity(
229
+ {
230
+ width: originalWidth,
231
+ height: originalHeight,
232
+ left: 0,
233
+ top: 0
234
+ },
235
+ {
236
+ duration: outDuration,
237
+ queue: false, easing: 'easeOutQuad'
238
+ }
239
+ );
240
+
241
+ // Remove Caption + reset css settings on image
242
+ $('.materialbox-caption').velocity({opacity: 0}, {
243
+ duration: outDuration, // Delay prevents animation overlapping
244
+ queue: false, easing: 'easeOutQuad',
245
+ complete: function(){
246
+ placeholder.css({
247
+ height: '',
248
+ width: '',
249
+ position: '',
250
+ top: '',
251
+ left: ''
252
+ });
253
+
254
+ origin.css({
255
+ height: '',
256
+ top: '',
257
+ left: '',
258
+ width: '',
259
+ 'max-width': '',
260
+ position: '',
261
+ 'z-index': '',
262
+ 'will-change': ''
263
+ });
264
+
265
+ // Remove class
266
+ origin.removeClass('active');
267
+ doneAnimating = true;
268
+ $(this).remove();
269
+
270
+ // Remove overflow overrides on ancestors
271
+ if (ancestorsChanged) {
272
+ ancestorsChanged.css('overflow', '');
258
273
  }
259
- });
260
-
261
- }
274
+ }
262
275
  });
263
- };
264
276
 
265
- $(document).ready(function(){
266
- $('.materialboxed').materialbox();
267
- });
277
+ }
278
+ });
279
+ };
280
+
281
+ $(document).ready(function(){
282
+ $('.materialboxed').materialbox();
283
+ });
268
284
 
269
285
  }( jQuery ));
@@ -10,13 +10,13 @@
10
10
  init : function(options) {
11
11
  var defaults = {
12
12
  opacity: 0.5,
13
- in_duration: 350,
14
- out_duration: 250,
13
+ inDuration: 350,
14
+ outDuration: 250,
15
15
  ready: undefined,
16
16
  complete: undefined,
17
17
  dismissible: true,
18
- starting_top: '4%',
19
- ending_top: '10%'
18
+ startingTop: '4%',
19
+ endingTop: '10%'
20
20
  };
21
21
 
22
22
  // Override defaults
@@ -40,12 +40,12 @@
40
40
  $modal.find('.modal-close').off('click.close');
41
41
  $(document).off('keyup.modal' + overlayID);
42
42
 
43
- $overlay.velocity( { opacity: 0}, {duration: options.out_duration, queue: false, ease: "easeOutQuart"});
43
+ $overlay.velocity( { opacity: 0}, {duration: options.outDuration, queue: false, ease: "easeOutQuart"});
44
44
 
45
45
 
46
46
  // Define Bottom Sheet animation
47
47
  var exitVelocityOptions = {
48
- duration: options.out_duration,
48
+ duration: options.outDuration,
49
49
  queue: false,
50
50
  ease: "easeOutCubic",
51
51
  // Handle modal ready callback
@@ -65,7 +65,7 @@
65
65
  }
66
66
  else {
67
67
  $modal.velocity(
68
- { top: options.starting_top, opacity: 0, scaleX: 0.7},
68
+ { top: options.startingTop, opacity: 0, scaleX: 0.7},
69
69
  exitVelocityOptions
70
70
  );
71
71
  }
@@ -115,12 +115,12 @@
115
115
  opacity: 0
116
116
  });
117
117
 
118
- $overlay.velocity({opacity: options.opacity}, {duration: options.in_duration, queue: false, ease: "easeOutCubic"});
118
+ $overlay.velocity({opacity: options.opacity}, {duration: options.inDuration, queue: false, ease: "easeOutCubic"});
119
119
  $modal.data('associated-overlay', $overlay[0]);
120
120
 
121
121
  // Define Bottom Sheet animation
122
122
  var enterVelocityOptions = {
123
- duration: options.in_duration,
123
+ duration: options.inDuration,
124
124
  queue: false,
125
125
  ease: "easeOutCubic",
126
126
  // Handle modal ready callback
@@ -135,8 +135,8 @@
135
135
  }
136
136
  else {
137
137
  $.Velocity.hook($modal, "scaleX", 0.7);
138
- $modal.css({ top: options.starting_top });
139
- $modal.velocity({top: options.ending_top, opacity: 1, scaleX: '1'}, enterVelocityOptions);
138
+ $modal.css({ top: options.startingTop });
139
+ $modal.velocity({top: options.endingTop, opacity: 1, scaleX: '1'}, enterVelocityOptions);
140
140
  }
141
141
 
142
142
  };
@@ -148,7 +148,7 @@
148
148
 
149
149
  // Close Handlers
150
150
  $(document).on('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]', function(e) {
151
- options.starting_top = ($(this).offset().top - $(window).scrollTop()) /1.15;
151
+ options.startingTop = ($(this).offset().top - $(window).scrollTop()) /1.15;
152
152
  openModal($(this));
153
153
  e.preventDefault();
154
154
  }); // done set on click