mtl 1.1.7 → 1.1.8

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 (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
+ }));