{"version":3,"file":"ng-toggle-button.mjs","sources":["../../../projects/ng-toggle/src/lib/ng-toggle.config.ts","../../../projects/ng-toggle/src/lib/ng-toggle.component.ts","../../../projects/ng-toggle/src/lib/ng-toggle.component.html","../../../projects/ng-toggle/src/lib/ng-toggle.module.ts","../../../projects/ng-toggle/src/public-api.ts","../../../projects/ng-toggle/src/ng-toggle-button.ts"],"sourcesContent":["import { toggleConfig, valueConfig } from \"./ng-toggle.component\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class NgToggleConfig {\n  value?: any;\n  name?: string;\n  disabled?: boolean;\n  height?: number;\n  width?: number;\n  margin?: number;\n  fontSize?: number;\n  speed?: number;\n  color?: string | toggleConfig;\n  switchColor?: string | toggleConfig;\n  labels?: boolean | toggleConfig;\n  values?: valueConfig;\n  fontColor?: string | toggleConfig;\n  textAlign?: string | toggleConfig;\n}\n","import { Component, OnInit, Input, forwardRef, Output, EventEmitter, OnChanges, SimpleChanges, ElementRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgToggleConfig } from './ng-toggle.config';\n\nconst DEFAULT_COLOR_CHECKED = '#0099CC'\nconst DEFAULT_COLOR_UNCHECKED = '#e0e0e0'\nconst DEFAULT_LABEL_CHECKED = ''\nconst DEFAULT_LABEL_UNCHECKED = ''\nconst DEFAULT_SWITCH_COLOR = '#fff'\nconst DISABLED_COLOR = '#dbdbdb'\nconst DISABLED_BUTTON_COLOR = 'silver'\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'ng-toggle',\n  templateUrl: './ng-toggle.component.html',\n  styleUrls: ['./ng-toggle.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NgToggleComponent),\n      multi: true\n    }\n  ]\n})\nexport class NgToggleComponent implements OnInit, ControlValueAccessor, OnChanges {\n\n  @Input() value: any = this.config.value || true\n  @Input() name: string = this.config.name || ''\n  @Input() disabled: boolean = this.config.disabled || false\n\n  @Input() height: number = this.config.height || 25\n  @Input() width: number = this.config.width || 45\n  @Input() margin: number = this.config.margin || 2\n  @Input() fontSize: number = this.config.fontSize || undefined\n  @Input() speed: number = this.config.speed || 300\n  @Input() color: string | toggleConfig = this.config.color\n  @Input() switchColor: string | toggleConfig = this.config.switchColor\n  @Input() labels: boolean | toggleConfig = this.config.labels || true\n  @Input() fontColor: string | toggleConfig = this.config.fontColor || undefined\n  @Input() values: valueConfig = this.config.values || {checked: true, unchecked: false}\n  @Input() textAlign: string | toggleConfig = this.config.textAlign || {\n    checked: 'left',\n    unchecked: 'right',\n  }\n  @Input() id: string = ''\n  @Input('aria-label') ariaLabel: string | null = null;\n  @Input('aria-labelledby') ariaLabelledby: string | null = null;\n  @Input('aria-describedby') ariaDescribedby: string;\n  cssColors: boolean = false\n\n  @Output() change = new EventEmitter()\n  @Output() valueChange = new EventEmitter()\n  toggled: boolean\n  focused: boolean;\n  private _uniqueId: string;\n\n  constructor(\n    private config: NgToggleConfig,\n    private _elementRef: ElementRef<HTMLElement>,\n  ) {\n    this._uniqueId = 'ng-toggle-'+(++nextUniqueId);\n    this.id = this.id || this._uniqueId\n    this.ariaLabel = this.ariaLabel || this.name || this.id\n  }\n\n  ngOnInit() {\n    this.setToogle()\n  }\n\n  onChange = (_:any) => { }\n  onTouch = () => { }\n\n  onInput(value: boolean) {\n    this.value = value;\n    this.onTouch();\n    this.onChange(this.value);\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n    this.setToogle();\n  }\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouch = fn;\n  }\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  setToogle() {\n    const value = this.value\n    let index = Object.values(this.values).findIndex(el => el == value)\n    if(index > -1)\n      this.toggled = Object.keys(this.values)[index] == 'checked' ? true : false\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    for (const propName in changes) {\n      const chng = changes[propName];\n      if(propName == 'value')\n        this.writeValue(chng.currentValue)\n    }\n  }\n\n  get coreStyle () {\n    return {\n      width: px(this.width),\n      height: px(this.height),\n      transition: `all ${this.speed}ms`,\n      backgroundColor: this.cssColors\n        ? null\n        : (this.disabled ? this.colorDisabled : this.colorCurrent),\n      borderRadius: px(Math.round(this.height / 2))\n    }\n  }\n  get buttonRadius () {\n    const radius = this.height - this.margin * 2;\n    return radius > 0 ? radius : 0;\n  }\n  get distance () {\n    return px(this.width - this.height + this.margin)\n  }\n  get buttonStyle () {\n    const transition = `all ${this.speed}ms`\n    const margin = px(this.margin)\n    const transform = this.toggled\n      ? translate(this.distance, margin)\n      : translate(margin, margin)\n    let background = this.switchColor\n      ? this.switchColorCurrent\n      : null\n    background = this.disabled ? this.switchColorDisabled : background\n    return {\n      width: px(this.buttonRadius),\n      height: px(this.buttonRadius),\n      transition,\n      transform,\n      background,\n    }\n  }\n  get labelStyle () {\n    return {\n      lineHeight: px(this.height),\n      fontSize: this.fontSize ? px(this.fontSize) : null,\n      color: this.fontColor ? this.fontColorCurrent : null,\n      width: px(this.width - this.buttonRadius - this.margin),\n    }\n  }\n  get labelLeftStyle () {\n    return {\n      ...this.labelStyle,\n      textAlign: (this.textAlign as toggleConfig).checked || this.textAlign\n    }\n  }\n  get labelRightStyle () {\n    return {\n      ...this.labelStyle,\n      textAlign: (this.textAlign as toggleConfig).unchecked || this.textAlign\n    }\n  }\n\n  get colorChecked () {\n    let { color } = this\n    if (!isObject(color)) {\n      return color || DEFAULT_COLOR_CHECKED\n    }\n    return get(color, 'checked', DEFAULT_COLOR_CHECKED)\n  }\n  get colorUnchecked () {\n    return get(this.color, 'unchecked', DEFAULT_COLOR_UNCHECKED)\n  }\n  get colorDisabled () {\n    return get(this.color, 'disabled', DISABLED_COLOR)\n  }\n  get colorCurrent () {\n    return this.toggled\n      ? this.colorChecked\n      : this.colorUnchecked\n  }\n  get labelChecked () {\n    return get(this.labels, 'checked', DEFAULT_LABEL_CHECKED)\n  }\n  get labelUnchecked () {\n    return get(this.labels, 'unchecked', DEFAULT_LABEL_UNCHECKED)\n  }\n  get switchColorChecked () {\n    return get(this.switchColor, 'checked', DEFAULT_SWITCH_COLOR)\n  }\n  get switchColorUnchecked () {\n    return get(this.switchColor, 'unchecked', DEFAULT_SWITCH_COLOR)\n  }\n  get switchColorDisabled(){\n    return get(this.switchColor, 'disabled', DISABLED_BUTTON_COLOR)\n  }\n\n  get switchColorCurrent () {\n    if (!isObject(this.switchColor)) {\n      return this.switchColor || DEFAULT_SWITCH_COLOR\n    }\n    return this.toggled\n      ? this.switchColorChecked\n      : this.switchColorUnchecked\n  }\n\n  get fontColorChecked () {\n    return get(this.fontColor, 'checked', DEFAULT_SWITCH_COLOR)\n  }\n  get fontColorUnchecked () {\n    return get(this.fontColor, 'unchecked', DEFAULT_SWITCH_COLOR)\n  }\n\n  get fontColorDisabled(){\n    return get(this.fontColor, 'disabled', DEFAULT_SWITCH_COLOR)\n  }\n  get fontColorCurrent () {\n    if (!isObject(this.fontColor)) {\n      return this.fontColor || DEFAULT_SWITCH_COLOR\n    }\n    if(this.disabled){\n      return this.fontColorDisabled\n    }\n    return this.toggled\n      ? this.fontColorChecked\n      : this.fontColorUnchecked\n  }\n\n  get label() {\n    if (this.ariaLabelledby) {\n      return this.ariaLabelledby;\n    }\n    return this.ariaLabel ? null : `${this._uniqueId}-label`;\n  }\n\n  toggle(event) {\n    const toggled = !this.toggled;\n    this.toggled = toggled;\n\n    this.value = this.getValue(toggled)\n    this.onTouch();\n    this.onChange(this.value);\n    this.valueChange.emit(this.value)\n  }\n\n  getValue(key: boolean) {\n    return key === true ? this.values['checked'] : this.values['unchecked']\n  }\n\n  onFocus(event: FocusEvent) {\n    if (!this.focused && event.relatedTarget) {\n      this.focused = true;\n    }\n  }\n\n  onFocusout(event: FocusEvent) {\n    if (!this._elementRef.nativeElement.contains(event.relatedTarget as Element)) {\n      this.focused = false;\n      this.onTouch();\n    }\n  }\n}\n\nexport const isObject = (value) => {\n  return typeof value === 'object'\n}\n\nexport const has = (object, key) => {\n  return isObject(object) && object.hasOwnProperty(key)\n}\n\nexport const get = (object, key, defaultValue) => {\n  return has(object, key) ? object[key] : defaultValue\n}\n\nexport const px = value => {\n  return `${value}px`\n}\n\nexport const translate = (x, y) => {\n  return `translate(${x}, ${y})`\n}\n\nexport type toggleConfig = {\n  checked: string;\n  unchecked: string;\n  disabled?: string;\n};\n\nexport type valueConfig = {\n  checked: any;\n  unchecked: any;\n};\n","<label class=\"ng-toggle-switch\" [for]=\"id\" [attr.id]=\"label\">\n  <input\n    type=\"checkbox\"\n    class=\"ng-toggle-switch-input\"\n    [checked]=\"value\"\n    [disabled]=\"disabled\"\n    (change)=\"toggle($event)\"\n    (focusin)=\"onFocus($event)\"\n    (focusout)=\"onFocusout($event)\"\n    [attr.id]=\"id\"\n    [attr.name]=\"name\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"label\"\n    [attr.aria-describedby]=\"ariaDescribedby\"\n    [attr.aria-checked]=\"toggled\"\n    role=\"checkbox\"\n  >\n  <div\n    class=\"ng-toggle-switch-core\"\n    [ngClass]=\"{'ng-toggle-focused': focused}\"\n    [ngStyle]=\"coreStyle\"\n  >\n    <div\n      class=\"ng-toggle-switch-button\"\n      [ngStyle]=\"buttonStyle\">\n    </div>\n  </div>\n  <ng-container *ngIf=\"labels\">\n    <span\n      class=\"ng-toggle-switch-label ng-toggle-left\"\n      [ngStyle]=\"labelLeftStyle\"\n      *ngIf=\"toggled\"\n    >\n      {{labelChecked}}\n    </span>\n    <span\n      class=\"ng-toggle-switch-label ng-toggle-right\"\n      [ngStyle]=\"labelRightStyle\"\n      *ngIf=\"!toggled\"\n    >\n      {{labelUnchecked}}\n    </span>\n  </ng-container>\n</label>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgToggleComponent } from './ng-toggle.component';\nimport { CommonModule } from '@angular/common';\nimport { NgToggleConfig } from './ng-toggle.config';\n\n@NgModule({\n  declarations: [NgToggleComponent],\n  imports: [\n    CommonModule\n  ],\n  exports: [NgToggleComponent],\n  providers: [NgToggleConfig]\n})\nexport class NgToggleModule {\n  static forRoot(config: NgToggleConfig = {}): ModuleWithProviders<NgToggleModule> {\n    return {\n      ngModule: NgToggleModule,\n      providers: [\n        {\n          provide: NgToggleConfig,\n          useValue: config\n        }\n      ]\n    }\n  }\n}\n","/*\n * Public API Surface of ng-toogle\n */\n\nexport * from './lib/ng-toggle.module';\nexport * from './lib/ng-toggle.component';\nexport * from './lib/ng-toggle.config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgToggleConfig"],"mappings":"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"}