{"version":3,"file":"acorex-components-action-sheet.mjs","sources":["../../../../packages/components/action-sheet/src/lib/action-sheet.class.ts","../../../../packages/components/action-sheet/src/lib/action-sheet.service.ts","../../../../packages/components/action-sheet/src/lib/action-sheet.component.ts","../../../../packages/components/action-sheet/src/lib/action-sheet.component.html","../../../../packages/components/action-sheet/src/lib/action-sheet.module.ts","../../../../packages/components/action-sheet/src/acorex-components-action-sheet.ts"],"sourcesContent":["import { AXComponentCloseEvent, AXStyleColorType } from '@acorex/cdk/common';\nimport { AXOverlayRef } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Directive, ElementRef, input, TemplateRef, Type } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface AXActionSheetItem {\n  name?: string;\n  text: string;\n  icon?: string;\n  disabled?: boolean;\n  color?: AXStyleColorType;\n  onClick?: () => void;\n  suffix?: {\n    text: string;\n  };\n  break?: boolean;\n  group?: {\n    name?: string;\n    title?: string;\n  };\n}\n\nexport type AXActionSheetContentType = TemplateRef<unknown> | Type<unknown>;\n\nexport interface AXActionSheetConfig {\n  title?: string;\n  subTitle?: string;\n  closeButton?: boolean;\n  header?: boolean;\n  /** @deprecated Use `inputs` instead to pass data to the action sheet content component. */\n  data?: unknown;\n  /** Input values to pass to the content component */\n  inputs?: unknown;\n  closeOnBackdropClick?: boolean;\n  items?: AXActionSheetItem[];\n  content?: AXActionSheetContentType;\n  draggable?: boolean;\n  dragUp?: boolean;\n  /**\n   * Element used to resolve inherited visual context for overlays rendered\n   * outside the originating DOM subtree.\n   *\n   * This affects Appearance, Light/Dark theme, Contrast, Size, and supported\n   * Density context. It does not affect overlay positioning.\n   */\n  contextElement?: HTMLElement | ElementRef<HTMLElement>;\n}\n\n/**\n * Reference to an open action sheet, providing methods to interact with it.\n */\nexport interface AXActionSheetRef<TResult = unknown> {\n  /** Closes the action sheet with optional result data */\n  close: (data?: TResult) => void;\n  /** Sets input values on the content component */\n  setInputs: (values: AXComponentInputs) => void;\n  /** Observable that emits when the action sheet is closed */\n  onClose: Subject<TResult>;\n}\n\n/**\n * Base class for components that are displayed inside an action sheet.\n * Extend this class to get access to the action sheet reference and helper methods.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class MyActionSheetContent extends AXActionSheetComponentBase {\n *   save() {\n *     this.close({ saved: true });\n *   }\n * }\n * ```\n */\n@Directive()\nexport abstract class AXActionSheetComponentBase {\n  /** Reference to the parent action sheet */\n  __actionSheet__ = input<AXActionSheetRef>();\n\n  /**\n   * Closes the action sheet with optional result data.\n   * @param data - Optional data to pass to the close handler\n   */\n  close(data: any = null) {\n    this.__actionSheet__()?.close(data);\n  }\n}\n\nexport interface AXActionSheetEvent {\n  overlayRef?: AXOverlayRef<unknown>;\n  nativeEvent?: Event;\n  isUserInteraction: boolean;\n  data: {\n    state: 'open' | 'close' | 'dragStart' | 'dragEnd' | 'fullScreen' | 'normalSize';\n  };\n}\n\n/**\n * @internal\n * Internal reference used by action sheet service to manage overlay instances\n */\nexport interface AXActionSheetInternalRef {\n  overlayRef: AXOverlayRef<unknown>;\n  close: (result?: AXComponentCloseEvent) => void;\n}\n","import { AXComponentCloseEvent } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n  AXActionSheetConfig,\n  AXActionSheetEvent,\n  AXActionSheetInternalRef,\n  AXActionSheetRef,\n} from './action-sheet.class';\nimport { AXActionSheetComponent } from './action-sheet.component';\n\n/**\n * @deprecated Use `AXActionSheetRef` instead\n */\nexport interface AXActionSheetDialogRef<TResult = unknown> {\n  close: (e?: TResult) => void;\n  setInputs: (values: AXComponentInputs) => void;\n  closed: Subject<{ data?: TResult }>;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AXActionSheetService {\n  private overlayService = inject(AXOverlayService);\n  private readonly actionSheetEvent = new Subject<AXActionSheetEvent>();\n  actionSheetEvent$ = this.actionSheetEvent.asObservable();\n\n  /**\n   * Opens an action sheet with the specified configuration.\n   * This method creates and displays an action sheet component with the provided options.\n   * The action sheet will slide up from the bottom of the screen and can be dismissed\n   * by tapping outside, pressing escape, or calling the close method.\n   *\n   * @param config - The configuration object that defines the action sheet's appearance and behavior.\n   *                 Must include at least a title or content property. Will be merged with default config.\n   * @param isUserInteraction - Whether the action sheet is opened by user interaction (default: true).\n   *                           This affects how the action sheet handles accessibility and focus management.\n   * @returns A promise that resolves to a dialog reference containing methods to control the action sheet.\n   *          The reference includes methods like close(), setInputs() and a closed observable for tracking dialog state.\n   * @example\n   * ```typescript\n   * const dialogRef = await actionSheetService.open({\n   *   title: 'Choose an option',\n   *   content: MyCustomComponent,\n   *   inputs: { userId: 123, userName: 'John' }\n   * });\n   *\n   * // Update inputs dynamically\n   * dialogRef.setInputs({ userName: 'Jane' });\n   *\n   * dialogRef.closed.subscribe(result => {\n   *   console.log('Action sheet closed with:', result.data);\n   * });\n   * ```\n   */\n  async open<TResult = any>(config: AXActionSheetConfig, isUserInteraction = true): Promise<AXActionSheetRef<TResult>> {\n    const defaultConfig: AXActionSheetConfig = {\n      title: 'action-sheet.title',\n      closeButton: true,\n      closeOnBackdropClick: true,\n      header: true,\n    };\n    config = Object.assign(defaultConfig, config);\n\n    const closed = new Subject<{ data?: TResult }>();\n    const onClose = new Subject<TResult>();\n    // Using let because internalRef is assigned after overlayRef is created\n    // eslint-disable-next-line prefer-const\n    let internalRef: AXActionSheetInternalRef;\n\n    const closeActionSheet = (result?: AXComponentCloseEvent) => {\n      if (internalRef) {\n        internalRef.overlayRef.dispose();\n        onClose.next(result?.data as TResult);\n        onClose.complete();\n        if (result?.data) {\n          closed.next({ data: result.data as TResult });\n        } else {\n          closed.next({});\n        }\n        closed.complete();\n      }\n    };\n\n    // Create the action sheet reference that will be passed to content components\n    const actionSheetRef: AXActionSheetRef<TResult> = {\n      close: (data?: TResult) => {\n        const component = internalRef?.overlayRef.instance;\n        if (component && 'close' in component) {\n          (component as unknown as AXActionSheetComponent).close(data);\n        } else {\n          closeActionSheet({ data } as AXComponentCloseEvent);\n        }\n      },\n      setInputs: (values: AXComponentInputs) => {\n        const ref = internalRef?.overlayRef.instance;\n        if (ref && ref instanceof ComponentRef) {\n          const componentInstance = ref.instance as AXActionSheetComponent;\n          componentInstance.setContentInputs(values);\n        } else if (ref && 'setContentInputs' in ref) {\n          (ref as unknown as AXActionSheetComponent).setContentInputs(values);\n        }\n      },\n      onClose,\n    };\n\n    const overlayRef = await this.overlayService.create<AXActionSheetComponent>(AXActionSheetComponent, {\n      inputs: {\n        data: config,\n        onClose: closeActionSheet,\n        __actionSheetRef__: actionSheetRef,\n      },\n      contextElement: config.contextElement,\n      centered: false,\n      panelClass: ['ax-action-sheet-panel'],\n      backdrop: {\n        enabled: true,\n        background: true,\n        closeOnClick: config.closeOnBackdropClick,\n      },\n      onDispose: () => {\n        // Clean up when disposed externally (e.g., backdrop click)\n        closed.next({});\n        closed.complete();\n      },\n    });\n\n    internalRef = {\n      overlayRef,\n      close: closeActionSheet,\n    };\n\n    // Set the overlayRef input after creation\n    if (overlayRef.instance && 'setInput' in overlayRef.instance) {\n      (overlayRef.instance as { setInput: (name: string, value: unknown) => void }).setInput('overlayRef', overlayRef);\n    }\n\n    // Positioning is handled by CSS via .ax-action-sheet-panel class\n\n    this.actionSheetEvent.next({\n      overlayRef,\n      data: { state: 'open' },\n      isUserInteraction,\n    });\n\n    const axDialogRef: AXActionSheetRef<TResult> = {\n      close: actionSheetRef.close,\n      setInputs: actionSheetRef.setInputs,\n      onClose: actionSheetRef.onClose,\n    };\n\n    return axDialogRef;\n  }\n\n  /**\n   * Sets the current state of action sheet events.\n   * This method is used internally to track action sheet lifecycle events such as open, close,\n   * drag start, drag end, and full screen transitions. It emits events through the actionSheetEvent$\n   * observable for external subscribers to monitor action sheet state changes.\n   *\n   * @param event - The action sheet event to emit. Contains information about the event type,\n   *               associated data, user interaction status, and overlay reference.\n   * @returns void\n   */\n  setActionSheetEventState(event: AXActionSheetEvent): void {\n    this.actionSheetEvent.next(event);\n  }\n}\n","import {\n  AXClosableComponent,\n  AXComponent,\n  AXComponentCloseEvent,\n  AXFocusableComponent,\n  MXBaseComponent,\n} from '@acorex/cdk/common';\nimport { AXOverlayRef } from '@acorex/cdk/overlay';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  ComponentRef,\n  computed,\n  DOCUMENT,\n  inject,\n  input,\n  OnDestroy,\n  OnInit,\n  PLATFORM_ID,\n  Renderer2,\n  signal,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AXActionSheetConfig, AXActionSheetItem, AXActionSheetRef } from './action-sheet.class';\nimport { AXActionSheetService } from './action-sheet.service';\n\n/**\n * A component for displaying an action sheet, which is a menu that slides up from the bottom of the screen.\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-action-sheet',\n  templateUrl: './action-sheet.component.html',\n  styleUrls: ['./action-sheet.component.css'],\n\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '(keydown.escape)': 'onKeydownHandler()',\n  },\n  providers: [\n    { provide: AXComponent, useExisting: AXActionSheetComponent },\n    {\n      provide: AXClosableComponent,\n      useExisting: AXActionSheetComponent,\n    },\n    {\n      provide: AXFocusableComponent,\n      useExisting: AXActionSheetComponent,\n    },\n  ],\n  imports: [\n    AXDecoratorGenericComponent,\n    AXDecoratorCloseButtonComponent,\n    NgTemplateOutlet,\n    AXTranslatorPipe,\n    AsyncPipe,\n  ],\n})\nexport class AXActionSheetComponent extends MXBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n  /** Action sheet configuration data */\n  data = input.required<AXActionSheetConfig>();\n\n  /** @internal Callback function to close the action sheet */\n  onClose = input<(result?: AXComponentCloseEvent) => void>();\n\n  /** @internal Overlay reference for event tracking */\n  overlayRef = input<AXOverlayRef<unknown>>();\n\n  /** @internal Reference to the action sheet for content components */\n  __actionSheetRef__ = input<AXActionSheetRef>();\n\n  @ViewChild('contentContainer', { read: ViewContainerRef })\n  private contentContainerRef: ViewContainerRef;\n\n  private document = inject(DOCUMENT);\n  private platformID = inject(PLATFORM_ID);\n  private renderer = inject(Renderer2);\n  private actionSheetService = inject(AXActionSheetService);\n\n  private onMouseMoveListenerFn = () => undefined;\n  private onMouseUpListenerFn = () => undefined;\n  private onTouchMoveListenerFn = () => undefined;\n  private onTouchUpListenerFn = () => undefined;\n\n  private isDragging = signal(false);\n  private isFullScreen = signal(false);\n  private curserOffset = signal(0);\n  private actionSheetHeight = signal(0);\n  private isActionSheetHeightSet = signal(false);\n  private transitionDuration = signal(300);\n\n  /**\n   *  @ignore\n   */\n  private _componentRef: ComponentRef<unknown> | null = null;\n\n  /** Template content if data.content is a TemplateRef */\n  protected templateContent = computed(() => {\n    const content = this.data().content;\n    return content instanceof TemplateRef ? content : null;\n  });\n\n  /** Component content if data.content is a component Type */\n  protected componentContent = computed(() => {\n    const content = this.data().content;\n    return typeof content === 'function' ? (content as AXComponentType<unknown>) : null;\n  });\n\n  /** Template context for ngTemplateOutlet */\n  protected templateContext = computed((): { $implicit: AXActionSheetConfig; ref: AXActionSheetComponent } => ({\n    $implicit: this.data(),\n    ref: this,\n  }));\n\n  /** Whether content has been rendered (for component content) */\n  protected isContentRendered = signal(false);\n\n  /**\n   *  @ignore\n   */\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    // Enter animation: start with height 0 and animate to natural height\n    if (isPlatformBrowser(this.platformID)) {\n      const hostElement = this.getHostElement();\n      hostElement.style.height = '0';\n      hostElement.style.overflow = 'hidden';\n\n      // Use requestAnimationFrame to ensure the initial height is applied before animating\n      requestAnimationFrame(() => {\n        hostElement.style.transitionDuration = `${this.transitionDuration()}ms`;\n        hostElement.style.height = 'auto';\n        // Get the natural height\n        const naturalHeight = hostElement.scrollHeight;\n        hostElement.style.height = '0';\n\n        requestAnimationFrame(() => {\n          hostElement.style.height = `${naturalHeight}px`;\n          // After animation completes, set height to auto for flexibility\n          setTimeout(() => {\n            hostElement.style.height = 'auto';\n            hostElement.style.overflow = '';\n          }, this.transitionDuration());\n        });\n      });\n    }\n\n    if (isPlatformBrowser(this.platformID) && this.data().draggable) {\n      this.onMouseMoveListenerFn = this.renderer.listen(this.document, 'mousemove', (e) => {\n        if (this.isDragging()) {\n          e.preventDefault();\n          this.getHostElement().style.height = `${this.heightCalculator(e.clientY) + this.curserOffset()}px`;\n        }\n      });\n      this.onTouchMoveListenerFn = this.renderer.listen(this.document, 'touchmove', (e) => {\n        if (this.isDragging()) {\n          e.preventDefault();\n          this.getHostElement().style.height = `${this.heightCalculator(e.touches[0].clientY) + this.curserOffset()}px`;\n        }\n      });\n      this.onMouseUpListenerFn = this.renderer.listen(this.document, 'mouseup', (e) => {\n        if (this.isDragging()) {\n          this.isDragging.set(false);\n          this.actionSheetService.setActionSheetEventState({\n            nativeEvent: e,\n            data: { state: 'dragEnd' },\n            isUserInteraction: true,\n            overlayRef: this.overlayRef(),\n          });\n          this.snapToFinalPosition();\n        }\n      });\n      this.onTouchUpListenerFn = this.renderer.listen(this.document, 'touchend', (e) => {\n        if (this.isDragging()) {\n          this.isDragging.set(false);\n          this.actionSheetService.setActionSheetEventState({\n            nativeEvent: e,\n            data: { state: 'dragEnd' },\n            isUserInteraction: true,\n            overlayRef: this.overlayRef(),\n          });\n          this.snapToFinalPosition();\n        }\n      });\n    }\n  }\n\n  /**\n   *  @ignore\n   */\n  ngAfterViewInit(): void {\n    // Render component content after view is initialized (ViewChild is available)\n    this.renderComponentContent();\n  }\n\n  /**\n   * Renders the component content if provided.\n   * Uses ViewContainerRef to create the component and properly set inputs.\n   */\n  private renderComponentContent(): void {\n    const componentType = this.componentContent();\n    if (!componentType || !this.contentContainerRef) return;\n\n    const config = this.data();\n\n    // Create the component using ViewContainerRef\n    const componentRef = this.contentContainerRef.createComponent(componentType);\n    this._componentRef = componentRef;\n\n    // Get component input definitions to check before setting inputs\n    const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n      ?.inputs;\n\n    // Set data inputs (legacy support - deprecated)\n    if (config?.data && typeof config.data === 'object') {\n      Object.entries(config.data).forEach(([key, value]) => {\n        (componentRef.instance as Record<string, unknown>)[key] = value;\n      });\n    }\n\n    // Set inputs using setInput for proper change detection\n    if (config?.inputs && typeof config.inputs === 'object') {\n      Object.entries(config.inputs).forEach(([key, value]) => {\n        if (inputDefs && key in inputDefs) {\n          componentRef.setInput(key, value);\n        }\n      });\n    }\n\n    // Set action sheet reference (only if the component has this input)\n    if (inputDefs && '__actionSheet__' in inputDefs) {\n      componentRef.setInput('__actionSheet__', this.__actionSheetRef__());\n    }\n\n    // Subscribe to close event if available\n    const instance = componentRef.instance as {\n      onClosed?: { subscribe: (fn: (e: AXComponentCloseEvent) => void) => void };\n    };\n    if (instance.onClosed) {\n      instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n        this.close(e);\n      });\n    }\n\n    this.isContentRendered.set(true);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Sets input values on the content component.\n   * @param values - Object containing input values to set\n   */\n  setContentInputs(values: AXComponentInputs): void {\n    if (this._componentRef) {\n      Object.entries(values).forEach(([key, value]) => {\n        this._componentRef.setInput(key, value);\n      });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.onMouseMoveListenerFn();\n    this.onMouseUpListenerFn();\n    this.onTouchMoveListenerFn();\n    this.onTouchUpListenerFn();\n\n    // Clean up component reference\n    if (this._componentRef) {\n      this._componentRef.destroy();\n      this._componentRef = null;\n    }\n  }\n\n  protected handleMouseDown(e: MouseEvent) {\n    if (!this.data().draggable || e.button !== 0) return;\n    e.preventDefault();\n    this.actionSheetService.setActionSheetEventState({\n      nativeEvent: e,\n      data: { state: 'dragStart' },\n      isUserInteraction: true,\n      overlayRef: this.overlayRef(),\n    });\n    this.handleDown(e.clientY);\n  }\n\n  protected handleTouchDown(e: TouchEvent) {\n    if (!this.data().draggable || (e.target as HTMLElement).className.includes('close')) return;\n    e.preventDefault();\n    this.actionSheetService.setActionSheetEventState({\n      nativeEvent: e,\n      data: { state: 'dragStart' },\n      isUserInteraction: true,\n      overlayRef: this.overlayRef(),\n    });\n    this.handleDown(e.touches[0].clientY);\n  }\n\n  private handleDown(clientY: number) {\n    this.isDragging.set(true);\n    this.getHostElement().style.transitionDuration = '0ms';\n\n    if (isPlatformBrowser(this.platformID)) {\n      this.curserOffset.set(\n        clientY - (this.document.documentElement.clientHeight - this.getHostElement().clientHeight),\n      );\n    }\n\n    if (!this.isActionSheetHeightSet()) {\n      this.actionSheetHeight.set(this.getHostElement().clientHeight);\n      this.isActionSheetHeightSet.set(true);\n    }\n  }\n\n  private snapToFinalPosition(): void {\n    this.getHostElement().style.transitionDuration = `${this.transitionDuration()}ms`;\n    const currentHeight = this.getHostElement().clientHeight;\n    const initialHeight = this.actionSheetHeight();\n    const windowHeight = this.document.documentElement.clientHeight;\n\n    if (currentHeight < initialHeight * 0.75) {\n      this.close(null);\n      return;\n    }\n    if (this.isFullScreen() && currentHeight < windowHeight * 0.9) {\n      this.getHostElement().style.height = `${initialHeight}px`;\n      this.isFullScreen.set(false);\n      this.actionSheetService.setActionSheetEventState({\n        data: { state: 'normalSize' },\n        isUserInteraction: true,\n        overlayRef: this.overlayRef(),\n      });\n      return;\n    }\n    if (this.data().dragUp && currentHeight > (windowHeight + initialHeight) / 3) {\n      this.getHostElement().style.height = '100vh';\n      this.isFullScreen.set(true);\n      this.document.body.parentElement.style.overscrollBehaviorY = 'contain';\n      this.actionSheetService.setActionSheetEventState({\n        data: { state: 'fullScreen' },\n        isUserInteraction: true,\n        overlayRef: this.overlayRef(),\n      });\n      return;\n    }\n    this.getHostElement().style.height = `${initialHeight}px`;\n    this.actionSheetService.setActionSheetEventState({\n      data: { state: 'normalSize' },\n      isUserInteraction: true,\n      overlayRef: this.overlayRef(),\n    });\n  }\n\n  private heightCalculator(clientY: number): number {\n    if (this.data().dragUp) {\n      return this.document.documentElement.clientHeight - clientY;\n    }\n    if (clientY >= this.document.documentElement.clientHeight - this.actionSheetHeight()) {\n      return this.document.documentElement.clientHeight - clientY;\n    }\n    return (\n      this.actionSheetHeight() + (this.document.documentElement.clientHeight - clientY - this.actionSheetHeight()) / 10\n    );\n  }\n\n  /**\n   * Handles click events on action sheet items.\n   * This method is called when a user clicks on an action sheet item. It closes the action sheet\n   * with the clicked item as the result data and executes the item's onClick callback if provided.\n   *\n   * @param item - The action sheet item that was clicked. Contains the item's data and optional onClick callback.\n   * @returns void\n   */\n  onItemClick(item: AXActionSheetItem): void {\n    this.close(item);\n    if (item?.onClick) item.onClick();\n  }\n\n  /**\n   * Closes the action sheet with optional result data.\n   * This method initiates the closing animation of the action sheet and eventually closes the dialog.\n   * The closing process includes a height animation and cleanup of event listeners.\n   *\n   * @param e - The result data to pass when closing the action sheet. Can be any value including null.\n   *            If an AXActionSheetItem is passed, it represents the selected item.\n   * @param isUserInteraction - Whether the close action was triggered by user interaction (default: true).\n   *                           This affects how the action sheet handles accessibility and event tracking.\n   * @returns void\n   */\n  close(e: unknown = null, isUserInteraction = true): void {\n    this.getHostElement().style.height = `${this.getHostElement().clientHeight}px`;\n    setTimeout(() => {\n      this.getHostElement().style.height = '0vh';\n    });\n    setTimeout(() => {\n      this.actionSheetService.setActionSheetEventState({\n        data: { state: 'close' },\n        isUserInteraction,\n        overlayRef: this.overlayRef(),\n      });\n      const closeCallback = this.onClose();\n      if (closeCallback) {\n        closeCallback({\n          component: this._componentRef?.instance,\n          htmlElement: this.getHostElement(),\n          data: e,\n        });\n      }\n    }, this.transitionDuration());\n  }\n\n  /**\n   *  @ignore\n   */\n  protected onKeydownHandler() {\n    const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n    if (this.data().closeButton && focusedOrHasFocused) {\n      this.close(null);\n    }\n  }\n}\n","@if (data().draggable) {\n  <div (mousedown)=\"handleMouseDown($event)\" (touchstart)=\"handleTouchDown($event)\" class=\"ax-drag-handle-container\">\n    <div class=\"ax-drag-handle\"></div>\n  </div>\n}\n@if (data().header) {\n  <ax-header\n    [class.draggable-header]=\"data().draggable\"\n    (mousedown)=\"data().draggable ? handleMouseDown($event) : null\"\n    (touchstart)=\"data().draggable ? handleTouchDown($event) : null\"\n  >\n    <ax-prefix>\n      <ax-title class=\"line-clamp-1\">{{ data().title | translate | async }}</ax-title>\n\n      @if (data().subTitle) {\n        <ax-subtitle class=\"line-clamp-2\">\n          {{ data().subTitle }}\n        </ax-subtitle>\n      }\n    </ax-prefix>\n    @if (data().closeButton) {\n      <ax-suffix>\n        <ax-close-button></ax-close-button>\n      </ax-suffix>\n    }\n  </ax-header>\n}\n@if (data().content) {\n  @if (templateContent()) {\n    <ng-container *ngTemplateOutlet=\"templateContent(); context: templateContext()\"></ng-container>\n  }\n  <!-- Component content container - always present but only populated when componentContent() is truthy -->\n  <ng-container #contentContainer></ng-container>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n  @for (item of data().items; let i = $index; track i) {\n    @if (item.group?.title) {\n      <ax-title>{{ item.group?.title }}</ax-title>\n    }\n    <div\n      class=\"ax-action-item ax-{{ item.color || 'default' }}\"\n      [class.ax-state-disabled]=\"item.disabled\"\n      [tabindex]=\"i\"\n      (click)=\"onItemClick(item)\"\n    >\n      <div class=\"ax-action-item-prefix\">\n        @if (item.icon) {\n          <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n        }\n        <ax-text>{{ item.text | translate | async }}</ax-text>\n      </div>\n      <div class=\"ax-action-item-suffix\"></div>\n    </div>\n    @if (item.break) {\n      <ax-divider></ax-divider>\n    }\n  }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AXActionSheetComponent } from './action-sheet.component';\nimport { AXActionSheetService } from './action-sheet.service';\n\n@NgModule({\n  imports: [AXActionSheetComponent],\n  exports: [AXActionSheetComponent],\n  providers: [AXActionSheetService],\n})\nexport class AXActionSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}