{"version":3,"file":"acorex-components-button.mjs","sources":["../../../../packages/components/button/src/lib/button-item.component.ts","../../../../packages/components/button/src/lib/button-item-list.component.ts","../../../../packages/components/button/src/lib/button.component.ts","../../../../packages/components/button/src/lib/button.component.html","../../../../packages/components/button/src/lib/button.module.ts","../../../../packages/components/button/src/acorex-components-button.ts"],"sourcesContent":["import {\n  AXClickEvent,\n  AXComponent,\n  AXStyleColorType,\n  MXColorComponent,\n  MXInteractiveComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\n\nimport { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { classes } from 'polytype';\n\nexport interface AXButtonItemListItem {\n  name: string;\n  text: string;\n  icon: string;\n  divided?: boolean;\n  disabled?: boolean;\n  selected?: boolean;\n  iconOnly?: boolean;\n  color?: AXStyleColorType;\n  loading?: boolean;\n}\n\n/**\n * Represents a button item with optional content like icons, text, and dropdowns.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-button-item',\n  template: `\n    <div class=\"ax-action-item-prefix\">\n      <ng-content select=\"ax-prefix\"> </ng-content>\n      <ng-content select=\"ax-loading\"> </ng-content>\n      <ng-content select=\"ax-icon\"> </ng-content>\n      @if (text) {\n        <ax-text>{{ text | translate | async }}</ax-text>\n      }\n    </div>\n    <div class=\"ax-action-item-suffix\">\n      <ng-content select=\"ax-suffix\"> </ng-content>\n    </div>\n    <ng-content select=\"ax-dropdown-panel\"> </ng-content>\n  `,\n  encapsulation: ViewEncapsulation.None,\n\n  inputs: ['color', 'disabled'],\n  outputs: ['onClick', 'onFocus', 'onBlur', 'disabledChange'],\n  imports: [CommonModule, AXDecoratorGenericComponent, AXTranslationModule],\n  providers: [{ provide: AXComponent, useExisting: AXButtonItemComponent }],\n  styleUrl: './button-item.component.css',\n})\nexport class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorComponent) {\n  /**\n   * Text displayed on the button item.\n   */\n  @Input()\n  text: string;\n\n  /**\n   *  @ignore\n   */\n  private _selected: boolean;\n\n  /**\n   * Indicates whether the button item is selected.\n   *\n   * @param v - A boolean indicating the selected state.\n   * Updates the view when the value changes.\n   */\n  @Input()\n  public get selected(): boolean {\n    return this._selected;\n  }\n  public set selected(v: boolean) {\n    this._selected = v;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Whether the item is visually separated from other items.\n   *  @defaultValue false\n   */\n  @Input()\n  divided = false;\n\n  /**\n   * Data associated with the button item.\n   */\n  @Input()\n  data: unknown;\n\n  /**\n   * The name of the button item.\n   */\n  @Input()\n  name: string;\n\n  /**\n   * Emitted when the button item is clicked.\n   * @event\n   * The emitted value is an `AXClickEvent` object containing event details.\n   */\n  @Output()\n  onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n  /**\n   * Handles click events on the button item host element.\n   * Emits the onClick event if the component is not disabled.\n   *\n   * @param e - The mouse event that triggered the click.\n   * @ignore\n   */\n  @HostListener('click', ['$event'])\n  __hostClick(e: MouseEvent) {\n    if (!this.disabled) {\n      this.onClick.emit({\n        component: this,\n        htmlElement: this.getHostElement(),\n        nativeEvent: e,\n      });\n    }\n  }\n  /**\n   * Handles focus events on the button item host element.\n   * Emits the onFocus event.\n   *\n   * @param e - The focus event that was triggered.\n   * @ignore\n   */\n  @HostListener('focus', ['$event'])\n  __hostFocus(e: FocusEvent) {\n    this.emitOnFocusEvent(e);\n  }\n\n  /**\n   * Handles blur events on the button item host element.\n   * Emits the onBlur event.\n   *\n   * @param e - The blur event that was triggered.\n   * @ignore\n   */\n  @HostListener('blur', ['$event'])\n  __hostBlur(e: FocusEvent) {\n    this.emitOnBlurEvent(e);\n  }\n\n  /**\n   * Generates the CSS classes for the button item host element.\n   * Includes classes for icon-only state, disabled state, selected state, divided state, and color.\n   *\n   * @returns string - The space-separated CSS class names.\n   * @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    const cssClasses = {\n      'ax-button-icon': !this.text,\n      'ax-state-disabled': this.disabled,\n      'ax-state-selected': this.selected,\n      'ax-divided': this.divided,\n      'ax-action-item': true,\n    };\n    cssClasses[`${this.color}`] = true;\n    return Object.entries(cssClasses)\n      .filter((c) => c[1])\n      .map((c) => c[0])\n      .join(' ');\n  }\n\n  /**\n   * Sets the tabindex attribute for keyboard navigation.\n   *\n   * @ignore\n   */\n  @HostBinding('attr.tabindex') tabindex = '0';\n}\n","import {\n  AXClickEvent,\n  AXClosableComponent,\n  AXComponent,\n  AXItemClickEvent,\n  MXInteractiveComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport {\n  Component,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Output,\n  QueryList,\n  ViewEncapsulation,\n  afterNextRender,\n  inject,\n  input,\n} from '@angular/core';\nimport { AXButtonItemComponent, AXButtonItemListItem } from './button-item.component';\n\n/**\n * A component for rendering a list of button items with optional dividers between them.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-button-item-list',\n  template: `\n    @for (item of items(); track item.name) {\n      <ax-button-item\n        [text]=\"item.text\"\n        [name]=\"item.name\"\n        [disabled]=\"isDisabled(item)\"\n        [color]=\"item.color\"\n        [selected]=\"item.selected\"\n        (onClick)=\"_handleOnItemClick($event)\"\n      >\n        @if (item.loading) {\n          <ax-loading class=\"ax-button-item-loading\"></ax-loading>\n        } @else if (item.icon) {\n          <ax-prefix>\n            <ax-icon [icon]=\"item.icon\"></ax-icon>\n          </ax-prefix>\n        }\n      </ax-button-item>\n      @if (item.divided) {\n        <ax-divider></ax-divider>\n      }\n    }\n    <ng-content></ng-content>\n  `,\n  styleUrls: ['./button-item-list.component.css'],\n\n  encapsulation: ViewEncapsulation.None,\n  imports: [AXButtonItemComponent, AXDecoratorGenericComponent, AXDecoratorIconComponent, AXLoadingComponent],\n  providers: [{ provide: AXComponent, useExisting: AXButtonItemListComponent }],\n})\nexport class AXButtonItemListComponent extends MXInteractiveComponent {\n  private parent = inject<AXClosableComponent>(AXClosableComponent, { optional: true });\n\n  @ContentChildren(AXButtonItemComponent)\n  protected _contentButtons: QueryList<AXButtonItemComponent>;\n\n  /**\n   * The list of button items to display.\n   *\n   * @defaultValue []\n   */\n  items = input<AXButtonItemListItem[]>([]);\n\n  /**\n   * Determines if the parent closable component should be closed automatically when\n   * an item is clicked.\n   *\n   * @defaultValue true\n   */\n  closeParentOnClick = input(true);\n\n  /**\n   * Locks interaction for all items when any item is loading.\n   *\n   * @defaultValue false\n   */\n  lockOnLoading = input(false);\n\n  /**\n   * Emits an event when an item is clicked.\n   * The event contains details about the clicked item.\n   *\n   * @event {AXItemClickEvent<AXButtonItemComponent>} - The event object containing clicked item details.\n   */\n  @Output()\n  onItemClick: EventEmitter<AXItemClickEvent<AXButtonItemComponent>> = new EventEmitter<\n    AXItemClickEvent<AXButtonItemComponent>\n  >();\n\n  /**\n   * Initializes the button item list component.\n   * Sets up content change detection and initializes content after the next render.\n   *\n   * @ignore\n   */\n  constructor() {\n    super();\n    afterNextRender(() => {\n      this._initContents();\n      this._contentButtons.changes.subscribe(() => {\n        this._initContents();\n      });\n    });\n  }\n\n  protected isDisabled(item: AXButtonItemListItem): boolean {\n    if (item.disabled) {\n      return true;\n    }\n    if (item.loading) {\n      return true;\n    }\n    if (this.lockOnLoading() && this.hasAnyLoadingItem()) {\n      return true;\n    }\n    return false;\n  }\n\n  protected hasAnyLoadingItem(): boolean {\n    return this.items().some((item) => !!item.loading);\n  }\n  /**\n   * Initializes the content of the button item list.\n   * Binds events and properties to content button items and marks for change detection.\n   *\n   * @ignore\n   */\n  private _initContents() {\n    this._bindEvents();\n    this._bindProps();\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Binds click events to content button items.\n   * Subscribes to onClick events of child button items if not already subscribed.\n   *\n   * @ignore\n   */\n  private _bindEvents() {\n    this._contentButtons?.forEach((b) => {\n      if (!b.onClick.length)\n        b.onClick.subscribe((c) => {\n          this._handleOnItemClick(c);\n        });\n    });\n  }\n\n  /**\n   * Binds properties to content button items.\n   * Sets the disabled state of child button items based on the parent's disabled state.\n   *\n   * @ignore\n   */\n  private _bindProps() {\n    this._contentButtons?.forEach((b) => {\n      b.disabled = b.disabled ?? this.disabled;\n    });\n  }\n\n  /**\n   * Handles click events from button items.\n   * Closes the parent component if available and emits the item click event.\n   *\n   * @param e - The click event from the button item.\n   * @ignore\n   */\n  protected _handleOnItemClick(e: AXClickEvent) {\n    if (this.closeParentOnClick()) {\n      this.parent?.close();\n    }\n    this._emitOnItemClickEvent(e, e.component);\n  }\n\n  /**\n   * Emits the onItemClick event with details about the clicked item.\n   *\n   * @param e - The click event from the button item.\n   * @param item - The button item component that was clicked.\n   * @ignore\n   */\n  _emitOnItemClickEvent(e: AXClickEvent, item: AXButtonItemComponent): void {\n    this.onItemClick.emit({\n      component: this,\n      item,\n      htmlElement: this.getHostElement(),\n      nativeEvent: e.nativeEvent,\n      name: item.name,\n      data: item.data,\n    });\n  }\n\n  /**\n   * Closes the parent closable component if available.\n   */\n  public closeParent(): void {\n    this.parent?.close();\n  }\n\n  /**\n   * Generates the CSS classes for the button item list host element.\n   * Includes classes for action list and vertical layout.\n   *\n   * @returns string - The space-separated CSS class names.\n   * @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    return `ax-action-list ax-action-list-vertical`;\n  }\n}\n","import {\n  AXClickEvent,\n  AXComponent,\n  AXFocusableComponent,\n  AXRippleDirective,\n  MXButtonBaseComponent,\n} from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  HostBinding,\n  ViewEncapsulation,\n  computed,\n  contentChild,\n  input,\n  model,\n} from '@angular/core';\nimport { AXButtonType } from './button-item.class';\nimport { AXButtonItemComponent } from './button-item.component';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.css'],\n  inputs: ['disabled', 'size', 'tabIndex', 'color', 'look', 'text', 'toggleable', 'selected'],\n  outputs: [\n    'onBlur',\n    'onFocus',\n    'onClick',\n    'selectedChange',\n    'toggleableChange',\n    'lookChange',\n    'colorChange',\n    'disabledChange',\n  ],\n\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: AXComponent, useExisting: AXButtonComponent },\n    { provide: AXButtonItemComponent, useExisting: AXButtonComponent },\n    { provide: AXFocusableComponent, useExisting: AXButtonComponent },\n  ],\n  imports: [AXRippleDirective, AXTranslationModule, CommonModule],\n})\nexport class AXButtonComponent extends MXButtonBaseComponent implements AfterViewInit {\n  iconOnly = input(false);\n\n  protected showIcon = computed(() => {\n    return !this.hasLoadingIcon();\n  });\n  protected loadingIcon = contentChild(AXLoadingComponent);\n  protected hasLoadingIcon = computed(() => this.loadingIcon() != null);\n\n  /**\n   *  Fires each time the user clicks the button.\n   *  @event\n   */\n  onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n  /**\n   * Specifies the type of button to be used in the action sheet.\n   *\n   * @defaultValue 'button'\n   */\n  type = input<AXButtonType>('button');\n\n  /**\n   * Defines the text displayed while the action sheet is loading.\n   *\n   * @defaultValue null\n   */\n  loadingText = model<string | null>(null);\n\n  /**\n   *  @ignore\n   */\n  ngAfterViewInit(): void {\n    this.getHostElement().removeAttribute('tabindex');\n  }\n\n  /**\n   *  @ignore\n   */\n  private getButton(): HTMLButtonElement {\n    return this.getHostElement().firstElementChild as HTMLButtonElement;\n  }\n\n  /**\n   *  @ignore\n   */\n  _handleClick(e: MouseEvent) {\n    if (this.disabled) {\n      e.preventDefault();\n      return;\n    }\n    if (this.toggleable) {\n      this.selected = !this.selected;\n    }\n    this.onClick.emit({\n      component: this,\n      htmlElement: this.getHostElement(),\n      nativeEvent: e,\n    });\n\n    // TODO: check keyboard event\n    setTimeout(() => {\n      this.blur();\n    });\n  }\n\n  /**\n   * Triggers a click event on the button element.\n   */\n  click() {\n    this.getButton()?.click();\n  }\n\n  /**\n   *  @ignore\n   */\n  @HostBinding('class')\n  private get __hostClass(): string[] {\n    const list = Object.entries(this.cssClasses)\n      .filter((c) => c[1])\n      .map((c) => c[0]);\n    if (this.iconOnly()) {\n      list.push('ax-button-icon');\n    }\n    return list;\n  }\n\n  protected override emitOnFocusEvent(e?: FocusEvent): void {\n    this.getButton()?.classList.add('ax-state-focus');\n    super.emitOnFocusEvent(e);\n  }\n\n  protected override emitOnBlurEvent(e?: FocusEvent): void {\n    this.getButton()?.classList.remove('ax-state-focus');\n    super.emitOnBlurEvent(e);\n  }\n\n  override focus() {\n    this.getButton()?.focus();\n  }\n\n  override blur() {\n    this.getButton()?.blur();\n  }\n}\n","<button\n  [axRipple]\n  [attr.type]=\"type()\"\n  [disabled]=\"disabled\"\n  [attr.tabindex]=\"tabIndex\"\n  (click)=\"_handleClick($event)\"\n  (blur)=\"emitOnBlurEvent($event)\"\n  (focus)=\"emitOnFocusEvent($event)\"\n  class=\"{{ color }}\n  {{ interactiveLook }} \n  {{ selected ? 'ax-state-selected' : '' }} \n  {{ disabled ? 'ax-state-disabled' : '' }}\"\n>\n  <ng-content select=\"ax-loading, ax-loading-spinner\"> </ng-content>\n\n  @if (showIcon()) {\n    <ng-content select=\"ax-prefix, ax-icon\"> </ng-content>\n  }\n\n  <ng-content select=\"ax-content\"> </ng-content>\n\n  @if (text && !loadingText() && !iconOnly()) {\n    <span class=\"ax-button-text\">{{ text | translate | async }}</span>\n  }\n\n  @if (loadingText()) {\n    <span class=\"ax-button-text\">{{ loadingText() }}</span>\n  }\n\n  <ng-content select=\"ax-suffix\"> </ng-content>\n  <ng-content select=\"ax-dropdown-panel\"> </ng-content>\n  <ng-content select=\".tab-content\"> </ng-content>\n\n  <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { AXButtonItemListComponent } from './button-item-list.component';\nimport { AXButtonItemComponent } from './button-item.component';\nimport { AXButtonComponent } from './button.component';\n\n@NgModule({\n  imports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent],\n  exports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent],\n})\nexport class AXButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}