mtl 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mtl.js +1 -1
  3. data/app/assets/stylesheets/mtl/all.scss +4 -0
  4. data/lib/mtl/version.rb +2 -2
  5. data/package.json +1 -1
  6. data/vendor/assets/javascripts/materialize/cards.js +13 -3
  7. data/vendor/assets/javascripts/materialize/carousel.js +78 -28
  8. data/vendor/assets/javascripts/materialize/chips.js +27 -27
  9. data/vendor/assets/javascripts/materialize/collapsible.js +34 -11
  10. data/vendor/assets/javascripts/materialize/date_picker/picker.date.js +137 -136
  11. data/vendor/assets/javascripts/materialize/date_picker/picker.js +0 -1
  12. data/vendor/assets/javascripts/materialize/date_picker/picker.time.js +686 -0
  13. data/vendor/assets/javascripts/materialize/dropdown.js +19 -12
  14. data/vendor/assets/javascripts/materialize/forms.js +98 -72
  15. data/vendor/assets/javascripts/materialize/global.js +14 -1
  16. data/vendor/assets/javascripts/materialize/jquery.easing.1.4.js +166 -0
  17. data/vendor/assets/javascripts/materialize/materialbox.js +48 -44
  18. data/vendor/assets/javascripts/materialize/modal.js +2 -1
  19. data/vendor/assets/javascripts/materialize/scrollspy.js +10 -5
  20. data/vendor/assets/javascripts/materialize/sideNav.js +44 -14
  21. data/vendor/assets/javascripts/materialize/slider.js +3 -3
  22. data/vendor/assets/javascripts/materialize/tabs.js +17 -7
  23. data/vendor/assets/javascripts/materialize/tapTarget.js +187 -0
  24. data/vendor/assets/javascripts/materialize/transitions.js +2 -2
  25. data/vendor/assets/javascripts/materialize/waves.js +1 -1
  26. data/vendor/assets/javascripts/pdfobject.js +1 -1
  27. data/vendor/assets/stylesheets/materialize/_buttons.scss +11 -12
  28. data/vendor/assets/stylesheets/materialize/_cards.scss +3 -0
  29. data/vendor/assets/stylesheets/materialize/_carousel.scss +7 -1
  30. data/vendor/assets/stylesheets/materialize/_chips.scss +6 -1
  31. data/vendor/assets/stylesheets/materialize/_collapsible.scss +1 -0
  32. data/vendor/assets/stylesheets/materialize/_color.scss +1 -1
  33. data/vendor/assets/stylesheets/materialize/_dropdown.scss +3 -0
  34. data/vendor/assets/stylesheets/materialize/_global.scss +18 -23
  35. data/vendor/assets/stylesheets/materialize/_grid.scss +44 -35
  36. data/vendor/assets/stylesheets/materialize/_modal.scss +2 -2
  37. data/vendor/assets/stylesheets/materialize/_preloader.scss +3 -3
  38. data/vendor/assets/stylesheets/materialize/_pulse.scss +34 -0
  39. data/vendor/assets/stylesheets/materialize/_sideNav.scss +17 -11
  40. data/vendor/assets/stylesheets/materialize/_tapTarget.scss +103 -0
  41. data/vendor/assets/stylesheets/materialize/_variables.scss +15 -6
  42. data/vendor/assets/stylesheets/materialize/date_picker/_default.date.scss +48 -27
  43. data/vendor/assets/stylesheets/materialize/date_picker/_default.scss +10 -0
  44. data/vendor/assets/stylesheets/materialize/date_picker/_default.time.scss +155 -13
  45. data/vendor/assets/stylesheets/materialize/forms/_input-fields.scss +18 -12
  46. data/vendor/assets/stylesheets/materialize/forms/_range.scss +3 -2
  47. data/vendor/assets/stylesheets/materialize/forms/_switches.scss +30 -17
  48. metadata +7 -7
  49. data/vendor/assets/javascripts/materialize/init.js +0 -211
  50. data/vendor/assets/javascripts/materialize/jquery.easing.1.3.js +0 -205
  51. data/vendor/assets/javascripts/materialize/jquery.timeago.min.js +0 -1
  52. data/vendor/assets/javascripts/materialize/prism.js +0 -8
  53. data/vendor/assets/stylesheets/materialize/_prefixer.scss +0 -384
