import { h } from '@ledge/jsx';
import { NgInputController, NgInputOptions, closest } from './shared';
class RadioListController extends NgInputController {
public $postLink() {
setTimeout(() => {
if (this.$attrs.hasOwnProperty('required')) {
closest(this.$element, 'fieldset')
?.querySelector('legend')
?.appendChild( *);
}
});
}
}
export const radioList: NgInputOptions = {
type: 'input',
templateClass: 'form-check',
labelClass: 'form-check-label',
render() {
if (this.$attrs.hasOwnProperty('inline')) {
this.$template.classList.remove('form-check');
this.$template.classList.add('form-check-inline');
}
this.$template.setAttribute('ng-repeat', 'item in $ctrl.list track by $index');
const ngValue = `item.${this.$attrs.value ?? 'Value'}`.replace(/[.]$/, '');
return ;
},
renderLabel() {
const labelText = `{{item${`.${this.$attrs.text ?? 'Text'}`.replace(/[.]$/, '')}}}`;
this.$label.appendChild(document.createTextNode(labelText));
this.$label.setAttribute('ng-attr-for', '{{id}}_{{$ctrl.uniqueId}}_{{$index}}');
},
bindings: {
list: '<',
ngChecked: '<',
},
controller: RadioListController,
};