materialize-sass 1.0.0.beta → 1.0.0.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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/README.md +2 -2
  4. data/Rakefile +1 -1
  5. data/assets/javascripts/materialize/autocomplete.js +94 -37
  6. data/assets/javascripts/materialize/buttons.js +4 -6
  7. data/assets/javascripts/materialize/carousel.js +9 -9
  8. data/assets/javascripts/materialize/chips.js +2 -2
  9. data/assets/javascripts/materialize/collapsible.js +13 -10
  10. data/assets/javascripts/materialize/datepicker.js +27 -44
  11. data/assets/javascripts/materialize/dropdown.js +38 -15
  12. data/assets/javascripts/materialize/extras/nouislider.js +1 -1
  13. data/assets/javascripts/materialize/extras/nouislider.min.js +1 -1
  14. data/assets/javascripts/materialize/forms.js +7 -8
  15. data/assets/javascripts/materialize/global.js +28 -11
  16. data/assets/javascripts/materialize/materialbox.js +12 -7
  17. data/assets/javascripts/materialize/modal.js +8 -4
  18. data/assets/javascripts/materialize/parallax.js +1 -1
  19. data/assets/javascripts/materialize/pushpin.js +8 -3
  20. data/assets/javascripts/materialize/range.js +2 -19
  21. data/assets/javascripts/materialize/select.js +57 -33
  22. data/assets/javascripts/materialize/sidenav.js +5 -3
  23. data/assets/javascripts/materialize/slider.js +2 -1
  24. data/assets/javascripts/materialize/tabs.js +13 -8
  25. data/assets/javascripts/materialize/timepicker.js +22 -5
  26. data/assets/javascripts/materialize/toasts.js +4 -3
  27. data/assets/javascripts/materialize/tooltip.js +14 -8
  28. data/assets/javascripts/materialize.js +804 -685
  29. data/assets/stylesheets/materialize/components/_buttons.scss +2 -1
  30. data/assets/stylesheets/materialize/components/_collapsible.scss +8 -1
  31. data/assets/stylesheets/materialize/components/_datepicker.scss +5 -1
  32. data/assets/stylesheets/materialize/components/_dropdown.scss +10 -1
  33. data/assets/stylesheets/materialize/components/_global.scss +2 -0
  34. data/assets/stylesheets/materialize/components/_modal.scss +4 -0
  35. data/assets/stylesheets/materialize/components/_sidenav.scss +9 -17
  36. data/assets/stylesheets/materialize/components/_toast.scss +0 -1
  37. data/assets/stylesheets/materialize/components/_variables.scss +1 -0
  38. data/assets/stylesheets/materialize/components/forms/_input-fields.scss +2 -0
  39. data/assets/stylesheets/materialize/components/forms/_range.scss +3 -3
  40. data/assets/stylesheets/materialize/components/forms/_select.scss +19 -7
  41. data/assets/stylesheets/materialize/extras/nouislider.css +1 -1
  42. data/lib/materialize-sass/engine.rb +4 -1
  43. data/lib/materialize-sass/version.rb +1 -1
  44. data/lib/materialize-sass.rb +3 -8
  45. data/materialize-sass.gemspec +4 -5
  46. metadata +18 -32
@@ -59,7 +59,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
59
59
  _this.originalWidth = 0;
60
60
  _this.originalHeight = 0;
61
61
  _this.originInlineStyles = _this.$el.attr('style');
62
- _this.caption = _this.el.getAttribute('data-caption') || "";
62
+ _this.caption = _this.el.getAttribute('data-caption') || '';
63
63
 
64
64
  // Wrap
65
65
  _this.$el.before(_this.placeholder);
@@ -79,6 +79,11 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
79
79
  value: function destroy() {
80
80
  this._removeEventHandlers();
81
81
  this.el.M_Materialbox = undefined;
82
+
83
+ // Unwrap image
84
+ $(this.placeholder).after(this.el).remove();
85
+
86
+ this.$el.removeAttr('style');
82
87
  }
83
88
 