@@ -20,10 +20,12 @@
20
20
  var originalHeight = 0;
21
21
  var ancestorsChanged;
22
22
  var ancestor;
23
+ var originInlineStyles = origin.attr('style');
23
24
  origin.wrap(placeholder);
24
25
 
25
26
 
26
- origin.on('click', function(){
27
+ // Start click handler
28
+ origin.on('click', function() {
27
29
  var placeholder = origin.parent('.material-placeholder');
28
30
  var windowWidth = window.innerWidth;
29
31
  var windowHeight = window.innerHeight;
@@ -177,25 +179,29 @@
177
179
  ); // End Velocity
178
180
  }
179
181
 
180
- }); // End origin on click
181
-
182
-
183
- // Return on scroll
184
- $(window).scroll(function() {
185
- if (overlayActive) {
186
- returnToOriginal();
187
- }
188
- });
189
-
190
- // Return on ESC
191
- $(document).keyup(function(e) {
182
+ // Handle Exit triggers
183
+ $(window).on('scroll.materialbox', function() {
184
+ if (overlayActive) {
185
+ returnToOriginal();
186
+ }
187
+ });
192
188
 
193
- if (e.keyCode === 27 && doneAnimating === true) { // ESC key
189
+ $(window).on('resize.materialbox', function() {
194
190
  if (overlayActive) {
195
191
  returnToOriginal();
196
192
  }
197
- }
198
- });
193
+ });
194
+
195
+ $(document).on('keyup.materialbox', function(e) {
196
+ // ESC key
197
+ if (e.keyCode === 27 &&
198
+ doneAnimating === true &&
199
+ overlayActive) {
200
+ returnToOriginal();
201
+ }
202
+ });
203
+
204
+ }); // End click handler
199
205
 
200
206
 
201
207
  // This function returns the modaled image to the original spot
@@ -213,6 +219,10 @@
213
219
  $('#materialbox-overlay').velocity("stop", true);
214
220
  $('.materialbox-caption').velocity("stop", true);
215
221
 
222
+ // disable exit handlers
223
+ $(window).off('scroll.materialbox');
224
+ $(document).off('keyup.materialbox');
225
+ $(window).off('resize.materialbox');
216
226
 
217
227
  $('#materialbox-overlay').velocity({opacity: 0}, {
218
228
  duration: outDuration, // Delay prevents animation overlapping
@@ -234,7 +244,28 @@
234
244
  },
235
245
  {
236
246
  duration: outDuration,
237
- queue: false, easing: 'easeOutQuad'
247
+ queue: false, easing: 'easeOutQuad',
248
+ complete: function() {
249
+ placeholder.css({
250
+ height: '',
251
+ width: '',
252
+ position: '',
253
+ top: '',
254
+ left: ''
255
+ });
256
+
257
+ origin.removeAttr('style');
258
+ origin.attr('style', originInlineStyles);
259
+
260
+ // Remove class
261
+ origin.removeClass('active');
262
+ doneAnimating = true;
263
+
264
+ // Remove overflow overrides on ancestors
265
+ if (ancestorsChanged) {
266
+ ancestorsChanged.css('overflow', '');
267
+ }
268
+ }
238
269
  }
239
270
  );
240
271
 
@@ -243,34 +274,7 @@
243
274
  duration: outDuration, // Delay prevents animation overlapping
244
275
  queue: false, easing: 'easeOutQuad',
245
276
  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
277
  $(this).remove();
269
-
270
- // Remove overflow overrides on ancestors
271
- if (ancestorsChanged) {
272
- ancestorsChanged.css('overflow', '');
273
- }
274
278
  }
275
279
  });
276
280
 
@@ -83,7 +83,7 @@
83
83
 
84
84
  var overlayID = _generateID();
