Downgrade radio components.
This commit is contained in:
parent
5c3f6f3a72
commit
f105daaeff
@ -225,6 +225,11 @@
|
|||||||
this.btnElement_ = this.element_.querySelector('.' +
|
this.btnElement_ = this.element_.querySelector('.' +
|
||||||
this.CssClasses_.RADIO_BTN);
|
this.CssClasses_.RADIO_BTN);
|
||||||
|
|
||||||
|
this.boundChangeHandler_ = this.onChange_.bind(this);
|
||||||
|
this.boundFocusHandler_ = this.onChange_.bind(this);
|
||||||
|
this.boundBlurHandler_ = this.onBlur_.bind(this);
|
||||||
|
this.boundMouseUpHandler_ = this.onMouseup_.bind(this);
|
||||||
|
|
||||||
var outerCircle = document.createElement('span');
|
var outerCircle = document.createElement('span');
|
||||||
outerCircle.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);
|
outerCircle.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);
|
||||||
|
|
||||||
@ -244,7 +249,7 @@
|
|||||||
this.CssClasses_.RIPPLE_CONTAINER);
|
this.CssClasses_.RIPPLE_CONTAINER);
|
||||||
rippleContainer.classList.add(this.CssClasses_.RIPPLE_EFFECT);
|
rippleContainer.classList.add(this.CssClasses_.RIPPLE_EFFECT);
|
||||||
rippleContainer.classList.add(this.CssClasses_.RIPPLE_CENTER);
|
rippleContainer.classList.add(this.CssClasses_.RIPPLE_CENTER);
|
||||||
rippleContainer.addEventListener('mouseup', this.onMouseup_.bind(this));
|
rippleContainer.addEventListener('mouseup', this.boundMouseUpHandler_);
|
||||||
|
|
||||||
var ripple = document.createElement('span');
|
var ripple = document.createElement('span');
|
||||||
ripple.classList.add(this.CssClasses_.RIPPLE);
|
ripple.classList.add(this.CssClasses_.RIPPLE);
|
||||||
@ -253,16 +258,34 @@
|
|||||||
this.element_.appendChild(rippleContainer);
|
this.element_.appendChild(rippleContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.btnElement_.addEventListener('change', this.onChange_.bind(this));
|
this.btnElement_.addEventListener('change', this.boundChangeHandler_);
|
||||||
this.btnElement_.addEventListener('focus', this.onFocus_.bind(this));
|
this.btnElement_.addEventListener('focus', this.boundFocusHandler_);
|
||||||
this.btnElement_.addEventListener('blur', this.onBlur_.bind(this));
|
this.btnElement_.addEventListener('blur', this.boundBlurHandler_);
|
||||||
this.element_.addEventListener('mouseup', this.onMouseup_.bind(this));
|
this.element_.addEventListener('mouseup', this.boundMouseUpHandler_);
|
||||||
|
|
||||||
this.updateClasses_();
|
this.updateClasses_();
|
||||||
this.element_.classList.add(this.CssClasses_.IS_UPGRADED);
|
this.element_.classList.add(this.CssClasses_.IS_UPGRADED);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Downgrade the element.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
MaterialRadio.prototype.mdlDowngrade_ = function() {
|
||||||
|
var rippleContainer = this.element_.querySelector('.' +
|
||||||
|
this.CssClasses_.RIPPLE_CONTAINER);
|
||||||
|
this.btnElement_.removeEventListener('change', this.boundChangeHandler_);
|
||||||
|
this.btnElement_.removeEventListener('focus', this.boundFocusHandler_);
|
||||||
|
this.btnElement_.removeEventListener('blur', this.boundBlurHandler_);
|
||||||
|
this.element_.removeEventListener('mouseup', this.boundMouseUpHandler_);
|
||||||
|
if (rippleContainer) {
|
||||||
|
rippleContainer.removeEventListener('mouseup', this.boundMouseUpHandler_);
|
||||||
|
this.element_.removeChild(rippleContainer);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// The component registers itself. It can assume componentHandler is available
|
// The component registers itself. It can assume componentHandler is available
|
||||||
// in the global scope.
|
// in the global scope.
|
||||||
componentHandler.register({
|
componentHandler.register({
|
||||||
|
@ -131,4 +131,12 @@ describe('MaterialRadio', function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should downgrade successfully', function() {
|
||||||
|
var radio = createRadio();
|
||||||
|
componentHandler.upgradeElement(radio);
|
||||||
|
expect(radio.dataset.upgraded).to.equal(',MaterialRadio');
|
||||||
|
componentHandler.downgradeElements(radio);
|
||||||
|
expect(radio.dataset.upgraded).to.equal('');
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user