import { switch_styles_default } from "./chunk.5MHKN5YK.js"; import { l } from "./chunk.MB643KRE.js"; import { defaultValue } from "./chunk.RQ7JZ4R7.js"; import { FormControlController } from "./chunk.NMS6LWK4.js"; import { o } from "./chunk.2URMUHDY.js"; import { e } from "./chunk.UZVKBFXH.js"; import { watch } from "./chunk.FA5RT4K4.js"; import { ShoelaceElement, e as e2, n, r } from "./chunk.SEXBCYCU.js"; import { x } from "./chunk.CXZZ2LVK.js"; import { __decorateClass } from "./chunk.KIILAQWQ.js"; // src/components/switch/switch.component.ts var SlSwitch = class extends ShoelaceElement { constructor() { super(...arguments); this.formControlController = new FormControlController(this, { value: (control) => control.checked ? control.value || "on" : void 0, defaultValue: (control) => control.defaultChecked, setValue: (control, checked) => control.checked = checked }); this.hasFocus = false; this.title = ""; this.name = ""; this.size = "medium"; this.disabled = false; this.checked = false; this.defaultChecked = false; this.form = ""; this.required = false; } /** Gets the validity state object */ get validity() { return this.input.validity; } /** Gets the validation message */ get validationMessage() { return this.input.validationMessage; } firstUpdated() { this.formControlController.updateValidity(); } handleBlur() { this.hasFocus = false; this.emit("sl-blur"); } handleInput() { this.emit("sl-input"); } handleInvalid(event) { this.formControlController.setValidity(false); this.formControlController.emitInvalidEvent(event); } handleClick() { this.checked = !this.checked; this.emit("sl-change"); } handleFocus() { this.hasFocus = true; this.emit("sl-focus"); } handleKeyDown(event) { if (event.key === "ArrowLeft") { event.preventDefault(); this.checked = false; this.emit("sl-change"); this.emit("sl-input"); } if (event.key === "ArrowRight") { event.preventDefault(); this.checked = true; this.emit("sl-change"); this.emit("sl-input"); } } handleCheckedChange() { this.input.checked = this.checked; this.formControlController.updateValidity(); } handleDisabledChange() { this.formControlController.setValidity(true); } /** Simulates a click on the switch. */ click() { this.input.click(); } /** Sets focus on the switch. */ focus(options) { this.input.focus(options); } /** Removes focus from the switch. */ blur() { this.input.blur(); } /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */ checkValidity() { return this.input.checkValidity(); } /** Gets the associated form, if one exists. */ getForm() { return this.formControlController.getForm(); } /** Checks for validity and shows the browser's validation message if the control is invalid. */ reportValidity() { return this.input.reportValidity(); } /** Sets a custom validation message. Pass an empty string to restore validity. */ setCustomValidity(message) { this.input.setCustomValidity(message); this.formControlController.updateValidity(); } render() { return x` `; } }; SlSwitch.styles = switch_styles_default; __decorateClass([ e2('input[type="checkbox"]') ], SlSwitch.prototype, "input", 2); __decorateClass([ r() ], SlSwitch.prototype, "hasFocus", 2); __decorateClass([ n() ], SlSwitch.prototype, "title", 2); __decorateClass([ n() ], SlSwitch.prototype, "name", 2); __decorateClass([ n() ], SlSwitch.prototype, "value", 2); __decorateClass([ n({ reflect: true }) ], SlSwitch.prototype, "size", 2); __decorateClass([ n({ type: Boolean, reflect: true }) ], SlSwitch.prototype, "disabled", 2); __decorateClass([ n({ type: Boolean, reflect: true }) ], SlSwitch.prototype, "checked", 2); __decorateClass([ defaultValue("checked") ], SlSwitch.prototype, "defaultChecked", 2); __decorateClass([ n({ reflect: true }) ], SlSwitch.prototype, "form", 2); __decorateClass([ n({ type: Boolean, reflect: true }) ], SlSwitch.prototype, "required", 2); __decorateClass([ watch("checked", { waitUntilFirstUpdate: true }) ], SlSwitch.prototype, "handleCheckedChange", 1); __decorateClass([ watch("disabled", { waitUntilFirstUpdate: true }) ], SlSwitch.prototype, "handleDisabledChange", 1); export { SlSwitch };