UNPKG

poker-html-client

Version:
65 lines (57 loc) 1.86 kB
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;