85
85
  var $overlay = $('<div class="modal-overlay"></div>');
86
- lStack = (++_stack);
86
+ var lStack = (++_stack);
87
87
 
88
88
  // Store a reference of the overlay
89
89
  $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2);
@@ -164,6 +164,7 @@
164
164
  }); // done return
165
165
  },
166
166
  open : function() {
167
+ methods.init.apply( this, arguments );
167
168
  $(this).trigger('openModal');
168
169
  },
169
170
  close : function() {
@@ -115,12 +115,17 @@
115
115
  offsetRight : number -> offset from right. Default: 0
116
116
  offsetBottom : number -> offset from bottom. Default: 0
117
117
  offsetLeft : number -> offset from left. Default: 0
118
+ activeClass : string -> Class name to be added to the active link. Default: active
118
119
  * @returns {jQuery}
119
120
  */
120
121
  $.scrollSpy = function(selector, options) {
121
122
  var defaults = {
122
123
  throttle: 100,
123
- scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll
124
+ scrollOffset: 200, // offset - 200 allows elements near bottom of page to scroll
125
+ activeClass: 'active',
126
+ getActiveElement: function(id) {
127
+ return 'a[href="#' + id + '"]';
128
+ }
124
129
  };
125
130
  options = $.extend(defaults, options);
126
131
 
@@ -167,7 +172,7 @@
167
172
  var $this = $(this);
168
173
 
169
174
  if (visible[0]) {
170
- $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active');
175
+ $(options.getActiveElement(visible[0].attr('id'))).removeClass(options.activeClass);
171
176
  if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) {
172
177
  visible.unshift($(this));
173
178
  }
@@ -180,7 +185,7 @@
180
185
  }
181
186
 
182
187
 
183
- $('a[href="#' + visible[0].attr('id') + '"]').addClass('active');
188
+ $(options.getActiveElement(visible[0].attr('id'))).addClass(options.activeClass);
184
189
  });
185
190
  selector.on('scrollSpy:exit', function() {
186
191
  visible = $.grep(visible, function(value) {
@@ -188,13 +193,13 @@
188
193
  });
189
194
 
190
195
  if (visible[0]) {
191
- $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active');
196
+ $(options.getActiveElement(visible[0].attr('id'))).removeClass(options.activeClass);
192
197
  var $this = $(this);
193
198
  visible = $.grep(visible, function(value) {
194
199
  return value.attr('id') != $this.attr('id');
195
200
  });
196
201
  if (visible[0]) { // Check if empty
197
- $('a[href="#' + visible[0].attr('id') + '"]').addClass('active');
202
+ $(options.getActiveElement(visible[0].attr('id'))).addClass(options.activeClass);
198
203
  }
199
204
  }
200
205
  });
@@ -6,7 +6,9 @@
6
6
  menuWidth: 300,
7
7
  edge: 'left',
8
8
  closeOnClick: false,
9
- draggable: true
9
+ draggable: true,
10
+ onOpen: null,
11
+ onClose: null
10
12
  };
11
13
  options = $.extend(defaults, options);
12
14
 
@@ -80,7 +82,9 @@
80
82
  // if closeOnClick, then add close event for all a tags in side sideNav
81
83
  if (options.closeOnClick === true) {
82
84
  menu.on("click.itemclick", "a:not(.collapsible-header)", function(){
83
- removeMenu();
85
+ if (!(window.innerWidth > 992 && menu.hasClass('fixed'))){
86
+ removeMenu();
87
+ }
84
88
  });
85
89
  }
86
90
 
@@ -133,7 +137,12 @@
133
137
  }
134
138
  });
135
139
  }
136
- };
140
+
141
+ // Callback
142
+ if (typeof(options.onClose) === 'function') {
143
+ options.onClose.call(this, menu);
144
+ }
145
+ }
137
146
 
138
147
 
139
148
 
@@ -150,7 +159,7 @@
150
159
 
