material_design_lite-sass 1.0.5 → 1.0.6
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/material_design_lite/sass/version.rb +1 -1
- data/vendor/assets/javascripts/material.js +166 -71
- data/vendor/assets/javascripts/material/button.js +11 -0
- data/vendor/assets/javascripts/material/checkbox.js +11 -0
- data/vendor/assets/javascripts/material/data-table.js +10 -10
- data/vendor/assets/javascripts/material/icon-toggle.js +11 -0
- data/vendor/assets/javascripts/material/layout.js +32 -42
- data/vendor/assets/javascripts/material/mdlComponentHandler.js +1 -1
- data/vendor/assets/javascripts/material/menu.js +24 -10
- data/vendor/assets/javascripts/material/progress.js +11 -0
- data/vendor/assets/javascripts/material/radio.js +38 -5
- data/vendor/assets/javascripts/material/ripple.js +11 -0
- data/vendor/assets/javascripts/material/slider.js +11 -0
- data/vendor/assets/javascripts/material/switch.js +11 -0
- data/vendor/assets/javascripts/material/textfield.js +23 -10
- data/vendor/assets/javascripts/material/tooltip.js +12 -1
- data/vendor/assets/stylesheets/material/_button.scss +1 -1
- data/vendor/assets/stylesheets/material/_card.scss +1 -1
- data/vendor/assets/stylesheets/material/_layout.scss +6 -1
- data/vendor/assets/stylesheets/material/_mega_footer.scss +27 -15
- data/vendor/assets/stylesheets/material/_slider.scss +5 -5
- data/vendor/assets/stylesheets/material/_variables.scss +6 -5
- metadata +2 -2
@@ -125,6 +125,17 @@
|
|
125
125
|
this.element_.removeEventListener('mouseleave', this.boundButtonBlurHandler);
|
126
126
|
};
|
127
127
|
|
128
|
+
/**
|
129
|
+
* Public alias for the downgrade method.
|
130
|
+
*
|
131
|
+
* @public
|
132
|
+
*/
|
133
|
+
MaterialButton.prototype.mdlDowngrade =
|
134
|
+
MaterialButton.prototype.mdlDowngrade_;
|
135
|
+
|
136
|
+
MaterialButton.prototype['mdlDowngrade'] =
|
137
|
+
MaterialButton.prototype.mdlDowngrade;
|
138
|
+
|
128
139
|
// The component registers itself. It can assume componentHandler is available
|
129
140
|
// in the global scope.
|
130
141
|
componentHandler.register({
|
@@ -273,6 +273,17 @@
|
|
273
273
|
this.element_.removeEventListener('mouseup', this.boundElementMouseUp);
|
274
274
|
};
|
275
275
|
|
276
|
+
/**
|
277
|
+
* Public alias for the downgrade method.
|
278
|
+
*
|
279
|
+
* @public
|
280
|
+
*/
|
281
|
+
MaterialCheckbox.prototype.mdlDowngrade =
|
282
|
+
MaterialCheckbox.prototype.mdlDowngrade_;
|
283
|
+
|
284
|
+
MaterialCheckbox.prototype['mdlDowngrade'] =
|
285
|
+
MaterialCheckbox.prototype.mdlDowngrade;
|
286
|
+
|
276
287
|
// The component registers itself. It can assume componentHandler is available
|
277
288
|
// in the global scope.
|
278
289
|
componentHandler.register({
|
@@ -56,6 +56,7 @@
|
|
56
56
|
MaterialDataTable.prototype.CssClasses_ = {
|
57
57
|
DATA_TABLE: 'mdl-data-table',
|
58
58
|
SELECTABLE: 'mdl-data-table--selectable',
|
59
|
+
SELECT_ELEMENT: 'mdl-data-table__select',
|
59
60
|
IS_SELECTED: 'is-selected',
|
60
61
|
IS_UPGRADED: 'is-upgraded'
|
61
62
|
};
|
@@ -111,19 +112,18 @@
|
|
111
112
|
*/
|
112
113
|
MaterialDataTable.prototype.createCheckbox_ = function(row, opt_rows) {
|
113
114
|
var label = document.createElement('label');
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
115
|
+
var labelClasses = [
|
116
|
+
'mdl-checkbox',
|
117
|
+
'mdl-js-checkbox',
|
118
|
+
'mdl-js-ripple-effect',
|
119
|
+
this.CssClasses_.SELECT_ELEMENT
|
120
|
+
];
|
121
|
+
label.className = labelClasses.join(' ');
|
118
122
|
var checkbox = document.createElement('input');
|
119
123
|
checkbox.type = 'checkbox';
|
120
124
|
checkbox.classList.add('mdl-checkbox__input');
|
121
|
-
|
122
|
-
|
123
|
-
} else if (opt_rows) {
|
124
|
-
checkbox.addEventListener('change',
|
125
|
-
this.selectRow_(checkbox, null, opt_rows));
|
126
|
-
}
|
125
|
+
checkbox.addEventListener('change',
|
126
|
+
this.selectRow_(checkbox, row, opt_rows));
|
127
127
|
|
128
128
|
label.appendChild(checkbox);
|
129
129
|
componentHandler.upgradeElement(label, 'MaterialCheckbox');
|
@@ -259,6 +259,17 @@
|
|
259
259
|
this.element_.removeEventListener('mouseup', this.boundElementOnMouseUp);
|
260
260
|
};
|
261
261
|
|
262
|
+
/**
|
263
|
+
* Public alias for the downgrade method.
|
264
|
+
*
|
265
|
+
* @public
|
266
|
+
*/
|
267
|
+
MaterialIconToggle.prototype.mdlDowngrade =
|
268
|
+
MaterialIconToggle.prototype.mdlDowngrade_;
|
269
|
+
|
270
|
+
MaterialIconToggle.prototype['mdlDowngrade'] =
|
271
|
+
MaterialIconToggle.prototype.mdlDowngrade;
|
272
|
+
|
262
273
|
// The component registers itself. It can assume componentHandler is available
|
263
274
|
// in the global scope.
|
264
275
|
componentHandler.register({
|
@@ -151,6 +151,7 @@
|
|
151
151
|
// Collapse drawer (if any) when moving to a large screen size.
|
152
152
|
if (this.drawer_) {
|
153
153
|
this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN);
|
154
|
+
this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN);
|
154
155
|
}
|
155
156
|
}
|
156
157
|
};
|
@@ -162,6 +163,7 @@
|
|
162
163
|
*/
|
163
164
|
MaterialLayout.prototype.drawerToggleHandler_ = function() {
|
164
165
|
this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN);
|
166
|
+
this.obfuscator_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN);
|
165
167
|
};
|
166
168
|
|
167
169
|
/**
|
@@ -219,7 +221,8 @@
|
|
219
221
|
container.appendChild(this.element_);
|
220
222
|
|
221
223
|
var directChildren = this.element_.childNodes;
|
222
|
-
|
224
|
+
var numChildren = directChildren.length;
|
225
|
+
for (var c = 0; c < numChildren; c++) {
|
223
226
|
var child = directChildren[c];
|
224
227
|
if (child.classList &&
|
225
228
|
child.classList.contains(this.CssClasses_.HEADER)) {
|
@@ -243,13 +246,6 @@
|
|
243
246
|
|
244
247
|
var mode = this.Mode_.STANDARD;
|
245
248
|
|
246
|
-
// Keep an eye on screen size, and add/remove auxiliary class for styling
|
247
|
-
// of small screens.
|
248
|
-
this.screenSizeMediaQuery_ = window.matchMedia(
|
249
|
-
/** @type {string} */ (this.Constant_.MAX_WIDTH));
|
250
|
-
this.screenSizeMediaQuery_.addListener(this.screenSizeHandler_.bind(this));
|
251
|
-
this.screenSizeHandler_();
|
252
|
-
|
253
249
|
if (this.header_) {
|
254
250
|
if (this.header_.classList.contains(this.CssClasses_.HEADER_SEAMED)) {
|
255
251
|
mode = this.Mode_.SEAMED;
|
@@ -286,19 +282,11 @@
|
|
286
282
|
}
|
287
283
|
}
|
288
284
|
|
289
|
-
/**
|
290
|
-
* Prevents an event from triggering the default behaviour.
|
291
|
-
* @param {Event} ev the event to eat.
|
292
|
-
*/
|
293
|
-
var eatEvent = function(ev) {
|
294
|
-
ev.preventDefault();
|
295
|
-
};
|
296
|
-
|
297
285
|
// Add drawer toggling button to our layout, if we have an openable drawer.
|
298
286
|
if (this.drawer_) {
|
299
287
|
var drawerButton = this.element_.querySelector('.' +
|
300
288
|
this.CssClasses_.DRAWER_BTN);
|
301
|
-
if (
|
289
|
+
if (!drawerButton) {
|
302
290
|
drawerButton = document.createElement('div');
|
303
291
|
drawerButton.classList.add(this.CssClasses_.DRAWER_BTN);
|
304
292
|
|
@@ -324,8 +312,6 @@
|
|
324
312
|
// not be present.
|
325
313
|
this.element_.classList.add(this.CssClasses_.HAS_DRAWER);
|
326
314
|
|
327
|
-
this.drawer_.addEventListener('mousewheel', eatEvent);
|
328
|
-
|
329
315
|
// If we have a fixed header, add the button to the header rather than
|
330
316
|
// the layout.
|
331
317
|
if (this.element_.classList.contains(this.CssClasses_.FIXED_HEADER)) {
|
@@ -339,9 +325,16 @@
|
|
339
325
|
this.element_.appendChild(obfuscator);
|
340
326
|
obfuscator.addEventListener('click',
|
341
327
|
this.drawerToggleHandler_.bind(this));
|
342
|
-
|
328
|
+
this.obfuscator_ = obfuscator;
|
343
329
|
}
|
344
330
|
|
331
|
+
// Keep an eye on screen size, and add/remove auxiliary class for styling
|
332
|
+
// of small screens.
|
333
|
+
this.screenSizeMediaQuery_ = window.matchMedia(
|
334
|
+
/** @type {string} */ (this.Constant_.MAX_WIDTH));
|
335
|
+
this.screenSizeMediaQuery_.addListener(this.screenSizeHandler_.bind(this));
|
336
|
+
this.screenSizeHandler_();
|
337
|
+
|
345
338
|
// Initialize tabs, if any.
|
346
339
|
if (this.header_ && this.tabBar_) {
|
347
340
|
this.element_.classList.add(this.CssClasses_.HAS_TABS);
|
@@ -424,29 +417,26 @@
|
|
424
417
|
* @param {MaterialLayout} layout The MaterialLayout object that owns the tab.
|
425
418
|
*/
|
426
419
|
function MaterialLayoutTab(tab, tabs, panels, layout) {
|
427
|
-
if (
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
tab.appendChild(rippleContainer);
|
437
|
-
}
|
438
|
-
|
439
|
-
tab.addEventListener('click', function(e) {
|
440
|
-
e.preventDefault();
|
441
|
-
var href = tab.href.split('#')[1];
|
442
|
-
var panel = layout.content_.querySelector('#' + href);
|
443
|
-
layout.resetTabState_(tabs);
|
444
|
-
layout.resetPanelState_(panels);
|
445
|
-
tab.classList.add(layout.CssClasses_.IS_ACTIVE);
|
446
|
-
panel.classList.add(layout.CssClasses_.IS_ACTIVE);
|
447
|
-
});
|
448
|
-
|
420
|
+
if (layout.tabBar_.classList.contains(
|
421
|
+
layout.CssClasses_.JS_RIPPLE_EFFECT)) {
|
422
|
+
var rippleContainer = document.createElement('span');
|
423
|
+
rippleContainer.classList.add(layout.CssClasses_.RIPPLE_CONTAINER);
|
424
|
+
rippleContainer.classList.add(layout.CssClasses_.JS_RIPPLE_EFFECT);
|
425
|
+
var ripple = document.createElement('span');
|
426
|
+
ripple.classList.add(layout.CssClasses_.RIPPLE);
|
427
|
+
rippleContainer.appendChild(ripple);
|
428
|
+
tab.appendChild(rippleContainer);
|
449
429
|
}
|
430
|
+
|
431
|
+
tab.addEventListener('click', function(e) {
|
432
|
+
e.preventDefault();
|
433
|
+
var href = tab.href.split('#')[1];
|
434
|
+
var panel = layout.content_.querySelector('#' + href);
|
435
|
+
layout.resetTabState_(tabs);
|
436
|
+
layout.resetPanelState_(panels);
|
437
|
+
tab.classList.add(layout.CssClasses_.IS_ACTIVE);
|
438
|
+
panel.classList.add(layout.CssClasses_.IS_ACTIVE);
|
439
|
+
});
|
450
440
|
}
|
451
441
|
|
452
442
|
// The component registers itself. It can assume componentHandler is available
|
@@ -91,7 +91,7 @@ componentHandler = (function() {
|
|
91
91
|
/** @type {!Array<componentHandler.Component>} */
|
92
92
|
var createdComponents_ = [];
|
93
93
|
|
94
|
-
var downgradeMethod_ = '
|
94
|
+
var downgradeMethod_ = 'mdlDowngrade';
|
95
95
|
var componentConfigProperty_ = 'mdlComponentConfigInternal_';
|
96
96
|
|
97
97
|
/**
|
@@ -125,15 +125,15 @@
|
|
125
125
|
}
|
126
126
|
|
127
127
|
var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM);
|
128
|
-
this.
|
129
|
-
this.
|
128
|
+
this.boundItemKeydown_ = this.handleItemKeyboardEvent_.bind(this);
|
129
|
+
this.boundItemClick_ = this.handleItemClick_.bind(this);
|
130
130
|
for (var i = 0; i < items.length; i++) {
|
131
131
|
// Add a listener to each menu item.
|
132
|
-
items[i].addEventListener('click', this.
|
132
|
+
items[i].addEventListener('click', this.boundItemClick_);
|
133
133
|
// Add a tab index to each menu item.
|
134
134
|
items[i].tabIndex = '-1';
|
135
135
|
// Add a keyboard listener to each menu item.
|
136
|
-
items[i].addEventListener('keydown', this.
|
136
|
+
items[i].addEventListener('keydown', this.boundItemKeydown_);
|
137
137
|
}
|
138
138
|
|
139
139
|
// Add ripple classes to each item, if the user has enabled ripples.
|
@@ -294,7 +294,7 @@
|
|
294
294
|
* @private
|
295
295
|
*/
|
296
296
|
MaterialMenu.prototype.handleItemClick_ = function(evt) {
|
297
|
-
if (evt.target.
|
297
|
+
if (evt.target.hasAttribute('disabled')) {
|
298
298
|
evt.stopPropagation();
|
299
299
|
} else {
|
300
300
|
// Wait some time before closing menu, so the user can see the ripple.
|
@@ -409,7 +409,9 @@
|
|
409
409
|
// displayed the menu in the first place. If so, do nothing.
|
410
410
|
// Also check to see if the menu is in the process of closing itself, and
|
411
411
|
// do nothing in that case.
|
412
|
-
if
|
412
|
+
// Also check if the clicked element is a menu item
|
413
|
+
// if so, do nothing.
|
414
|
+
if (e !== evt && !this.closing_ && e.target.parentNode !== this.element_) {
|
413
415
|
document.removeEventListener('click', callback);
|
414
416
|
this.hide();
|
415
417
|
}
|
@@ -434,8 +436,9 @@
|
|
434
436
|
}
|
435
437
|
|
436
438
|
// Measure the inner element.
|
437
|
-
var
|
438
|
-
var
|
439
|
+
var rect = this.element_.getBoundingClientRect();
|
440
|
+
var height = rect.height;
|
441
|
+
var width = rect.width;
|
439
442
|
|
440
443
|
// Turn on animation, and apply the final clip. Also make invisible.
|
441
444
|
// This triggers the transitions.
|
@@ -472,11 +475,22 @@
|
|
472
475
|
var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM);
|
473
476
|
|
474
477
|
for (var i = 0; i < items.length; i++) {
|
475
|
-
items[i].removeEventListener('click', this.
|
476
|
-
items[i].removeEventListener('keydown', this.
|
478
|
+
items[i].removeEventListener('click', this.boundItemClick_);
|
479
|
+
items[i].removeEventListener('keydown', this.boundItemKeydown_);
|
477
480
|
}
|
478
481
|
};
|
479
482
|
|
483
|
+
/**
|
484
|
+
* Public alias for the downgrade method.
|
485
|
+
*
|
486
|
+
* @public
|
487
|
+
*/
|
488
|
+
MaterialMenu.prototype.mdlDowngrade =
|
489
|
+
MaterialMenu.prototype.mdlDowngrade_;
|
490
|
+
|
491
|
+
MaterialMenu.prototype['mdlDowngrade'] =
|
492
|
+
MaterialMenu.prototype.mdlDowngrade;
|
493
|
+
|
480
494
|
// The component registers itself. It can assume componentHandler is available
|
481
495
|
// in the global scope.
|
482
496
|
componentHandler.register({
|
@@ -123,6 +123,17 @@
|
|
123
123
|
}
|
124
124
|
};
|
125
125
|
|
126
|
+
/**
|
127
|
+
* Public alias for the downgrade method.
|
128
|
+
*
|
129
|
+
* @public
|
130
|
+
*/
|
131
|
+
MaterialProgress.prototype.mdlDowngrade =
|
132
|
+
MaterialProgress.prototype.mdlDowngrade_;
|
133
|
+
|
134
|
+
MaterialProgress.prototype['mdlDowngrade'] =
|
135
|
+
MaterialProgress.prototype.mdlDowngrade;
|
136
|
+
|
126
137
|
// The component registers itself. It can assume componentHandler is available
|
127
138
|
// in the global scope.
|
128
139
|
componentHandler.register({
|
@@ -225,6 +225,11 @@
|
|
225
225
|
this.btnElement_ = this.element_.querySelector('.' +
|
226
226
|
this.CssClasses_.RADIO_BTN);
|
227
227
|
|
228
|
+
this.boundChangeHandler_ = this.onChange_.bind(this);
|
229
|
+
this.boundFocusHandler_ = this.onChange_.bind(this);
|
230
|
+
this.boundBlurHandler_ = this.onBlur_.bind(this);
|
231
|
+
this.boundMouseUpHandler_ = this.onMouseup_.bind(this);
|
232
|
+
|
228
233
|
var outerCircle = document.createElement('span');
|
229
234
|
outerCircle.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);
|
230
235
|
|
@@ -244,7 +249,7 @@
|
|
244
249
|
this.CssClasses_.RIPPLE_CONTAINER);
|
245
250
|
rippleContainer.classList.add(this.CssClasses_.RIPPLE_EFFECT);
|
246
251
|
rippleContainer.classList.add(this.CssClasses_.RIPPLE_CENTER);
|
247
|
-
rippleContainer.addEventListener('mouseup', this.
|
252
|
+
rippleContainer.addEventListener('mouseup', this.boundMouseUpHandler_);
|
248
253
|
|
249
254
|
var ripple = document.createElement('span');
|
250
255
|
ripple.classList.add(this.CssClasses_.RIPPLE);
|
@@ -253,16 +258,44 @@
|
|
253
258
|
this.element_.appendChild(rippleContainer);
|
254
259
|
}
|
255
260
|
|
256
|
-
this.btnElement_.addEventListener('change', this.
|
257
|
-
this.btnElement_.addEventListener('focus', this.
|
258
|
-
this.btnElement_.addEventListener('blur', this.
|
259
|
-
this.element_.addEventListener('mouseup', this.
|
261
|
+
this.btnElement_.addEventListener('change', this.boundChangeHandler_);
|
262
|
+
this.btnElement_.addEventListener('focus', this.boundFocusHandler_);
|
263
|
+
this.btnElement_.addEventListener('blur', this.boundBlurHandler_);
|
264
|
+
this.element_.addEventListener('mouseup', this.boundMouseUpHandler_);
|
260
265
|
|
261
266
|
this.updateClasses_();
|
262
267
|
this.element_.classList.add(this.CssClasses_.IS_UPGRADED);
|
263
268
|
}
|
264
269
|
};
|
265
270
|
|
271
|
+
/**
|
272
|
+
* Downgrade the element.
|
273
|
+
*
|
274
|
+
* @private
|
275
|
+
*/
|
276
|
+
MaterialRadio.prototype.mdlDowngrade_ = function() {
|
277
|
+
var rippleContainer = this.element_.querySelector('.' +
|
278
|
+
this.CssClasses_.RIPPLE_CONTAINER);
|
279
|
+
this.btnElement_.removeEventListener('change', this.boundChangeHandler_);
|
280
|
+
this.btnElement_.removeEventListener('focus', this.boundFocusHandler_);
|
281
|
+
this.btnElement_.removeEventListener('blur', this.boundBlurHandler_);
|
282
|
+
this.element_.removeEventListener('mouseup', this.boundMouseUpHandler_);
|
283
|
+
if (rippleContainer) {
|
284
|
+
rippleContainer.removeEventListener('mouseup', this.boundMouseUpHandler_);
|
285
|
+
this.element_.removeChild(rippleContainer);
|
286
|
+
}
|
287
|
+
};
|
288
|
+
|
289
|
+
/**
|
290
|
+
* Public alias for the downgrade method.
|
291
|
+
*
|
292
|
+
* @public
|
293
|
+
*/
|
294
|
+
MaterialRadio.prototype.mdlDowngrade = MaterialRadio.prototype.mdlDowngrade_;
|
295
|
+
|
296
|
+
MaterialRadio.prototype['mdlDowngrade'] =
|
297
|
+
MaterialRadio.prototype.mdlDowngrade;
|
298
|
+
|
266
299
|
// The component registers itself. It can assume componentHandler is available
|
267
300
|
// in the global scope.
|
268
301
|
componentHandler.register({
|
@@ -267,6 +267,17 @@
|
|
267
267
|
this.element_.removeEventListener('blur', this.boundUpHandler);
|
268
268
|
};
|
269
269
|
|
270
|
+
/**
|
271
|
+
* Public alias for the downgrade method.
|
272
|
+
*
|
273
|
+
* @public
|
274
|
+
*/
|
275
|
+
MaterialRipple.prototype.mdlDowngrade =
|
276
|
+
MaterialRipple.prototype.mdlDowngrade_;
|
277
|
+
|
278
|
+
MaterialRipple.prototype['mdlDowngrade'] =
|
279
|
+
MaterialRipple.prototype.mdlDowngrade;
|
280
|
+
|
270
281
|
// The component registers itself. It can assume componentHandler is available
|
271
282
|
// in the global scope.
|
272
283
|
componentHandler.register({
|
@@ -245,6 +245,17 @@
|
|
245
245
|
this.element_.parentElement.removeEventListener('mousedown', this.boundContainerMouseDownHandler);
|
246
246
|
};
|
247
247
|
|
248
|
+
/**
|
249
|
+
* Public alias for the downgrade method.
|
250
|
+
*
|
251
|
+
* @public
|
252
|
+
*/
|
253
|
+
MaterialSlider.prototype.mdlDowngrade =
|
254
|
+
MaterialSlider.prototype.mdlDowngrade_;
|
255
|
+
|
256
|
+
MaterialSlider.prototype['mdlDowngrade'] =
|
257
|
+
MaterialSlider.prototype.mdlDowngrade;
|
258
|
+
|
248
259
|
// The component registers itself. It can assume componentHandler is available
|
249
260
|
// in the global scope.
|
250
261
|
componentHandler.register({
|
@@ -277,6 +277,17 @@
|
|
277
277
|
this.element_.removeEventListener('mouseup', this.boundMouseUpHandler);
|
278
278
|
};
|
279
279
|
|
280
|
+
/**
|
281
|
+
* Public alias for the downgrade method.
|
282
|
+
*
|
283
|
+
* @public
|
284
|
+
*/
|
285
|
+
MaterialSwitch.prototype.mdlDowngrade =
|
286
|
+
MaterialSwitch.prototype.mdlDowngrade_;
|
287
|
+
|
288
|
+
MaterialSwitch.prototype['mdlDowngrade'] =
|
289
|
+
MaterialSwitch.prototype.mdlDowngrade;
|
290
|
+
|
280
291
|
// The component registers itself. It can assume componentHandler is available
|
281
292
|
// in the global scope.
|
282
293
|
componentHandler.register({
|