poker-html-client
Version:
HTML client for online poker
65 lines (57 loc) • 1.86 kB
text/typescript
import ko = require("knockout");
/**
* Parameters for the timeblock component
*/
interface CheckboxParameters {
checked: boolean | KnockoutObservable<boolean>;
label: string | KnockoutObservable<string>;
right: boolean | KnockoutObservable<boolean>;
color: string | KnockoutObservable<string>;
}
class Checkbox {
public checked: KnockoutObservable<boolean>;
public label: KnockoutObservable<string>;
public right: KnockoutObservable<boolean>;
public color: KnockoutObservable<string>;
constructor(params: CheckboxParameters, componentInfo?: KnockoutComponentTypes.ComponentInfo) {
const checked = params.checked;
if (typeof checked === "boolean") {
this.checked = ko.observable(checked);
} else {
this.checked = checked;
}
const label = params.label;
if (typeof label === "string") {
this.label = ko.observable(label);
} else {
this.label = label;
}
const right = params.right;
if (typeof right === "boolean") {
this.right = ko.observable(right);
} else {
if (right) {
this.right = right;
} else {
this.right = ko.observable(false);
}
}
const color = params.color;
if (typeof color === "string") {
this.color = ko.observable(color);
} else {
if (color) {
this.color = color;
} else {
this.color = ko.observable("unknown");
}
}
}
public doClick(e: Event) {
this.checked(!this.checked());
e.preventDefault();
e.stopPropagation();
return false;
}
}
export = Checkbox;