84
89
  /**
@@ -254,7 +259,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
254
259
  }
255
260
 
256
261
  _this3.$el.removeAttr('style');
257
- _this3.$el.attr('style', _this3.originInlineStyles);
262
+ _this3.originInlineStyles && _this3.$el.attr('style', _this3.originInlineStyles);
258
263
 
259
264
  // Remove class
260
265
  _this3.$el.removeClass('active');
@@ -284,7 +289,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
284
289
  value: function _updateVars() {
285
290
  this.windowWidth = window.innerWidth;
286
291
  this.windowHeight = window.innerHeight;
287
- this.caption = this.el.getAttribute('data-caption') || "";
292
+ this.caption = this.el.getAttribute('data-caption') || '';
288
293
  }
289
294
 
290
295
  /**
@@ -373,14 +378,14 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
373
378
  });
374
379
 
375
380
  // Add and animate caption if it exists
376
- if (this.caption !== "") {
381
+ if (this.caption !== '') {
377
382
  if (this.$photocaption) {
378
383
  anim.remove(this.$photoCaption[0]);
379
384
  }
380
385
  this.$photoCaption = $('<div class="materialbox-caption"></div>');
381
386
  this.$photoCaption.text(this.caption);
382
387
  $('body').append(this.$photoCaption);
383
- this.$photoCaption.css({ "display": "inline" });
388
+ this.$photoCaption.css({ display: 'inline' });
384
389
 
385
390
  anim({
386
391
  targets: this.$photoCaption[0],
@@ -439,7 +444,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
439
444
  anim.remove(this.el);
440
445
  anim.remove(this.$overlay[0]);
441
446
 
442
- if (this.caption !== "") {
447
+ if (this.caption !== '') {
443
448
  anim.remove(this.$photoCaption[0]);
444
449
  }
445
450
 
@@ -462,7 +467,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
462
467
  this._animateImageOut();
463
468
 
464
469
  // Remove Caption + reset css settings on image
465
- if (this.caption !== "") {
470
+ if (this.caption !== '') {
466
471
  anim({
467
472
  targets: this.$photoCaption[0],
468
473
  opacity: 0,
@@ -72,6 +72,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
72
72
  _this._openingTrigger = undefined;
73
73
  _this.$overlay = $('<div class="modal-overlay"></div>');
74
74
  _this.el.tabIndex = 0;
75
+ _this._nthModalOpened = 0;
75
76
 
76
77
  Modal._count++;
77
78
  _this._setupEventHandlers();
@@ -191,7 +192,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
191
192
  }, {
192
193
  key: '_handleFocus',
193
194
  value: function _handleFocus(e) {
194
- if (!this.el.contains(e.target)) {
195
+ // Only trap focus if this modal is the last model opened (prevents loops in nested modals).
196
+ if (!this.el.contains(e.target) && this._nthModalOpened === Modal._modalsOpen) {
195
197
  this.el.focus();
196
198
  }
197
199
  }
@@ -249,8 +251,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
249
251
  $.extend(enterAnimOptions, {
250
252
  top: [this.options.startingTop, this.options.endingTop],
251
253
  opacity: 1,
252
- scaleX: [.8, 1],
253
- scaleY: [.8, 1]
254
+ scaleX: [0.8, 1],
255
+ scaleY: [0.8, 1]
254
256
  });
255
257
  anim(enterAnimOptions);
256
258
  }
@@ -324,6 +326,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
324
326
 
325
327
  this.isOpen = true;
326
328
  Modal._modalsOpen++;
329
+ this._nthModalOpened = Modal._modalsOpen;
327
330
 
328
331
  // Set Z-Index based on number of currently open modals
329
332
  this.$overlay[0].style.zIndex = 1000 + Modal._modalsOpen * 2;
@@ -374,6 +377,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
374
377
 
375
378
  this.isOpen = false;
376
379
  Modal._modalsOpen--;
380
+ this._nthModalOpened = 0;
377
381
 
378
382
  // Call onCloseStart callback
379
383
  if (typeof this.options.onCloseStart === 'function') {
@@ -389,7 +393,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
389
393
 
390
394
  if (this.options.dismissible) {
391
395
  document.removeEventListener('keydown', this._handleKeydownBound);
392
- document.removeEventListener('focus', this._handleFocusBound);
396
+ document.removeEventListener('focus', this._handleFocusBound, true);
393
397
  }
394
398
 
395
399
  anim.remove(this.el);
@@ -36,7 +36,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
36
36
  _this.$img = _this.$el.find('img').first();
37
37
  _this.$img.each(function () {
38
38
  var el = this;
39
- if (el.complete) $(el).trigger("load");
39
+ if (el.complete) $(el).trigger('load');
40
40
  });
41
41
 
42
42
  _this._updateParallax();
@@ -62,11 +62,14 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
62
62
  value: function destroy() {
63
63
  this.el.style.top = null;
64
64
  this._removePinClasses();
65
- this._removeEventHandlers();
66
65
 
67
66
  // Remove pushpin Inst
68
67
  var index = Pushpin._pushpins.indexOf(this);
69
68
  Pushpin._pushpins.splice(index, 1);
69
+ if (Pushpin._pushpins.length === 0) {
70
+ this._removeEventHandlers();
71
+ }
72
+ this.el.M_Pushpin = undefined;
70
73
  }
71
74
  }, {
72
75
  key: '_setupEventHandlers',
@@ -85,7 +88,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
85
88
 
86
89
  if (this.options.top <= scrolled && this.options.bottom >= scrolled && !this.el.classList.contains('pinned')) {
87
90
  this._removePinClasses();
88
-
89
91
  this.el.style.top = this.options.offset + 'px';
90
92
  this.el.classList.add('pinned');
91
93
 
@@ -122,7 +124,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
122
124
  }, {
123
125
  key: '_removePinClasses',
124
126
  value: function _removePinClasses() {
125
- this.el.classList.remove('pin-top', 'pinned', 'pin-bottom');
127
+ // IE 11 bug (can't remove multiple classes in one line)
128
+ this.el.classList.remove('pin-top');
129
+ this.el.classList.remove('pinned');
130
+ this.el.classList.remove('pin-bottom');
126
131
  }
127
132
  }], [{
128
133
  key: 'init',
@@ -70,14 +70,12 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
70
70
  key: '_setupEventHandlers',
71
71
  value: function _setupEventHandlers() {
72
72
  this._handleRangeChangeBound = this._handleRangeChange.bind(this);
73
- this._handleRangeFocusBound = this._handleRangeFocus.bind(this);
74
73
  this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this);
75
74
  this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this);
76
75
  this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this);
77
76
  this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this);
78
77
 
79
78
  this.el.addEventListener('change', this._handleRangeChangeBound);
80
- this.el.addEventListener('focus', this._handleRangeFocusBound);
81
79
 
82
80
  this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstartBound);
83
81
  this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstartBound);
@@ -102,7 +100,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
102
100
  key: '_removeEventHandlers',
103
101
  value: function _removeEventHandlers() {
104
102
  this.el.removeEventListener('change', this._handleRangeChangeBound);
105
- this.el.removeEventListener('focus', this._handleRangeFocusBound);
106
103
 
107
104
  this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstartBound);
108
105
  this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstartBound);
@@ -137,19 +134,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
137
134
  $(this.thumb).addClass('active').css('left', offsetLeft + 'px');
138
135
  }
139
136
 
140
- /**
141
- * Handle Range Focus
142
- * @param {Event} e
143
- */
144
-
145
- }, {
146
- key: '_handleRangeFocus',
147
- value: function _handleRangeFocus() {
148
- if (M.tabPressed) {
149
- this.$el.addClass('focused');
150
- }
151
- }
152
-
153
137
  /**
154
138
  * Handle Range Mousedown and Touchstart
155
139
  * @param {Event} e
@@ -211,7 +195,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
211
195
  key: '_handleRangeBlurMouseoutTouchleave',
212
196
  value: function _handleRangeBlurMouseoutTouchleave() {
213
197
  if (!this._mousedown) {
214
- this.$el.removeClass('focused');
215
198
  var paddingLeft = parseInt(this.$el.css('padding-left'));
216
199
  var marginLeft = 7 + paddingLeft + 'px';
217
200
 
@@ -286,8 +269,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
286
269
  key: '_calcRangeOffset',
287
270
  value: function _calcRangeOffset() {
288
271
  var width = this.$el.width() - 15;
289
- var max = parseFloat(this.$el.attr('max'));
290
- var min = parseFloat(this.$el.attr('min'));
272
+ var max = parseFloat(this.$el.attr('max')) || 100; // Range default max
273
+ var min = parseFloat(this.$el.attr('min')) || 0; // Range default min
291
274
  var percent = (parseFloat(this.$el.val()) - min) / (max - min);
292
275
  return percent * width;
293
276
  }
@@ -142,19 +142,21 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
142
142
  placeholderOption.find('input[type="checkbox"]').prop('checked', false);
143
143
  this._toggleEntryFromArray(placeholderOption[0].id);
144
144
  }
145
-
146
- var checkbox = $(option).find('input[type="checkbox"]');
147
- checkbox.prop('checked', !checkbox.prop('checked'));
148
145
  selected = this._toggleEntryFromArray(key);
149
146
  } else {
150
- $(this.dropdownOptions).find('li').removeClass('active');
151
- $(option).toggleClass('active');
152
- this.input.value = option.textContent;
147
+ $(this.dropdownOptions).find('li').removeClass('selected');
148
+ $(option).toggleClass('selected', selected);
149
+ this._keysSelected = {};
150
+ this._keysSelected[option.id] = true;
153
151
  }
154
152
 
155
- this._activateOption($(this.dropdownOptions), option);
156
- $(this._valueDict[key].el).prop('selected', selected);
157
- this.$el.trigger('change');
153
+ // Set selected on original select option
154
+ // Only trigger if selected state changed
155
+ var prevSelected = $(this._valueDict[key].el).prop('selected');
156
+ if (prevSelected !== selected) {
157
+ $(this._valueDict[key].el).prop('selected', selected);
158
+ this.$el.trigger('change');
159
+ }
158
160
  }
159
161
 
160
162
  e.stopPropagation();
@@ -183,9 +185,12 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
183
185
  var _this4 = this;
184
186
 
185
187
  this.wrapper = document.createElement('div');
186
- $(this.wrapper).addClass('select-wrapper' + ' ' + this.options.classes);
188
+ $(this.wrapper).addClass('select-wrapper ' + this.options.classes);
187
189
  this.$el.before($(this.wrapper));
188
- this.wrapper.appendChild(this.el);
190
+ // Move actual select element into overflow hidden wrapper
191
+ var $hideSelect = $('<div class="hide-select"></div>');
192
+ $(this.wrapper).append($hideSelect);
193
+ $hideSelect[0].appendChild(this.el);
189
194
 
190
195
  if (this.el.disabled) {
191
196
  this.wrapper.classList.add('disabled');
@@ -223,7 +228,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
223
228
  });
224
229
  }
225
230
 
226
- this.$el.after(this.dropdownOptions);
231
+ $(this.wrapper).append(this.dropdownOptions);
227
232
 
228
233
  // Add input dropdown
229
234
  this.input = document.createElement('input');
@@ -235,24 +240,40 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
235
240
  $(this.input).prop('disabled', 'true');
236
241
  }
237
242
 
238
- this.$el.before(this.input);
243
+ $(this.wrapper).prepend(this.input);
239
244
  this._setValueToInput();
240
245
 
241
246
  // Add caret
242
247
  var dropdownIcon = $('<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
243
- this.$el.before(dropdownIcon[0]);
248
+ $(this.wrapper).prepend(dropdownIcon[0]);
244
249
 
245
250
  // Initialize dropdown
246
251
  if (!this.el.disabled) {
247
252
  var dropdownOptions = $.extend({}, this.options.dropdownOptions);
253
+ var userOnOpenEnd = dropdownOptions.onOpenEnd;
248
254
 
249
255
  // Add callback for centering selected option when dropdown content is scrollable
250
256
  dropdownOptions.onOpenEnd = function (el) {
251
257
  var selectedOption = $(_this4.dropdownOptions).find('.selected').first();
252
- if (_this4.dropdown.isScrollable && selectedOption.length) {
253
- var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this4.dropdownOptions.getBoundingClientRect().top; // scroll to selected option
254
- scrollOffset -= _this4.dropdownOptions.clientHeight / 2; // center in dropdown
255
- _this4.dropdownOptions.scrollTop = scrollOffset;
258
+
259
+ if (selectedOption.length) {
260
+ // Focus selected option in dropdown
261
+ M.keyDown = true;
262
+ _this4.dropdown.focusedIndex = selectedOption.index();
263
+ _this4.dropdown._focusFocusedItem();
264
+ M.keyDown = false;
265
+
266
+ // Handle scrolling to selected option
267
+ if (_this4.dropdown.isScrollable) {
268
+ var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this4.dropdownOptions.getBoundingClientRect().top; // scroll to selected option
269
+ scrollOffset -= _this4.dropdownOptions.clientHeight / 2; // center in dropdown
270
+ _this4.dropdownOptions.scrollTop = scrollOffset;
271
+ }
272
+ }
273
+
274
+ // Handle user declared onOpenEnd if needed
275
+ if (userOnOpenEnd && typeof userOnOpenEnd === 'function') {
276
+ userOnOpenEnd.call(_this4.dropdown, _this4.el);
256
277
  }
257
278
  };
258
279
 
@@ -322,7 +343,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
322
343
 
323
344
  // add icons
324
345
  var iconUrl = option.getAttribute('data-icon');
325
- var classes = option.getAttribute('class');
326
346
  if (!!iconUrl) {
327
347
  var imgEl = $('<img alt="" src="' + iconUrl + '">');
328
348
  liEl.prepend(imgEl);
@@ -343,49 +363,54 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
343
363
  key: '_toggleEntryFromArray',
344
364
  value: function _toggleEntryFromArray(key) {
345
365
  var notAdded = !this._keysSelected.hasOwnProperty(key);
366
+ var $optionLi = $(this._valueDict[key].optionEl);
367
+
346
368
  if (notAdded) {
347
369
  this._keysSelected[key] = true;
348
370
  } else {
349
371
  delete this._keysSelected[key];
350
372
  }
351
373
 
352
- $(this._valueDict[key].optionEl).toggleClass('active');
374
+ $optionLi.toggleClass('selected', notAdded);
375
+
376
+ // Set checkbox checked value
377
+ $optionLi.find('input[type="checkbox"]').prop('checked', notAdded);
353
378
 
354
379
  // use notAdded instead of true (to detect if the option is selected or not)
355
- $(this._valueDict[key].el).prop('selected', notAdded);
380
+ $optionLi.prop('selected', notAdded);
356
381
 
357
382
  return notAdded;
358
383
  }
359
384
 
360
385
  /**
361
- * Set value to input
386
+ * Set text value to input
362
387
  */
363
388
 
364
389
  }, {
365
390
  key: '_setValueToInput',
366
391
  value: function _setValueToInput() {
367
- var value = '';
392
+ var values = [];
368
393
  var options = this.$el.find('option');
369
394
 
370
395
  options.each(function (el) {
371
396
  if ($(el).prop('selected')) {
372
397
  var text = $(el).text();
373
- value === '' ? value += text : value += ', ' + text;
398
+ values.push(text);
374
399
  }
375
400
  });
376
401
 
377
- if (value === '') {
402
+ if (!values.length) {
378
403
  var firstDisabled = this.$el.find('option:disabled').eq(0);
379
- if (firstDisabled.length) {
380
- value = firstDisabled.text();
404
+ if (firstDisabled.length && firstDisabled[0].value === '') {
405
+ values.push(firstDisabled.text());
381
406
  }
382
407
  }
383
408
 
384
- this.input.value = value;
409
+ this.input.value = values.join(', ');
385
410
  }
386
411
 
387
412
  /**
388
- * Set selected state of dropdown too match actual select element
413
+ * Set selected state of dropdown to match actual select element
389
414
  */
390
415
 
391
416
  }, {
@@ -395,12 +420,12 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
395
420
 
396
421
  for (var key in this._valueDict) {
397
422
  var option = this._valueDict[key];
398
- if ($(option.el).prop('selected')) {
399
- $(option.optionEl).find('input[type="checkbox"]').prop("checked", true);
423
+ var optionIsSelected = $(option.el).prop('selected');
424
+ $(option.optionEl).find('input[type="checkbox"]').prop('checked', optionIsSelected);
425
+ if (optionIsSelected) {
400
426
  this._activateOption($(this.dropdownOptions), $(option.optionEl));
401
427
  this._keysSelected[key] = true;
402
428
  } else {
403
- $(option.optionEl).find('input[type="checkbox"]').prop("checked", false);
404
429
  $(option.optionEl).removeClass('selected');
405
430
  }
406
431
  }
@@ -419,7 +444,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
419
444
  if (!this.isMultiple) {
420
445
  collection.find('li.selected').removeClass('selected');
421
446
  }
422
-
423
447
  var option = $(newOption);
424
448
  option.addClass('selected');
425
449
  }
@@ -99,9 +99,11 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
99
99
  */
100
100
  value: function destroy() {
101
101
  this._removeEventHandlers();
102
+ this._enableBodyScrolling();
102
103
  this._overlay.parentNode.removeChild(this._overlay);
103
104
  this.dragTarget.parentNode.removeChild(this.dragTarget);
104
105
  this.el.M_Sidenav = undefined;
106
+ this.el.style.transform = '';
105
107
 
106
108
  var index = Sidenav._sidenavs.indexOf(this);
107
109
  if (index >= 0) {
@@ -290,7 +292,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
290
292
  key: '_handleDragTargetRelease',
291
293
  value: function _handleDragTargetRelease() {
292
294
  if (this.isDragged) {
293
- if (this.percentOpen > .5) {
295
+ if (this.percentOpen > 0.2) {
294
296
  this.open();
295
297
  } else {
296
298
  this._animateOut();
@@ -357,7 +359,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
357
359
  key: '_handleCloseRelease',
358
360
  value: function _handleCloseRelease() {
359
361
  if (this.isOpen && this.isDragged) {
360
- if (this.percentOpen > .5) {
362
+ if (this.percentOpen > 0.8) {
361
363
  this._animateIn();
362
364
  } else {
363
365
  this.close();
@@ -645,7 +647,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
645
647
 
646
648
  Sidenav._sidenavs = [];
647
649
 
648
- window.M.Sidenav = Sidenav;
650
+ M.Sidenav = Sidenav;
649
651
 
650
652
  if (M.jQueryLoaded) {
651
653
  M.initializeJqueryWrapper(Sidenav, 'sidenav', 'M_Sidenav');