{"version":3,"file":"ng-devui-toggle.mjs","sources":["../../devui/toggle/toggle.component.ts","../../devui/toggle/toggle.component.html","../../devui/toggle/toggle.module.ts","../../devui/toggle/ng-devui-toggle.ts"],"sourcesContent":["import {\n  Component, EventEmitter, forwardRef, HostListener, Input,\n  Output, TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AnimationNumberDuration } from 'ng-devui/utils';\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'd-toggle',\n  templateUrl: './toggle.component.html',\n  styleUrls: [`./toggle.component.scss`],\n  exportAs: 'toggle',\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => ToggleComponent),\n    multi: true\n  }],\n  preserveWhitespaces: false,\n})\nexport class ToggleComponent implements ControlValueAccessor {\n  private _checked: boolean;\n  private _disabled: boolean;\n  content = '';\n\n  @Input() size: 'sm' | '' | 'lg' = '';\n  @Input() color: string;\n  @Input() beforeChange: (value) => boolean | Promise<boolean> | Observable<boolean>;\n  @Input() checkedContent: string | TemplateRef<any>;\n  @Input() uncheckedContent: string | TemplateRef<any>;\n\n  get customTemplate() {\n    const result = this.checked ? this.checkedContent : this.uncheckedContent;\n    if (result instanceof TemplateRef) {\n      this.content = '';\n      return result;\n    } else {\n      this.content = result || '';\n      return null;\n    }\n  }\n\n  @Input() set checked(v: boolean) {\n    this._checked = v === true;\n  }\n\n  get checked() {\n    return this._checked;\n  }\n\n  @Input() set disabled(v: boolean) {\n    this._disabled = v === true;\n  }\n\n  get disabled() {\n    return this._disabled;\n  }\n\n  @Output() change = new EventEmitter<boolean>();\n\n  private onTouchedCallback = () => {};\n  private onChangeCallback = (v: any) => {};\n  isMousedown = false;\n\n  @HostListener('click')\n  onToggle() {\n    if (this.disabled) {\n      return;\n    }\n    this.canChange().then((change) => {\n      if (!change) {\n        return;\n      }\n      this.checked = !this.checked;\n      this.change.emit(this.checked);\n      this.onChangeCallback(this.checked);\n      this.onTouchedCallback();\n    });\n  }\n\n  @HostListener('mousedown')\n  onMousedown() {\n    this.isMousedown = true;\n  }\n\n  @HostListener('mouseup')\n  onMouseup() {\n    setTimeout(() => {\n      this.isMousedown = false;\n    }, AnimationNumberDuration.SLOW / 2);\n  }\n\n  canChange() {\n    let changeResult = Promise.resolve(true);\n\n    if (this.beforeChange) {\n      const result: any = this.beforeChange(this.checked);\n      if (typeof result !== 'undefined') {\n        if (result.then) {\n          changeResult = result;\n        } else if (result.subscribe) {\n          changeResult = (result as Observable<boolean>).toPromise();\n        } else {\n          changeResult = Promise.resolve(result);\n        }\n      }\n    }\n\n    return changeResult;\n  }\n\n  writeValue(obj: any): void {\n    if (obj !== this.checked) {\n      this.checked = !!obj;\n    }\n  }\n\n  registerOnChange(fn: any) {\n    this.onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: any) {\n    this.onTouchedCallback = fn;\n  }\n}\n","<span\n  class=\"devui-toggle {{ size ? 'devui-toggle-' + size : '' }}\"\n  [ngClass]=\"{ 'devui-checked': checked, 'devui-disabled': disabled }\"\n  [style.background]=\"checked && !disabled ? color : ''\"\n  [style.border-color]=\"checked && !disabled ? color : ''\"\n>\n  <span class=\"devui-toggle-inner-wrapper\">\n    <ng-template [ngTemplateOutlet]=\"customTemplate || defaultTemplate\"></ng-template>\n  </span>\n  <small [class.mouseDown]=\"isMousedown && !disabled\"></small>\n</span>\n\n<ng-template #defaultTemplate>\n  <div class=\"devui-toggle-inner\" [innerHTML]=\"content | safe: 'html'\"></div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SafePipeModule } from 'ng-devui/utils';\nimport { ToggleComponent } from './toggle.component';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, SafePipeModule],\n  exports: [ToggleComponent],\n  declarations: [ToggleComponent],\n})\nexport class ToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}