{"version":3,"file":"verben-ng-ui-src-lib-verbena-switch.mjs","sources":["../../../projects/verben-ng-ui/src/lib/verbena-switch/verbena-switch.component.ts","../../../projects/verben-ng-ui/src/lib/verbena-switch/verbena-switch.component.html","../../../projects/verben-ng-ui/src/lib/verbena-switch/verbena-switch.module.ts","../../../projects/verben-ng-ui/src/lib/verbena-switch/verben-ng-ui-src-lib-verbena-switch.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n  selector: 'verbena-switch',\n  templateUrl: './verbena-switch.component.html',\n  styleUrls: ['./verbena-switch.component.css'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VerbenaSwitchComponent),\n      multi: true\n    }\n  ]\n})\nexport class VerbenaSwitchComponent implements ControlValueAccessor {\n  @Input() label: string = '';\n  @Input() checked: boolean = false;\n  @Input() disabled: boolean = false;\n  @Input() offColor: string = '#ccc'; // Default off color\n  @Input() onColor: string = '#4caf50'; // Default on color\n  @Input() onText: string = 'On'; // Text for ON state\n  @Input() offText: string = 'Off'; // Text for OFF state\n  @Input() width: string = '80px'; // Width of the switch\n  @Input() height: string = '30px'; // Height of the switch\n  @Input() customStyles: string = ''; // Accepts user-defined class for extra styling\n\n  @Output() change = new EventEmitter<boolean>();\n\n  // Function to call when the toggle changes\n  public onChange: (value: boolean) => void = () => {};\n\n  // Function to call when the component is touched\n  private onTouched: () => void = () => {};\n\n  // Toggle function to handle switch changes\n  toggleSwitch() {\n    if (!this.disabled) {\n      this.checked = !this.checked;\n      this.onChange(this.checked);\n      this.change.emit(this.checked);\n    }\n  }\n\n  // ControlValueAccessor: Write a new value to the element\n  writeValue(value: boolean): void {\n    this.checked = value;\n  }\n\n  // ControlValueAccessor: Set the function to be called when the control value changes\n  registerOnChange(fn: (value: boolean) => void): void {\n    this.onChange = fn;\n  }\n\n  // ControlValueAccessor: Set the function to be called when the control is touched\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  // ControlValueAccessor: Set the disabled state\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  // Method to handle input change directly from template\n  onChangeEvent(event: Event): void {\n    if (!this.disabled) {\n      const checked = (event.target as HTMLInputElement).checked;\n      this.checked = checked;\n      this.onChange(checked); // Call the onChange function with a boolean\n      this.change.emit(checked); // Emit the change event\n    }\n  }\n\n}\n","<div class=\"switch\"\n     [ngClass]=\"{'disabled': disabled}\"\n     [ngStyle]=\"{ 'width': width, 'height': height }\"\n     (click)=\"toggleSwitch()\">\n    <input type=\"checkbox\" [checked]=\"checked\" class=\"check\" (change)=\"onChangeEvent($event)\" [disabled]=\"disabled\" />\n    <span class=\"slider\" \n          [ngStyle]=\"{ 'background-color': checked ? onColor : offColor }\">\n        <span class=\"slider-label\">{{ checked ? onText : offText }}</span>\n        <span class=\"slider-knob\"></span>\n    </span>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaSwitchComponent } from './verbena-switch.component';\n\n@NgModule({\n  declarations: [VerbenaSwitchComponent],\n  imports: [CommonModule],\n  exports: [VerbenaSwitchComponent]\n})\nexport class VerbenaSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}