{"version":3,"file":"ng-nest-ui-button.mjs","sources":["../../../../lib/ng-nest/ui/button/button.property.ts","../../../../lib/ng-nest/ui/button/buttons.component.ts","../../../../lib/ng-nest/ui/button/button.component.ts","../../../../lib/ng-nest/ui/button/button.component.html","../../../../lib/ng-nest/ui/button/button.module.ts","../../../../lib/ng-nest/ui/button/ng-nest-ui-button.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\r\nimport { XPropertyFunction, XToNumber, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport type { XDirection, XSize, XNumber, XBoolean, XType } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Button\r\n * @selector x-button\r\n * @decorator component\r\n */\r\nexport const XButtonPrefix = 'x-button';\r\nconst X_BUTTON_CONFIG_NAME = 'button';\r\n\r\n/**\r\n * Button Property\r\n */\r\n@Component({ selector: `${XButtonPrefix}-property`, template: '' })\r\nexport class XButtonProperty extends XPropertyFunction(X_BUTTON_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 按钮类型\r\n   * @en_US Button type\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button>Initial</x-button>\r\n   * <x-button type=\"primary\">Primary</x-button>\r\n   * <x-button type=\"success\">Success</x-button>\r\n   * <x-button type=\"warning\">Warning</x-button>\r\n   * <x-button type=\"danger\">Danger</x-button>\r\n   * <x-button type=\"info\">Info</x-button>\r\n   * <x-button [type]=\"'primary'\">Primary</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly type = input<XButtonType>(this.config?.type ?? 'initial');\r\n  /**\r\n   * @zh_CN 图标\r\n   * @en_US Icon\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button icon=\"fto-edit\"></x-button>\r\n   * <x-button icon=\"fto-edit\">Edit</x-button>\r\n   * <x-button [icon]=\"'fto-edit'\">Edit</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly icon = input<string>('');\r\n  /**\r\n   * @zh_CN 提示\r\n   * @en_US Title\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button title=\"information\"></x-button>\r\n   * <x-button [title]=\"'information'\"></x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly title = input<string>('');\r\n  /**\r\n   * @zh_CN 按钮中元素的布局方式\r\n   * @en_US Button elements in the layout\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button direction=\"column\" icon=\"edit\">Button</x-button>\r\n   * <x-button direction=\"column-reverse\" icon=\"edit\">Button</x-button>\r\n   * <x-button direction=\"row\" icon=\"edit\">Button</x-button>\r\n   * <x-button direction=\"row-reverse\" icon=\"edit\">Button</x-button>\r\n   * <x-button [direction]=\"row\" icon=\"edit\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly direction = input<XDirection>('row');\r\n  /**\r\n   * @zh_CN tab 键控制次序\r\n   * @en_US Tab key control order\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button tabindex=\"0\"></x-button>\r\n   * <x-button [tabindex]=\"0\"></x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly tabindex = input<number, XNumber>(0, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 尺寸\r\n   * @en_US Size\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button size=\"big\">Big</x-button>\r\n   * <x-button size=\"large\">Large</x-button>\r\n   * <x-button size=\"medium\">Medium</x-button>\r\n   * <x-button size=\"small\">Small</x-button>\r\n   * <x-button size=\"mini\">Mini</x-button>\r\n   * <x-button [size]=\"'medium'\">Medium</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n  /**\r\n   * @zh_CN 仅显示图标\r\n   * @en_US Icon only\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button icon=\"fto-edit\" onlyIcon></x-button>\r\n   * <x-button icon=\"fto-edit\" onlyIcon=\"true\"></x-button>\r\n   * <x-button icon=\"fto-edit\" [onlyIcon]=\"true\"></x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly onlyIcon = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 激活的按钮（样式差异）\r\n   * @en_US Active button (style difference)\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button activated>Button</x-button>\r\n   * <x-button activated=\"true\">Button</x-button>\r\n   * <x-button [activated]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly activated = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 禁用按钮\r\n   * @en_US Disable button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button disabled>Button</x-button>\r\n   * <x-button disabled=\"true\">Button</x-button>\r\n   * <x-button [disabled]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 朴素按钮\r\n   * @en_US Plain button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button plain>Button</x-button>\r\n   * <x-button plain=\"true\">Button</x-button>\r\n   * <x-button [plain]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly plain = input<boolean, XBoolean>(this.config?.plain ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 平铺按钮\r\n   * @en_US Flat button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button flat>Button</x-button>\r\n   * <x-button flat=\"true\">Button</x-button>\r\n   * <x-button [flat]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly flat = input<boolean, XBoolean>(this.config?.flat ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 文字按钮\r\n   * @en_US Text button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button text>Button</x-button>\r\n   * <x-button text=\"true\">Button</x-button>\r\n   * <x-button [text]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly text = input<boolean, XBoolean>(this.config?.text ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 圆角按钮\r\n   * @en_US Round button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button round>Button</x-button>\r\n   * <x-button round=\"true\">Button</x-button>\r\n   * <x-button [round]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly round = input<boolean, XBoolean>(this.config?.round ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 圆型按钮（配合图标来使用）\r\n   * @en_US Round button (use with icon)\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button circle>Button</x-button>\r\n   * <x-button circle=\"true\">Button</x-button>\r\n   * <x-button [circle]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly circle = input<boolean, XBoolean>(this.config?.circle ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 加载中\r\n   * @en_US Loading\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button loading>Button</x-button>\r\n   * <x-button loading=\"true\">Button</x-button>\r\n   * <x-button [loading]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly loading = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 关闭按钮\r\n   * @en_US Close button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button closable>Button</x-button>\r\n   * <x-button closable=\"true\">Button</x-button>\r\n   * <x-button [closable]=\"true\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly closable = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 按钮类型属性 submit, button, reset\r\n   * @en_US Button type attribute. submit, button, reset\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-button attrType=\"button\">Button</x-button>\r\n   * <x-button attrType=\"submit\">Button</x-button>\r\n   * <x-button attrType=\"reset\">Button</x-button>\r\n   * ```\r\n   *\r\n   */\r\n  readonly attrType = input<XButtonAttrType>(this.config?.attrType ?? 'button');\r\n}\r\n\r\n/**\r\n * @zh_CN 按钮类型\r\n * @en_US Button type\r\n */\r\nexport type XButtonType = XType;\r\n\r\n/**\r\n * @zh_CN 按钮类型属性\r\n * - `'submit'` : 此类型用于提交表单数据\r\n * - `'reset'` : 此类型用于重置表单中的数据\r\n * - `'button'` : 此类型用于自定义按钮行为\r\n * @en_US Button attr type\r\n * - `'submit'` : This type is used to submit the form data\r\n * - `'reset'` : This type is used to reset the form data\r\n * - `'button'` : This type is used to the custom button\r\n */\r\nexport type XButtonAttrType = 'submit' | 'button' | 'reset';\r\n\r\n/**\r\n * Buttons\r\n * @selector x-buttons\r\n * @decorator component\r\n */\r\nexport const XButtonsPrefix = 'x-buttons';\r\nconst X_BUTTONS_CONFIG_NAME = 'buttons';\r\n\r\n/**\r\n * Buttons Property\r\n */\r\n@Component({ selector: `${XButtonsPrefix}-property`, template: '' })\r\nexport class XButtonsProperty extends XPropertyFunction(X_BUTTONS_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 按钮间距\r\n   * @en_US Button spacing\r\n   * @example\r\n   *\r\n   * ```html\r\n   * // ex: 10,'10px','1rem'\r\n   * <x-buttons space=\"1rem\">\r\n   *  <x-button>Button1</button>\r\n   *  <x-button>Button2</button>\r\n   * </x-buttons>\r\n   * ```\r\n   *\r\n   */\r\n  readonly space = input<string, XNumber>(this.config?.space ?? '', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 隐藏边框\r\n   * @en_US Hide border\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-buttons hiddenBorder>\r\n   *  <x-button>Button1</button>\r\n   *  <x-button>Button2</button>\r\n   * </x-buttons>\r\n   * ```\r\n   *\r\n   */\r\n  readonly hiddenBorder = input<boolean, XBoolean>(this.config?.hiddenBorder ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示阴影\r\n   * @en_US show box shadow\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-buttons boxShadow>\r\n   *  <x-button>Button1</button>\r\n   *  <x-button>Button2</button>\r\n   * </x-buttons>\r\n   * ```\r\n   *\r\n   */\r\n  readonly boxShadow = input<boolean, XBoolean>(this.config?.boxShadow ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 圆角按钮\r\n   * @en_US Round button\r\n   * @example\r\n   *\r\n   * ```html\r\n   * <x-buttons round>\r\n   *  <x-button>Button1</button>\r\n   *  <x-button>Button2</button>\r\n   * </x-buttons>\r\n   * ```\r\n   *\r\n   */\r\n  readonly round = input<boolean, XBoolean>(this.config?.round ?? false, { transform: XToBoolean });\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { XButtonsPrefix, XButtonsProperty } from './button.property';\r\n\r\n@Component({\r\n  selector: `${XButtonsPrefix}`,\r\n  template: '<ng-content></ng-content>',\r\n  styleUrls: ['./buttons.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XButtonsComponent extends XButtonsProperty {\r\n  @HostBinding('class') className = XButtonsPrefix;\r\n  @HostBinding('class.x-buttons-space') get getSpace() {\r\n    return !!this.space();\r\n  }\r\n  @HostBinding('class.x-buttons-hiddenBorder') get getHiddenBorder() {\r\n    return this.hiddenBorder();\r\n  }\r\n  @HostBinding('class.x-buttons-box-shadow') get getBoxShadow() {\r\n    return this.boxShadow();\r\n  }\r\n  @HostBinding('class.x-buttons-round') get getRound() {\r\n    return this.round();\r\n  }\r\n  @HostBinding('style.marginLeft') get getMarginLeft() {\r\n    return '-' + this.space();\r\n  }\r\n  @HostBinding('style.marginRight') get getMarginRight() {\r\n    return '-' + this.space();\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  ElementRef,\r\n  inject,\r\n  AfterViewInit,\r\n  OnDestroy,\r\n  computed,\r\n  HostBinding,\r\n  signal,\r\n  viewChild,\r\n  AfterContentChecked,\r\n  afterEveryRender\r\n} from '@angular/core';\r\nimport { XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XButtonPrefix, XButtonProperty } from './button.property';\r\nimport { XButtonsComponent } from './buttons.component';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XRippleDirective } from '@ng-nest/ui/ripple';\r\nimport { NgClass } from '@angular/common';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\n\r\n@Component({\r\n  selector: `${XButtonPrefix}`,\r\n  imports: [NgClass, XIconComponent, XRippleDirective],\r\n  templateUrl: './button.component.html',\r\n  styleUrls: ['./button.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XButtonComponent extends XButtonProperty implements AfterViewInit, AfterContentChecked, OnDestroy {\r\n  buttonRef = viewChild.required('buttonRef', { read: ElementRef<HTMLElement> });\r\n  contentRef = viewChild.required('content', { read: ElementRef<HTMLElement> });\r\n  private buttons = inject(XButtonsComponent, { optional: true, host: true });\r\n  private focusMontitor = inject(FocusMonitor);\r\n  contentIsEmpty = signal(false);\r\n  transition = signal(false);\r\n\r\n  @HostBinding('style.marginLeft') get marginLeft() {\r\n    return this.buttons?.space();\r\n  }\r\n  @HostBinding('style.marginRight') get marginRight() {\r\n    return this.buttons?.space();\r\n  }\r\n  @HostBinding('style.pointerEvents') get pointerEvents() {\r\n    return this.disabledComputed() ? 'none' : '';\r\n  }\r\n\r\n  constructor() {\r\n    super();\r\n    afterEveryRender(() => {\r\n      this.transition.set(true);\r\n    });\r\n  }\r\n\r\n  classMap = computed(() => ({\r\n    [`${XButtonPrefix}-${this.type()}`]: !XIsEmpty(this.type()) && !this.plain(),\r\n    [`${XButtonPrefix}-${this.type()}-plain`]: !XIsEmpty(this.type()) && this.plain(),\r\n    [`${XButtonPrefix}-${this.type()}-text`]: !XIsEmpty(this.type()) && this.text(),\r\n    [`${XButtonPrefix}-${this.type()}-flat`]: !XIsEmpty(this.type()) && this.flat(),\r\n    [`x-size-${this.size()}`]: !XIsEmpty(this.size()),\r\n    [`x-direction-${this.direction()}`]: !XIsEmpty(this.direction())\r\n  }));\r\n\r\n  roundSignal = computed(() => {\r\n    return this.buttons?.round() || this.round();\r\n  });\r\n\r\n  disabledComputed = computed(() => {\r\n    return this.loading() || this.disabled();\r\n  });\r\n\r\n  ngAfterViewInit() {\r\n    this.focusMontitor.monitor(this.buttonRef(), true);\r\n  }\r\n\r\n  ngAfterContentChecked() {\r\n    this.contentIsEmpty.set(XIsEmpty(this.contentRef().nativeElement.innerHTML.trim()));\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.focusMontitor.stopMonitoring(this.buttonRef());\r\n  }\r\n}\r\n","<button\r\n  #buttonRef\r\n  class=\"x-button\"\r\n  [tabindex]=\"tabindex()\"\r\n  [ngClass]=\"classMap()\"\r\n  [class.x-button-only-icon]=\"onlyIcon()\"\r\n  [class.x-button-activated]=\"activated()\"\r\n  [class.x-button-disabled]=\"disabledComputed()\"\r\n  [class.x-button-round]=\"roundSignal()\"\r\n  [class.x-button-circle]=\"circle()\"\r\n  [class.x-button-icon]=\"icon() && !contentIsEmpty()\"\r\n  [class.x-button-icon-not-content]=\"icon() && contentIsEmpty()\"\r\n  [class.x-button-closable]=\"closable()\"\r\n  [class.x-button-transition]=\"transition()\"\r\n  [title]=\"title()\"\r\n  x-ripple\r\n  [type]=\"type()\"\r\n  [disabled]=\"disabledComputed()\"\r\n  [attr.type]=\"attrType()\"\r\n  [attr.disabled]=\"disabledComputed() || null\"\r\n>\r\n  @if (direction() === 'row' && icon() && !loading()) {\r\n    <x-icon [type]=\"icon()\"></x-icon>\r\n  }\r\n  @if (loading()) {\r\n    <span class=\"x-button-loading\">\r\n      <svg class=\"x-button-circular\" viewBox=\"25 25 50 50\">\r\n        <circle class=\"x-button-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" />\r\n      </svg>\r\n    </span>\r\n  }\r\n  <span #content><ng-content></ng-content></span>\r\n  @if (direction() === 'row-reverse' && icon() && !loading()) {\r\n    <x-icon [type]=\"icon()\"></x-icon>\r\n  }\r\n</button>\r\n","import { NgModule } from '@angular/core';\r\nimport { XButtonComponent } from './button.component';\r\nimport { XButtonsComponent } from './buttons.component';\r\n\r\n@NgModule({\r\n  exports: [XButtonComponent, XButtonsComponent],\r\n  imports: [XButtonComponent, XButtonsComponent]\r\n})\r\nexport class XButtonModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}