@acorex/components 21.0.1-next.45 → 21.0.1-next.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +5 -5
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +13 -0
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +4 -4
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +5 -5
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +40 -4
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +3 -4
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +12 -12
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +14 -6
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-datetime-input.d.ts +1 -1
- package/types/acorex-components-media-viewer.d.ts +7 -1
- package/types/acorex-components-popover.d.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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, 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\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 = unknown>(\n config: AXActionSheetConfig,\n isUserInteraction = true,\n ): 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\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 ChangeDetectionStrategy,\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.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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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"}
|
|
1
|
+
{"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, 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\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 = unknown>(\n config: AXActionSheetConfig,\n isUserInteraction = true,\n ): 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 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 ChangeDetectionStrategy,\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.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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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"}
|
|
@@ -522,7 +522,7 @@ class AXConversationMessageComponent extends MXBaseComponent {
|
|
|
522
522
|
return `${this.isOwn ? 'ax-state-own' : ''} ${!this.isOwn ? 'ax-state-other' : ''}`;
|
|
523
523
|
}
|
|
524
524
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXConversationMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
525
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXConversationMessageComponent, isStandalone: true, selector: "ax-conversation-message", inputs: { isReplyArrowShown: { classPropertyName: "isReplyArrowShown", publicName: "isReplyArrowShown", isSignal: true, isRequired: false, transformFunction: null }, chatMessage: { classPropertyName: "chatMessage", publicName: "chatMessage", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onActionMenuOpening: "onActionMenuOpening", onReplyClick: "onReplyClick" }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (chatMessage().fromId) {\n @if (avatar()) {\n <ng-container [ngTemplateOutlet]=\"avatar()\"></ng-container>\n } @else {\n <ax-avatar color=\"primary\" [size]=\"36\"> </ax-avatar>\n }\n}\n\n@if (isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class]=\"'ax-type-' + messageType()\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <div class=\"ax-action-button\">\n @if (chatMessage()?.userName) {\n <div class=\"ax-message-user-name\">\n <ax-text>{{ chatMessage().userName }}</ax-text>\n </div>\n }\n\n @if (chatMessage()?.showActionButton) {\n <div class=\"ax-message-action-button\">\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item class=\"ax-parent-menu-item\">\n <ax-text (click)=\"handleActionClick()\">...</ax-text>\n\n @for (item of actionButtonItemsPrivate(); track item.text) {\n <ax-menu-item [color]=\"item.color\" (onClick)=\"item.onClick(chatMessage().id)\">\n <ax-text>{{ item.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n\n @for (innerItem of item.items; track innerItem.text) {\n <ax-menu-item [color]=\"innerItem.color\" (onClick)=\"innerItem.onClick(chatMessage().id)\">\n <ax-text>{{ innerItem.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"innerItem.icon\"></ax-icon>\n </ax-prefix>\n </ax-menu-item>\n }\n </ax-menu-item>\n }\n </ax-menu-item>\n </ax-menu>\n </div>\n }\n </div>\n\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n\n@if (!isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-rotate ax-cursor-pointer\"></i>\n}\n", styles: ["ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media(min-width:320px)and (max-width:640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"], dependencies: [{ kind: "component", type: AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "forceDisableActionSheetStyle", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "component", type: AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i1$1.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i1$1.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
525
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXConversationMessageComponent, isStandalone: true, selector: "ax-conversation-message", inputs: { isReplyArrowShown: { classPropertyName: "isReplyArrowShown", publicName: "isReplyArrowShown", isSignal: true, isRequired: false, transformFunction: null }, chatMessage: { classPropertyName: "chatMessage", publicName: "chatMessage", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onActionMenuOpening: "onActionMenuOpening", onReplyClick: "onReplyClick" }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (chatMessage().fromId) {\n @if (avatar()) {\n <ng-container [ngTemplateOutlet]=\"avatar()\"></ng-container>\n } @else {\n <ax-avatar color=\"primary\" [size]=\"36\"> </ax-avatar>\n }\n}\n\n@if (isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class]=\"'ax-type-' + messageType()\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <div class=\"ax-action-button\">\n @if (chatMessage()?.userName) {\n <div class=\"ax-message-user-name\">\n <ax-text>{{ chatMessage().userName }}</ax-text>\n </div>\n }\n\n @if (chatMessage()?.showActionButton) {\n <div class=\"ax-message-action-button\">\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item class=\"ax-parent-menu-item\">\n <ax-text (click)=\"handleActionClick()\">...</ax-text>\n\n @for (item of actionButtonItemsPrivate(); track item.text) {\n <ax-menu-item [color]=\"item.color\" (onClick)=\"item.onClick(chatMessage().id)\">\n <ax-text>{{ item.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n\n @for (innerItem of item.items; track innerItem.text) {\n <ax-menu-item [color]=\"innerItem.color\" (onClick)=\"innerItem.onClick(chatMessage().id)\">\n <ax-text>{{ innerItem.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"innerItem.icon\"></ax-icon>\n </ax-prefix>\n </ax-menu-item>\n }\n </ax-menu-item>\n }\n </ax-menu-item>\n </ax-menu>\n </div>\n }\n </div>\n\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div>\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n\n@if (!isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-rotate ax-cursor-pointer\"></i>\n}\n", styles: ["ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media(min-width:320px)and (max-width:640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"], dependencies: [{ kind: "component", type: AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "component", type: AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i1$1.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i1$1.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
526
526
|
}
|
|
527
527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXConversationMessageComponent, decorators: [{
|
|
528
528
|
type: Component,
|
|
@@ -539,7 +539,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
539
539
|
AXFormatPipe,
|
|
540
540
|
AXMenuModule,
|
|
541
541
|
CommonModule,
|
|
542
|
-
], providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], template: "@if (chatMessage().fromId) {\n @if (avatar()) {\n <ng-container [ngTemplateOutlet]=\"avatar()\"></ng-container>\n } @else {\n <ax-avatar color=\"primary\" [size]=\"36\"> </ax-avatar>\n }\n}\n\n@if (isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class]=\"'ax-type-' + messageType()\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <div class=\"ax-action-button\">\n @if (chatMessage()?.userName) {\n <div class=\"ax-message-user-name\">\n <ax-text>{{ chatMessage().userName }}</ax-text>\n </div>\n }\n\n @if (chatMessage()?.showActionButton) {\n <div class=\"ax-message-action-button\">\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item class=\"ax-parent-menu-item\">\n <ax-text (click)=\"handleActionClick()\">...</ax-text>\n\n @for (item of actionButtonItemsPrivate(); track item.text) {\n <ax-menu-item [color]=\"item.color\" (onClick)=\"item.onClick(chatMessage().id)\">\n <ax-text>{{ item.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n\n @for (innerItem of item.items; track innerItem.text) {\n <ax-menu-item [color]=\"innerItem.color\" (onClick)=\"innerItem.onClick(chatMessage().id)\">\n <ax-text>{{ innerItem.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"innerItem.icon\"></ax-icon>\n </ax-prefix>\n </ax-menu-item>\n }\n </ax-menu-item>\n }\n </ax-menu-item>\n </ax-menu>\n </div>\n }\n </div>\n\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div
|
|
542
|
+
], providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], template: "@if (chatMessage().fromId) {\n @if (avatar()) {\n <ng-container [ngTemplateOutlet]=\"avatar()\"></ng-container>\n } @else {\n <ax-avatar color=\"primary\" [size]=\"36\"> </ax-avatar>\n }\n}\n\n@if (isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class]=\"'ax-type-' + messageType()\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <div class=\"ax-action-button\">\n @if (chatMessage()?.userName) {\n <div class=\"ax-message-user-name\">\n <ax-text>{{ chatMessage().userName }}</ax-text>\n </div>\n }\n\n @if (chatMessage()?.showActionButton) {\n <div class=\"ax-message-action-button\">\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item class=\"ax-parent-menu-item\">\n <ax-text (click)=\"handleActionClick()\">...</ax-text>\n\n @for (item of actionButtonItemsPrivate(); track item.text) {\n <ax-menu-item [color]=\"item.color\" (onClick)=\"item.onClick(chatMessage().id)\">\n <ax-text>{{ item.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n\n @for (innerItem of item.items; track innerItem.text) {\n <ax-menu-item [color]=\"innerItem.color\" (onClick)=\"innerItem.onClick(chatMessage().id)\">\n <ax-text>{{ innerItem.text }}</ax-text>\n <ax-prefix>\n <ax-icon [icon]=\"innerItem.icon\"></ax-icon>\n </ax-prefix>\n </ax-menu-item>\n }\n </ax-menu-item>\n }\n </ax-menu-item>\n </ax-menu>\n </div>\n }\n </div>\n\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div>\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n\n@if (!isOwn && isReplyArrowShown()) {\n <i (click)=\"replyHandler(chatMessage())\" class=\"fa-solid fa-reply ax-rotate ax-cursor-pointer\"></i>\n}\n", styles: ["ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media(min-width:320px)and (max-width:640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"] }]
|
|
543
543
|
}], propDecorators: { popover: [{ type: i0.ViewChild, args: ['popover', { isSignal: true }] }], isReplyArrowShown: [{ type: i0.Input, args: [{ isSignal: true, alias: "isReplyArrowShown", required: false }] }], chatMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "chatMessage", required: false }] }], avatar: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatar", required: false }] }], onActionMenuOpening: [{ type: i0.Output, args: ["onActionMenuOpening"] }], onReplyClick: [{ type: i0.Output, args: ["onReplyClick"] }], __hostClass: [{
|
|
544
544
|
type: HostBinding,
|
|
545
545
|
args: ['class']
|