151
160
  $dragTarget.hammer({
152
161
  prevent_default: false
153
- }).bind('pan', function(e) {
162
+ }).on('pan', function(e) {
154
163
 
155
164
  if (e.gesture.pointerType == "touch") {
156
165
 
@@ -159,6 +168,11 @@
159
168
  var y = e.gesture.center.y;
160
169
  var velocityX = e.gesture.velocityX;
161
170
 
171
+ // Vertical scroll bugfix
172
+ if (x === 0 && y === 0) {
173
+ return;
174
+ }
175
+
162
176
  // Disable Scrolling
163
177
  var $body = $('body');
164
178
  var $overlay = $('#sidenav-overlay');
@@ -172,6 +186,12 @@
172
186
  $overlay.css('opacity', 0).click( function(){
173
187
  removeMenu();
174
188
  });
189
+
190
+ // Run 'onOpen' when sidenav is opened via touch/swipe if applicable
191
+ if (typeof(options.onOpen) === 'function') {
192
+ options.onOpen.call(this, menu);
193
+ }
194
+
175
195
  $('body').append($overlay);
176
196
  }
177
197
 
@@ -218,10 +238,10 @@
218
238
  }
219
239
  }
220
240
 
221
- }).bind('panend', function(e) {
241
+ }).on('panend', function(e) {
222
242
 
223
243
  if (e.gesture.pointerType == "touch") {
224
- var $overlay = $('<div id="sidenav-overlay"></div>');
244
+ var $overlay = $('#sidenav-overlay');
225
245
  var velocityX = e.gesture.velocityX;
226
246
  var x = e.gesture.center.x;
227
247
  var leftPos = x - options.menuWidth;
@@ -256,6 +276,11 @@
256
276
  menu.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'});
257
277
  $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
258
278
  complete: function () {
279
+ // Run 'onClose' when sidenav is closed via touch/swipe if applicable
280
+ if (typeof(options.onClose) === 'function') {
281
+ options.onClose.call(this, menu);
282
+ }
283
+
259
284
  $(this).remove();
260
285
  }});
261
286
  $dragTarget.css({width: '10px', right: '', left: 0});
@@ -330,14 +355,19 @@
330
355
  $(this).remove();
331
356
  } });
332
357
 
333
- });
334
- $('body').append($overlay);
335
- $overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad',
336
- complete: function () {
337
- menuOut = true;
338
- panning = false;
339
- }
340
- });
358
+ });
359
+ $('body').append($overlay);
360
+ $overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad',
361
+ complete: function () {
362
+ menuOut = true;
363
+ panning = false;
364
+ }
365
+ });
366
+
367
+ // Callback
368
+ if (typeof(options.onOpen) === 'function') {
369
+ options.onOpen.call(this, menu);
370
+ }
341
371
  }
342
372
 
343
373
  return false;
@@ -96,7 +96,7 @@
96
96
  $slides.find('img').each(function () {
97
97
  var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
98
98
  if ($(this).attr('src') !== placeholderBase64) {
99
- $(this).css('background-image', 'url(' + $(this).attr('src') + ')' );
99
+ $(this).css('background-image', 'url("' + $(this).attr('src') + '")' );
100
100
  $(this).attr('src', placeholderBase64);
101
101
  }
102
102
  });
@@ -171,7 +171,7 @@
171
171
 
