import ko = require("knockout"); /** * Parameters for the timeblock component */ interface CheckboxParameters { checked: boolean | KnockoutObservable; label: string | KnockoutObservable; right: boolean | KnockoutObservable; color: string | KnockoutObservable; } class Checkbox { public checked: KnockoutObservable; public label: KnockoutObservable; public right: KnockoutObservable; public color: KnockoutObservable; 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;