snappymail/dev/Component/AbstractRadio.js
djmaze ea48f5060b isArray to native Array.isArray
isUnd(*) to native undefined === *
isFunc to native typeof * === 'function'
isObject to native typeof * === 'object'
microtime() to native Date().getTime();
noop to native ()=>{}
noopFalse to native ()=>false
noopTrue to native ()=>true
boolToAjax to native *?'1':'0'
Underscore.js to native
2020-07-29 21:49:41 +02:00

36 lines
826 B
JavaScript

import ko from 'ko';
import { AbstractComponent } from 'Component/Abstract';
class AbstractRadio extends AbstractComponent {
/**
* @param {Object} params
*/
constructor(params) {
super();
this.values = ko.observableArray([]);
this.value = params.value;
if (undefined === this.value || !this.value.subscribe) {
this.value = ko.observable('');
}
this.inline = undefined === params.inline ? false : params.inline;
this.readOnly = undefined === params.readOnly ? false : !!params.readOnly;
if (params.values) {
this.values(Object.entries(params.values).map((label, value) => ({ label: label, value: value })));
}
this.click = this.click.bind(this);
}
click(value) {
if (!this.readOnly && value) {
this.value(value.value);
}
}
}
export { AbstractRadio, AbstractRadio as default };