UNPKG

opal-components

Version:

[Rionite](https://github.com/Riim/Rionite) component set.

42 lines (33 loc) 966 B
import { IEvent } from 'cellx'; import { Component, IComponentElement } from 'rionite'; import { OpalRadioButton } from './opal-radio-button'; export { OpalRadioButton }; let forEach = Array.prototype.forEach; @Component.Config<OpalRadioGroup>({ elementIs: 'OpalRadioGroup' }) export class OpalRadioGroup extends Component { buttonElements: NodeListOf<IComponentElement>; ready() { this.buttonElements = this.element.getElementsByClassName('OpalRadioButton') as NodeListOf< IComponentElement >; } elementAttached() { this.listenTo(this, { '<OpalRadioButton>check': this._onCheck, '<OpalRadioButton>uncheck': this._onUncheck }); } _onCheck(evt: IEvent) { let checkedButton = evt.target; forEach.call(this.buttonElements, (btnEl: IComponentElement<OpalRadioButton>) => { if (btnEl.$component != checkedButton) { btnEl.$component.uncheck(); } }); } _onUncheck(evt: IEvent<OpalRadioButton>) { evt.target.check(); } }