172
172
  $this.hammer({
173
173
  prevent_default: false
174
- }).bind('pan', function(e) {
174
+ }).on('pan', function(e) {
175
175
  if (e.gesture.pointerType === "touch") {
176
176
 
177
177
  // reset interval
@@ -219,7 +219,7 @@
219
219
 
220
220
  }
221
221
 
222
- }).bind('panend', function(e) {
222
+ }).on('panend', function(e) {
223
223
  if (e.gesture.pointerType === "touch") {
224
224
 
225
225
  $curr_slide = $slider.find('.active');
@@ -8,8 +8,11 @@
8
8
  responsiveThreshold: Infinity, // breakpoint for swipeable
9
9
  };
10
10
  options = $.extend(defaults, options);
11
+ var namespace = Materialize.objectSelectorString($(this));
11
12
 
12
- return this.each(function() {
13
+ return this.each(function(i) {
14
+
15
+ var uniqueNamespace = namespace+i;
13
16
 
14
17
  // For each set of tabs, we want to keep track of
15
18
  // which tab is active and its associated content
@@ -31,13 +34,13 @@
31
34
  // Finds right attribute for indicator based on active tab.
32
35
  // el: jQuery Object
33
36
  var calcRightPos = function(el) {
34
- return $tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft();
37
+ return Math.ceil($tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft());
35
38
  };
36
39
 
37
40
  // Finds left attribute for indicator based on active tab.
38
41
  // el: jQuery Object
39
42
  var calcLeftPos = function(el) {
40
- return el.position().left + $this.scrollLeft();
43
+ return Math.floor(el.position().left + $this.scrollLeft());
41
44
  };
42
45
 
43
46
  // Animates Indicator to active tab.
@@ -85,7 +88,7 @@
85
88
 
86
89
  // append indicator then set indicator width to tab width
87
90
  if (!$this.find('.indicator').length) {
88
- $this.append('<div class="indicator"></div>');
91
+ $this.append('<li class="indicator"></li>');
89
92
  }
90
93
  $indicator = $this.find('.indicator');
91
94
 
@@ -100,7 +103,7 @@
100
103
  $indicator.css({"left": calcLeftPos($active) });
101
104
  }, 0);
102
105
  }
103
- $(window).resize(function () {
106
+ $(window).off('resize.tabs-'+uniqueNamespace).on('resize.tabs-'+uniqueNamespace, function () {
104
107
  $tabs_width = $this.width();
105
108
  $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
106
109
  if (index < 0) {
@@ -131,6 +134,9 @@
131
134
  index = $tabs_wrapper.index(item);
132
135
  $active = $links.eq(index);
133
136
  animateIndicator(prev_index);
137
+ if (typeof(options.onShow) === "function") {
138
+ options.onShow.call($this[0], $content);
139
+ }
134
140
  }
135
141
  },
136
142
  });
@@ -143,7 +149,7 @@
143
149
 
144
150
 
145
151
  // Bind the click event handler
146
- $this.on('click', 'a', function(e) {
152
+ $this.off('click.tabs').on('click.tabs', 'a', function(e) {
147
153
  if ($(this).parent().hasClass('disabled')) {
148
154
  e.preventDefault();
149
155
  return;
@@ -181,7 +187,11 @@
181
187
  // Swap content
182
188
  if (options.swipeable) {
183
189
  if ($tabs_content.length) {
184
- $tabs_content.carousel('set', index);
190
+ $tabs_content.carousel('set', index, function() {
191
+ if (typeof(options.onShow) === "function") {
192
+ options.onShow.call($this[0], $content);
193
+ }
194
+ });
185
195
  }
186
196
  } else {
187
197
  if ($content !== undefined) {
@@ -0,0 +1,187 @@
1
+ (function ($) {
2
+
3
+ var methods = {
4
+ init: function (options) {
5
+ return this.each(function() {
6
+ var origin = $('#'+$(this).attr('data-activates'));
7
+ var screen = $('body');
8
+
9
+ // Creating tap target
10
+ var tapTargetEl = $(this);
11
+ var tapTargetWrapper = tapTargetEl.parent('.tap-target-wrapper');
12
+ var tapTargetWave = tapTargetWrapper.find('.tap-target-wave');
13
+ var tapTargetOriginEl = tapTargetWrapper.find('.tap-target-origin');
14
+ var tapTargetContentEl = tapTargetEl.find('.tap-target-content');
15
+
16
+ // Creating wrapper
17
+ if (!tapTargetWrapper.length) {
18
+ tapTargetWrapper = tapTargetEl.wrap($('<div class="tap-target-wrapper"></div>')).parent();
19
+ }
20
+
21
+ // Creating content
22
+ if (!tapTargetContentEl.length) {
23
+ tapTargetContentEl = $('<div class="tap-target-content"></div>');
24
+ tapTargetEl.append(tapTargetContentEl);
25
+ }
26
+
27
+ // Creating foreground wave
28
+ if (!tapTargetWave.length) {
29
+ tapTargetWave = $('<div class="tap-target-wave"></div>');
30
+
31
+ // Creating origin
32
+ if (!tapTargetOriginEl.length) {
33
+ tapTargetOriginEl = origin.clone(true, true);
34
+ tapTargetOriginEl.addClass('tap-target-origin');
35
+ tapTargetOriginEl.removeAttr('id');
36
+ tapTargetOriginEl.removeAttr('style');
37
+ tapTargetWave.append(tapTargetOriginEl);
38
+ }
39
+
40
+ tapTargetWrapper.append(tapTargetWave);
41
+ }
42
+
43
+ // Open
44
+ var openTapTarget = function() {
45
+ if (tapTargetWrapper.is('.open')) {
46
+ return;
47
+ }
48
+
49
+ // Adding open class
50
+ tapTargetWrapper.addClass('open');
51
+
52
+ setTimeout(function() {
53
+ tapTargetOriginEl.off('click.tapTarget').on('click.tapTarget', function(e) {
54
+ closeTapTarget();
55
+ tapTargetOriginEl.off('click.tapTarget');
56
+ });
57
+
58
+ $(document).off('click.tapTarget').on('click.tapTarget', function(e) {
59
+ closeTapTarget();
60
+ $(document).off('click.tapTarget');
61
+ });
62
+
63
+ var throttledCalc = Materialize.throttle(function() {
64
+ calculateTapTarget();
65
+ }, 200);
66
+ $(window).off('resize.tapTarget').on('resize.tapTarget', throttledCalc);
67
+ }, 0);
68
+ };
69
+
70
+ // Close
71
+ var closeTapTarget = function(){
72
+ if (!tapTargetWrapper.is('.open')) {
73
+ return;
74
+ }
75
+
76
+ tapTargetWrapper.removeClass('open');
77
+ tapTargetOriginEl.off('click.tapTarget')
78
+ $(document).off('click.tapTarget');
79
+ $(window).off('resize.tapTarget');
80
+ };
81
+
82
+ // Pre calculate
83
+ var calculateTapTarget = function() {
84
+ // Element or parent is fixed position?
85
+ var isFixed = origin.css('position') === 'fixed';
86
+ if (!isFixed) {
87
+ var parents = origin.parents();
88
+ for(var i = 0; i < parents.length; i++) {
89
+ isFixed = $(parents[i]).css('position') == 'fixed';
90
+ if (isFixed) {
91
+ break;
92
+ }
93
+ }
94
+ }
95
+
96
+ // Calculating origin
97
+ var originWidth = origin.outerWidth();
98
+ var originHeight = origin.outerHeight();
99
+ var originTop = isFixed ? origin.offset().top - $(document).scrollTop() : origin.offset().top;
100
+ var originLeft = isFixed ? origin.offset().left - $(document).scrollLeft() : origin.offset().left;
101
+
102
+ // Calculating screen
103
+ var windowWidth = $(window).width();
104
+ var windowHeight = $(window).height();
105
+ var centerX = windowWidth / 2;
106
+ var centerY = windowHeight / 2;
107
+ var isLeft = originLeft <= centerX;
108
+ var isRight = originLeft > centerX;
109
+ var isTop = originTop <= centerY;
110
+ var isBottom = originTop > centerY;
111
+ var isCenterX = originLeft >= windowWidth*0.25 && originLeft <= windowWidth*0.75;
112
+ var isCenterY = originTop >= windowHeight*0.25 && originTop <= windowHeight*0.75;
113
+
114
+ // Calculating tap target
115
+ var tapTargetWidth = tapTargetEl.outerWidth();
116
+ var tapTargetHeight = tapTargetEl.outerHeight();
117
+ var tapTargetTop = originTop + originHeight/2 - tapTargetHeight/2;
118
+ var tapTargetLeft = originLeft + originWidth/2 - tapTargetWidth/2;
119
+ var tapTargetPosition = isFixed ? 'fixed' : 'absolute';
120
+
121
+ // Calculating content
122
+ var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth/2 + originWidth;
123
+ var tapTargetTextHeight = tapTargetHeight/2;
124
+ var tapTargetTextTop = isTop ? tapTargetHeight/2 : 0;
125
+ var tapTargetTextBottom = 0;
126
+ var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth/2 - originWidth : 0;
127
+ var tapTargetTextRight = 0;
128
+ var tapTargetTextPadding = originWidth;
129
+ var tapTargetTextAlign = isBottom ? 'bottom' : 'top';
130
+
131
+ // Calculating wave
132
+ var tapTargetWaveWidth = originWidth > originHeight ? originWidth*2 : originWidth*2;
133
+ var tapTargetWaveHeight = tapTargetWaveWidth;
134
+ var tapTargetWaveTop = tapTargetHeight/2 - tapTargetWaveHeight/2;
135
+ var tapTargetWaveLeft = tapTargetWidth/2 - tapTargetWaveWidth/2;
136
+
137
+ // Setting tap target
138
+ var tapTargetWrapperCssObj = {};
139
+ tapTargetWrapperCssObj.top = isTop ? tapTargetTop : '';
140
+ tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth : '';
141
+ tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight : '';
142
+ tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft : '';
143
+ tapTargetWrapperCssObj.position = tapTargetPosition;
144
+ tapTargetWrapper.css(tapTargetWrapperCssObj);
145
+
146
+ // Setting content
147
+ tapTargetContentEl.css({
148
+ width: tapTargetTextWidth,
149
+ height: tapTargetTextHeight,
150
+ top: tapTargetTextTop,
151
+ right: tapTargetTextRight,
152
+ bottom: tapTargetTextBottom,
153
+ left: tapTargetTextLeft,
154
+ padding: tapTargetTextPadding,
155
+ verticalAlign: tapTargetTextAlign
156
+ });
157
+
158
+ // Setting wave
159
+ tapTargetWave.css({
160
+ top: tapTargetWaveTop,
161
+ left: tapTargetWaveLeft,
162
+ width: tapTargetWaveWidth,
163
+ height: tapTargetWaveHeight
164
+ });
165
+ }
166
+
167
+ if (options == 'open') {
168
+ calculateTapTarget();
169
+ openTapTarget();
170
+ }
171
+
172
+ if (options == 'close')
173
+ closeTapTarget();
174
+ });
175
+ },
176
+ open: function() {},
177
+ close: function() {}
178
+ };
179
+
180
+ $.fn.tapTarget = function(methodOrOptions) {
181
+ if (methods[methodOrOptions] || typeof methodOrOptions === 'object')
182
+ return methods.init.apply( this, arguments );
183
+
184
+ $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tap-target' );
185
+ };
186
+
187
+ }( jQuery ));
@@ -86,7 +86,7 @@
86
86
  $('.dismissable').each(function() {
87
87
  $(this).hammer({
88
88
  prevent_default: false
89
- }).bind('pan', function(e) {
89
+ }).on('pan', function(e) {
90
90
  if (e.gesture.pointerType === "touch") {
91
91
  var $this = $(this);
92
92
  var direction = e.gesture.direction;
@@ -106,7 +106,7 @@
106
106
  swipeRight = true;
107
107
  }
108
108
  }
109
- }).bind('panend', function(e) {
109
+ }).on('panend', function(e) {
110
110
  // Reset if collection is moved back into original position
111
111
  if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) {
112
112
  swipeRight = false;
@@ -262,7 +262,7 @@
262
262
  if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) {
263
263
  element = target;
264
264
  break;
265
- } else if (target.classList.contains('waves-effect')) {
265
+ } else if (target.className.indexOf('waves-effect') !== -1) {
266
266
  element = target;
267
267
  break;
268
268
  }
@@ -251,4 +251,4 @@
251
251
  supportsPDFs: (function (){ return supportsPDFs; })()
252
252
  };
253
253
 
254
- }));
254
+ }));