{"version":3,"file":"acorex-components-fab.mjs","sources":["../../../../packages/components/fab/src/lib/fab.component.ts","../../../../packages/components/fab/src/lib/fab.component.html","../../../../packages/components/fab/src/lib/fab-item/fab-item.component.ts","../../../../packages/components/fab/src/lib/fab-item/fab-item.component.html","../../../../packages/components/fab/src/acorex-components-fab.ts"],"sourcesContent":["import { AXClickEvent, AXEvent, AXPlacementType } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { Component, effect, input, model, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'ax-fab',\n  templateUrl: './fab.component.html',\n  styleUrls: ['./fab.component.css'],\n  encapsulation: ViewEncapsulation.None,\n\n  imports: [AXButtonComponent, AXPopoverModule, AXDecoratorModule],\n})\nexport class AXFabComponent {\n  label = input<string>(null);\n\n  popupStyle = input<'bubble' | 'box'>('bubble');\n\n  popupPlacement = model<AXPlacementType>(null);\n\n  size = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n  protected popoverRef = viewChild(AXPopoverComponent);\n\n  protected offsetPopover = signal<number>(null);\n\n  #eff = effect(() => {\n    if (this.popupStyle() === 'box') {\n      this.popupPlacement.set('top-end');\n      this.offsetPopover.set(-10);\n    } else {\n      this.popupPlacement.set('top');\n      this.offsetPopover.set(-2);\n    }\n  });\n\n  /**\n   *  Fires each time the user clicks the button.\n   *  @event\n   */\n  onClick = output<AXClickEvent>();\n\n  /**\n   * Emits when the popover is opened.\n   * @event\n   */\n  onOpened = output<AXEvent>();\n\n  /**\n   * Emits when the popover is closed.\n   * @event\n   */\n  onClosed = output<AXEvent>();\n\n  private addStyleClass() {\n    const fabItemContainer = document.querySelector('.ax-fab-item-container');\n    if (!fabItemContainer) return;\n    if (this.popupStyle() === 'box') {\n      fabItemContainer.classList.add('ax-fab-box-style');\n    } else {\n      fabItemContainer.classList.add('ax-fab-bubble-style');\n    }\n  }\n\n  protected openPopover() {\n    this.addStyleClass();\n    this.onOpened.emit({ component: this });\n  }\n\n  protected closePopover() {\n    this.onClosed.emit({ component: this });\n  }\n\n  public close() {\n    this.popoverRef().close();\n  }\n}\n","<ax-button class=\"ax-{{ size() }}\" #btn (onClick)=\"onClick.emit($event)\" color=\"primary\" look=\"solid\" [text]=\"label()\">\n  <ng-content select=\"ax-icon\"> </ng-content>\n</ax-button>\n\n<ax-popover\n  (onOpened)=\"openPopover()\"\n  (onClosed)=\"closePopover()\"\n  [disablePanelClass]=\"true\"\n  [offsetY]=\"offsetPopover()\"\n  [placement]=\"popupPlacement()\"\n  [target]=\"btn\"\n>\n  <div class=\"ax-fab-item-container ax-action-list ax-action-list-vertical\">\n    <ng-content select=\"ax-fab-item\"> </ng-content>\n  </div>\n</ax-popover>\n","import { AXClickEvent } from '@acorex/cdk/common';\nimport { AXButtonComponent, AXButtonItemComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXFabComponent } from '../fab.component';\n\n@Component({\n  selector: 'ax-fab-item',\n  templateUrl: './fab-item.component.html',\n  encapsulation: ViewEncapsulation.None,\n\n  imports: [AXButtonComponent, AXButtonItemComponent, AXDecoratorModule, NgTemplateOutlet],\n})\nexport class AXFabItemComponent {\n  label = input<string>(null);\n\n  protected parent = inject(AXFabComponent);\n\n  protected buttonSize = computed(() => {\n    switch (this.parent.size()) {\n      case 'xl':\n        return 'lg';\n      case 'lg':\n        return 'md';\n      case 'md':\n        return 'sm';\n      case 'sm':\n        return 'xs';\n      case 'xs':\n        return 'xs';\n    }\n  });\n\n  /**\n   *  Fires each time the user clicks the button.\n   *  @event\n   */\n  onClick = output<AXClickEvent>();\n\n  protected clickHandler() {\n    this.onClick.emit({ component: this });\n  }\n}\n","<ng-template #iconTpl>\n  <ng-content select=\"ax-icon\"></ng-content>\n</ng-template>\n\n@if (parent.popupStyle() === 'bubble') {\n  <ax-button class=\"ax-{{ buttonSize() }}\" [text]=\"label()\" (onClick)=\"clickHandler()\">\n    <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n  </ax-button>\n} @else {\n  <ax-button-item [text]=\"label()\" (onClick)=\"clickHandler()\">\n    <ax-prefix>\n      <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\n    </ax-prefix>\n  </ax-button-item>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}