{"version":3,"file":"ng-devui-button.mjs","sources":["../../devui/button/button-group.component.ts","../../devui/button/button-group.component.html","../../devui/button/button.component.ts","../../devui/button/button.component.html","../../devui/button/button.module.ts","../../devui/button/ng-devui-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\nexport type IButtonGroupSize = 'lg' | 'md' | 'sm' | 'xs';\n\n@Component({\n  selector: 'd-button-group',\n  templateUrl: './button-group.component.html',\n  styleUrls: ['./button-group.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n})\nexport class ButtonGroupComponent {\n  @Input() size: IButtonGroupSize = 'md';\n  constructor() {\n  }\n\n}\n","<div class=\"devui-btn-group {{ size ? 'devui-btn-group-' + size : '' }}\">\n  <ng-content></ng-content>\n</div>\n","import {\n  AfterContentChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport { AnimationNumberDuration } from 'ng-devui/utils';\nexport type IButtonType = 'button' | 'submit' | 'reset';\n/**\n * 类型中text-dark参数废弃\n */\nexport type IButtonStyle = 'common' | 'primary' | 'text' | 'text-dark' | 'danger' | 'success' | 'warning';\nexport type IButtonPosition = 'left' | 'right' | 'default';\nexport type IButtonSize = 'lg' | 'md' | 'sm' | 'xs';\n\n@Component({\n  selector: 'd-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n})\nexport class ButtonComponent implements AfterContentChecked {\n  @Input() id: string;\n  @Input() type: IButtonType = 'button';\n  @Input() bsStyle: IButtonStyle = 'primary';\n  @Input() shape: 'circle';\n  @Input() bsSize: IButtonSize = 'md';\n  /**\n   * @deprecated\n   * 原左右按钮用按钮组实现\n   */\n  @Input() bsPosition: IButtonPosition = 'default';\n  @Input() bordered: boolean;\n  @Input() icon: string;\n  @Input() disabled = false;\n  @Input() showLoading = false;\n  @Input() width?: string;\n  @Input() autofocus = false;\n  @Input() loadingTemplateRef: TemplateRef<any>;\n  @Output() btnClick = new EventEmitter<MouseEvent>();\n  @ViewChild('buttonContent', { static: true }) buttonContent: ElementRef;\n\n  @HostListener('click', ['$event'])\n  handleDisabled($event: Event) {\n    if (this.disabled) {\n      $event.preventDefault();\n      $event.stopImmediatePropagation();\n    }\n  }\n\n  waveLeft = 0;\n  waveTop = 0;\n  showWave = false;\n  isMouseDown = false;\n\n  constructor(private cd: ChangeDetectorRef) {\n  }\n\n  // 新增click事件，解决直接在host上使用click，在disabled状态下还能触发事件\n  onClick(event) {\n    if (!this.showLoading) {\n      this.btnClick.emit(event);\n    }\n    this.showClickWave(event);\n  }\n\n  showClickWave(event) {\n    this.waveLeft = event.offsetX;\n    this.waveTop = event.offsetY;\n    this.showWave = true;\n\n    setTimeout(() => {\n      this.showWave = false;\n      this.cd.detectChanges();\n    }, AnimationNumberDuration.SLOW);\n  }\n\n  ngAfterContentChecked(): void {\n    this.cd.detectChanges();\n  }\n\n  hasContent() {\n    return !!this.buttonContent && this.buttonContent.nativeElement && this.buttonContent.nativeElement.innerHTML.trim();\n  }\n}\n","<button\n  [attr.id]=\"id\"\n  class=\"devui-btn devui-btn-{{ bsStyle }} devui-btn-{{ bsSize }} devui-btn-{{ bsPosition }}\"\n  [class.devui-btn-circle]=\"shape === 'circle'\"\n  [type]=\"type\"\n  [disabled]=\"disabled\"\n  [class.bordered]=\"bordered\"\n  [class.mouseDown]=\"isMouseDown\"\n  [backdrop]=\"true\"\n  dLoading\n  [showLoading]=\"showLoading\"\n  [loadingTemplateRef]=\"loadingTemplateRef\"\n  [ngStyle]=\"{ width: width }\"\n  [dAutoFocus]=\"autofocus\"\n  (click)=\"onClick($event)\"\n  [ngClass]=\"{ 'd-btn-icon': !!icon && !hasContent(), 'd-btn-icon-wrap': !!icon }\"\n  (mousedown)=\"isMouseDown = true\"\n  (mouseup)=\"isMouseDown = false\"\n>\n  <span *ngIf=\"!!icon\" class=\"devui-icon-fix icon {{ icon }}\" [ngClass]=\"{ 'clear-right-8': hasContent() }\"></span>\n  <!--\n  --><span class=\"button-content\" [class.devui-btn-more-text-omits]=\"width !== undefined\" #buttonContent><ng-content></ng-content></span>\n  <div class=\"devui-button-water-wave\" *ngIf=\"showWave\" [ngStyle]=\"{ top: waveTop + 'px', left: waveLeft + 'px' }\"></div>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DCommonModule } from 'ng-devui/common';\nimport { LoadingModule } from 'ng-devui/loading';\nimport { ButtonGroupComponent } from './button-group.component';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n  imports: [CommonModule, LoadingModule, DCommonModule],\n  exports: [ButtonComponent, ButtonGroupComponent],\n  declarations: [ButtonComponent, ButtonGroupComponent],\n  providers: [],\n})\nexport class ButtonModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}