"use strict"; class Checkbox_Input extends Form_Input_Abstract { on_create() { this.data.checked = false; this.checked_value = this.args.checked_value || '1'; this.unchecked_value = this.args.unchecked_value || '0'; } on_ready() { // Connect label clicks to checkbox const $input = this.$sid('input'); const $label = this.$sid('label'); if ($label.exists()) { const input_id = $input.attr('id'); $label.attr('for', input_id); } } /** * val() - Get or set the checkbox state * @param {string|boolean} [value] - If provided, sets the checked state * @returns {string} The checked_value or unchecked_value when called as getter */ val(value) { if (arguments.length === 0) { // Getter const is_checked = this.$sid('input').prop('checked'); return is_checked ? this.checked_value : this.unchecked_value; } else { // Setter - accepts boolean, checked_value, or unchecked_value let should_check = false; if (typeof value === 'boolean') { should_check = value; } else if (value === this.checked_value || value === '1' || value === 1 || value === true) { should_check = true; } this.data.checked = should_check; if (this.$sid('input').exists()) { this.$sid('input').prop('checked', should_check); } } } async seed() { // Randomly check or uncheck this.val(Math.random() > 0.5); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGVja2JveF9JbnB1dCIsIkZvcm1fSW5wdXRfQWJzdHJhY3QiLCJvbl9jcmVhdGUiLCJkYXRhIiwiY2hlY2tlZCIsImNoZWNrZWRfdmFsdWUiLCJhcmdzIiwidW5jaGVja2VkX3ZhbHVlIiwib25fcmVhZHkiLCIkaW5wdXQiLCIkaWQiLCIkbGFiZWwiLCJleGlzdHMiLCJpbnB1dF9pZCIsImF0dHIiLCJ2YWwiLCJ2YWx1ZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsImlzX2NoZWNrZWQiLCJwcm9wIiwic2hvdWxkX2NoZWNrIiwic2VlZCIsIk1hdGgiLCJyYW5kb20iXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9pbnB1dHMvY2hlY2tib3hfaW5wdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQ2hlY2tib3hfSW5wdXQgZXh0ZW5kcyBGb3JtX0lucHV0X0Fic3RyYWN0IHtcbiAgICBvbl9jcmVhdGUoKSB7XG4gICAgICAgIHRoaXMuZGF0YS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hlY2tlZF92YWx1ZSA9IHRoaXMuYXJncy5jaGVja2VkX3ZhbHVlIHx8ICcxJztcbiAgICAgICAgdGhpcy51bmNoZWNrZWRfdmFsdWUgPSB0aGlzLmFyZ3MudW5jaGVja2VkX3ZhbHVlIHx8ICcwJztcbiAgICB9XG5cbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gQ29ubmVjdCBsYWJlbCBjbGlja3MgdG8gY2hlY2tib3hcbiAgICAgICAgY29uc3QgJGlucHV0ID0gdGhpcy4kaWQoJ2lucHV0Jyk7XG4gICAgICAgIGNvbnN0ICRsYWJlbCA9IHRoaXMuJGlkKCdsYWJlbCcpO1xuXG4gICAgICAgIGlmICgkbGFiZWwuZXhpc3RzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0X2lkID0gJGlucHV0LmF0dHIoJ2lkJyk7XG4gICAgICAgICAgICAkbGFiZWwuYXR0cignZm9yJywgaW5wdXRfaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsKCkgLSBHZXQgb3Igc2V0IHRoZSBjaGVja2JveCBzdGF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfGJvb2xlYW59IFt2YWx1ZV0gLSBJZiBwcm92aWRlZCwgc2V0cyB0aGUgY2hlY2tlZCBzdGF0ZVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjaGVja2VkX3ZhbHVlIG9yIHVuY2hlY2tlZF92YWx1ZSB3aGVuIGNhbGxlZCBhcyBnZXR0ZXJcbiAgICAgKi9cbiAgICB2YWwodmFsdWUpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIEdldHRlclxuICAgICAgICAgICAgY29uc3QgaXNfY2hlY2tlZCA9IHRoaXMuJGlkKCdpbnB1dCcpLnByb3AoJ2NoZWNrZWQnKTtcbiAgICAgICAgICAgIHJldHVybiBpc19jaGVja2VkID8gdGhpcy5jaGVja2VkX3ZhbHVlIDogdGhpcy51bmNoZWNrZWRfdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTZXR0ZXIgLSBhY2NlcHRzIGJvb2xlYW4sIGNoZWNrZWRfdmFsdWUsIG9yIHVuY2hlY2tlZF92YWx1ZVxuICAgICAgICAgICAgbGV0IHNob3VsZF9jaGVjayA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICBzaG91bGRfY2hlY2sgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHRoaXMuY2hlY2tlZF92YWx1ZSB8fCB2YWx1ZSA9PT0gJzEnIHx8IHZhbHVlID09PSAxIHx8IHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkX2NoZWNrID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kYXRhLmNoZWNrZWQgPSBzaG91bGRfY2hlY2s7XG4gICAgICAgICAgICBpZiAodGhpcy4kaWQoJ2lucHV0JykuZXhpc3RzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpZCgnaW5wdXQnKS5wcm9wKCdjaGVja2VkJywgc2hvdWxkX2NoZWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHNlZWQoKSB7XG4gICAgICAgIC8vIFJhbmRvbWx5IGNoZWNrIG9yIHVuY2hlY2tcbiAgICAgICAgdGhpcy52YWwoTWF0aC5yYW5kb20oKSA+IDAuNSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLGNBQWMsU0FBU0MsbUJBQW1CLENBQUM7RUFDN0NDLFNBQVNBLENBQUEsRUFBRztJQUNSLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxPQUFPLEdBQUcsS0FBSztJQUN6QixJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNDLElBQUksQ0FBQ0QsYUFBYSxJQUFJLEdBQUc7SUFDbkQsSUFBSSxDQUFDRSxlQUFlLEdBQUcsSUFBSSxDQUFDRCxJQUFJLENBQUNDLGVBQWUsSUFBSSxHQUFHO0VBQzNEO0VBRUFDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxNQUFNQyxNQUFNLEdBQUcsSUFBSSxDQUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRWhDLElBQUlDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTtNQUNqQixNQUFNQyxRQUFRLEdBQUdKLE1BQU0sQ0FBQ0ssSUFBSSxDQUFDLElBQUksQ0FBQztNQUNsQ0gsTUFBTSxDQUFDRyxJQUFJLENBQUMsS0FBSyxFQUFFRCxRQUFRLENBQUM7SUFDaEM7RUFDSjs7RUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0VBQ0lFLEdBQUdBLENBQUNDLEtBQUssRUFBRTtJQUNQLElBQUlDLFNBQVMsQ0FBQ0MsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUN4QjtNQUNBLE1BQU1DLFVBQVUsR0FBRyxJQUFJLENBQUNULEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLFNBQVMsQ0FBQztNQUNwRCxPQUFPRCxVQUFVLEdBQUcsSUFBSSxDQUFDZCxhQUFhLEdBQUcsSUFBSSxDQUFDRSxlQUFlO0lBQ2pFLENBQUMsTUFBTTtNQUNIO01BQ0EsSUFBSWMsWUFBWSxHQUFHLEtBQUs7TUFFeEIsSUFBSSxPQUFPTCxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzVCSyxZQUFZLEdBQUdMLEtBQUs7TUFDeEIsQ0FBQyxNQUFNLElBQUlBLEtBQUssS0FBSyxJQUFJLENBQUNYLGFBQWEsSUFBSVcsS0FBSyxLQUFLLEdBQUcsSUFBSUEsS0FBSyxLQUFLLENBQUMsSUFBSUEsS0FBSyxLQUFLLElBQUksRUFBRTtRQUN2RkssWUFBWSxHQUFHLElBQUk7TUFDdkI7TUFFQSxJQUFJLENBQUNsQixJQUFJLENBQUNDLE9BQU8sR0FBR2lCLFlBQVk7TUFDaEMsSUFBSSxJQUFJLENBQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsTUFBTSxDQUFDLENBQUMsRUFBRTtRQUM1QixJQUFJLENBQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLFNBQVMsRUFBRUMsWUFBWSxDQUFDO01BQ25EO0lBQ0o7RUFDSjtFQUVBLE1BQU1DLElBQUlBLENBQUEsRUFBRztJQUNUO0lBQ0EsSUFBSSxDQUFDUCxHQUFHLENBQUNRLElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7RUFDakM7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==