@acorex/components 22.0.0 → 22.0.1
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-combo-box.mjs +2 -2
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +138 -81
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +2 -2
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +19 -8
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-conversation.d.ts +7 -7
- package/types/acorex-components-popover.d.ts +5 -3
|
@@ -360,11 +360,6 @@ class AXPopoverComponent extends MXBaseComponent {
|
|
|
360
360
|
if (!this._scrollListenerActive || !this.isOpen) {
|
|
361
361
|
return;
|
|
362
362
|
}
|
|
363
|
-
// iOS (and some mobile browsers) scroll the document when the soft keyboard
|
|
364
|
-
// opens after focusing an input inside the overlay. That must not close it.
|
|
365
|
-
if (this.isKeyboardInducedScroll(overlayElement)) {
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
363
|
// Resolve the scroll target. For document/window scrolls, e.target is the document.
|
|
369
364
|
const target = e.target;
|
|
370
365
|
// Don't close when scrolling occurs inside the popover itself
|
|
@@ -376,6 +371,11 @@ class AXPopoverComponent extends MXBaseComponent {
|
|
|
376
371
|
if (target instanceof Element && this.isInsideChildOverlay(target)) {
|
|
377
372
|
return;
|
|
378
373
|
}
|
|
374
|
+
// iOS (and some mobile browsers) scroll the document when the soft keyboard
|
|
375
|
+
// opens after focusing an input inside the overlay. That must not close it.
|
|
376
|
+
if (this.isKeyboardInducedDocumentScroll(target, overlayElement)) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
379
|
this.close();
|
|
380
380
|
};
|
|
381
381
|
// Capture phase so we receive scroll events from any scrollable ancestor
|
|
@@ -399,11 +399,14 @@ class AXPopoverComponent extends MXBaseComponent {
|
|
|
399
399
|
this._scrollListenerActive = false;
|
|
400
400
|
}
|
|
401
401
|
/**
|
|
402
|
-
* True when scroll is a side-effect of focusing an editable control
|
|
403
|
-
* (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
|
|
402
|
+
* True when document-level scroll is a side-effect of focusing an editable control
|
|
403
|
+
* inside the overlay (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
|
|
404
404
|
* @ignore
|
|
405
405
|
*/
|
|
406
|
-
|
|
406
|
+
isKeyboardInducedDocumentScroll(scrollTarget, overlayElement) {
|
|
407
|
+
if (!this.isDocumentScrollTarget(scrollTarget)) {
|
|
408
|
+
return false;
|
|
409
|
+
}
|
|
407
410
|
const active = this.document.activeElement;
|
|
408
411
|
if (!(active instanceof HTMLElement) || !overlayElement.contains(active)) {
|
|
409
412
|
return false;
|
|
@@ -415,6 +418,14 @@ class AXPopoverComponent extends MXBaseComponent {
|
|
|
415
418
|
active.isContentEditable ||
|
|
416
419
|
!!active.closest('input, textarea, select, [contenteditable="true"]'));
|
|
417
420
|
}
|
|
421
|
+
/** @ignore */
|
|
422
|
+
isDocumentScrollTarget(target) {
|
|
423
|
+
if (!target) {
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
const doc = this.document;
|
|
427
|
+
return target === doc || target === doc.documentElement || target === doc.body;
|
|
428
|
+
}
|
|
418
429
|
/**
|
|
419
430
|
* Checks whether the given element lives inside a child overlay
|
|
420
431
|
* (an overlay stacked on top of this popover, e.g. a selectbox dropdown).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-popover.mjs","sources":["../../../../packages/components/popover/src/lib/popover.component.ts","../../../../packages/components/popover/src/lib/popover.component.html","../../../../packages/components/popover/src/lib/popover.module.ts","../../../../packages/components/popover/src/acorex-components-popover.ts"],"sourcesContent":["import {\n AXComponent,\n AXConnectedPosition,\n AXEvent,\n AXFocusableComponent,\n AXPlacementType,\n MXBaseComponent,\n convertToPlacement,\n} from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService, AXOverlayVisualContextScope } from '@acorex/cdk/overlay';\nimport { AXComponentType } from '@acorex/core/components';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n ComponentRef,\n DOCUMENT,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n inject,\n input,\n} from '@angular/core';\nimport { Subject, Subscription, fromEvent, switchMap, takeUntil, timer } from 'rxjs';\n\nexport type AXPopoverOpenTrigger = 'manual' | 'click' | 'hover' | 'toggle';\n\nexport type AXPopoverCloseTrigger = 'manual' | 'clickOut' | 'leave';\n\n/**\n * @category Components\n * A popover component with custom encapsulation and change detection settings.\n */\n@Component({\n selector: 'ax-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n\n providers: [\n { provide: AXFocusableComponent, useExisting: AXPopoverComponent },\n { provide: AXComponent, useExisting: AXPopoverComponent },\n ],\n})\nexport class AXPopoverComponent extends MXBaseComponent implements OnDestroy {\n private platform = inject(AXPlatform);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private overlayService = inject(AXOverlayService);\n\n private onKeyDownHandler: ((e: KeyboardEvent) => void) | null = null;\n\n /** @ignore */\n private _overlayRef: AXOverlayRef<unknown> | null = null;\n\n /** @ignore */\n private _lastActiveElement: Element | null = null;\n\n /** @ignore */\n private _targetEvents: {\n mouseenter?: Subscription;\n mouseleave?: Subscription;\n click?: Subscription;\n } = {};\n\n /** @ignore */\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n /** @ignore */\n private _scrollHandler: ((e: Event) => void) | null = null;\n\n /** @ignore */\n private _scrollListenerActive = false;\n\n /** @ignore */\n private _scrollActivationFrame: number | null = null;\n\n /** @ignore */\n private resizeObserver: ResizeObserver | null = null;\n /** @ignore */\n private resize$ = new Subject<void>();\n\n /** @ignore */\n private _disabled = false;\n\n readonly width = input('fit-content');\n\n readonly disablePanelClass = input(false);\n\n /** Propagate theme/size only — floating dropdown panels opt out of appearance/contrast. */\n readonly visualContextScope = input<AXOverlayVisualContextScope>('full');\n\n private translateService = inject(AXTranslationService);\n\n #init = afterNextRender(() => {\n const lang = this.translateService.getActiveLang();\n\n let defaultPlacementDirection: AXPlacementType;\n\n if (lang === 'en-US') {\n defaultPlacementDirection = 'bottom-start';\n } else {\n defaultPlacementDirection = 'bottom-end';\n }\n\n if (!this.placement) this.placement = defaultPlacementDirection;\n\n const converted = this.placement\n ? convertToPlacement(this.placement)\n : convertToPlacement(defaultPlacementDirection);\n\n this._placements = converted;\n\n this.resize$.subscribe(() => {\n if (this.isOpen) {\n this.updatePosition();\n }\n });\n });\n\n /**\n * Gets or sets whether the popover is disabled.\n * When disabled, the popover will not open and will close if already open.\n */\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(v: boolean) {\n this._disabled = v;\n if (this._disabled && this.isOpen) {\n this.close();\n }\n }\n\n /** @ignore */\n private _offsetX = 0;\n\n /**\n * Gets or sets the horizontal offset and updates it accordingly.\n */\n @Input()\n public get offsetX(): number {\n return this._offsetX;\n }\n\n /**\n * Sets the horizontal offset and updates it with a callback.\n */\n public set offsetX(v: number) {\n this.setOption({\n name: 'offsetX',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n\n /** @ignore */\n private _offsetY = 0;\n\n /**\n * Vertical offset with update callback.\n */\n @Input()\n public get offsetY(): number {\n return this._offsetY;\n }\n\n /**\n * Sets the vertical offset and updates the component position.\n */\n public set offsetY(v: number) {\n this.setOption({\n name: 'offsetY',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n\n /** @ignore */\n private _target!: Element;\n\n /**\n * Gets or sets the target element, supporting Element, ElementRef, or MXBaseComponent.\n */\n @Input()\n public get target(): Element | ElementRef | MXBaseComponent {\n return this._target;\n }\n\n /**\n * Sets the target element and updates event bindings.\n */\n public set target(v: Element | ElementRef | MXBaseComponent) {\n this.removeTargetEvents();\n if (v instanceof Element) this._target = v;\n else if (v instanceof ElementRef) this._target = v.nativeElement;\n else if (typeof v?.getHostElement == 'function') this._target = v.getHostElement();\n this.bindTargetEvents();\n }\n\n /** @ignore */\n private _placements: AXConnectedPosition[] = [];\n\n /** @ignore */\n private _placement: AXPlacementType = null;\n\n /**\n * Gets the current placement of the component.\n */\n @Input()\n public get placement(): AXPlacementType {\n return this._placement;\n }\n\n /**\n * Sets the component's placement and updates its position settings.\n */\n public set placement(v: AXPlacementType) {\n this.setOption({\n name: 'placement',\n value: v,\n afterCallback: (o, n) => {\n if (!n) return;\n const converted = convertToPlacement(n);\n this._placements = converted;\n this.updateOffset();\n if (this._overlayRef) {\n this._overlayRef.updatePosition();\n }\n },\n });\n }\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n /**\n * Gets the reference to the component.\n */\n public get componentRef(): ComponentRef<unknown> | null {\n return this._componentRef;\n }\n\n /**\n * Holds the context data for the component.\n */\n public context: unknown;\n\n /** @ignore */\n @ViewChild('baseTemplate', { static: true })\n _baseTemplate: TemplateRef<unknown>;\n\n /**\n * Defines the content to be displayed, which can be a template or a component.\n */\n @Input()\n content: TemplateRef<unknown> | AXComponentType<unknown>;\n\n /** @ignore */\n private _openOn: AXPopoverOpenTrigger = 'toggle';\n\n /**\n * Gets or sets the trigger for opening the popover and updates target events.\n */\n @Input()\n public get openOn(): AXPopoverOpenTrigger {\n return this._openOn;\n }\n\n /**\n * Sets the trigger for opening the popover and updates target events.\n */\n public set openOn(v: AXPopoverOpenTrigger) {\n this.setOption({\n name: 'openOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n\n /** @ignore */\n private _closeOn: AXPopoverCloseTrigger = 'clickOut';\n\n /**\n * Gets or sets the trigger for closing the popover.\n */\n @Input()\n public get closeOn(): AXPopoverCloseTrigger {\n return this._closeOn;\n }\n\n /**\n * Sets the trigger for closing the popover and rebinds target events.\n */\n public set closeOn(v: AXPopoverCloseTrigger) {\n this.setOption({\n name: 'closeOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n\n /**\n * Determines if a backdrop should be displayed behind the popover.\n */\n @Input()\n hasBackdrop = false;\n\n /**\n * Delay in milliseconds before the popover opens after a trigger event.\n */\n private _openAfter = 200;\n\n @Input()\n public get openAfter() {\n return this._openAfter;\n }\n\n public set openAfter(value) {\n this._openAfter = value;\n this.bindTargetEvents();\n }\n\n /**\n * Delay in milliseconds before the popover closes after a trigger event.\n */\n private _closeAfter = 200;\n\n @Input()\n public get closeAfter() {\n return this._closeAfter;\n }\n\n public set closeAfter(value) {\n this._closeAfter = value;\n this.bindTargetEvents();\n }\n\n /**\n * Whether to close the popover when scrolling occurs outside of it.\n * Scrolling within the popover (or any nested overlay) will not close it.\n */\n @Input()\n closeOnScroll = true;\n\n /**\n * CSS class to apply to the backdrop element.\n */\n @Input()\n backdropClass: string;\n\n /**\n * CSS class to apply to the panel element.\n */\n @Input()\n panelClass: string;\n\n /**\n * Enables or disables adaptivity.\n */\n @Input()\n adaptivityEnabled = false;\n\n /**\n * Emits when the component is opened.\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits when the component is closed.\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /** @ignore */\n private _emitOnOpenedEvent() {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /** @ignore */\n private _emitOnClosedEvent() {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /** @ignore */\n private removeTargetEvents(): void {\n Object.entries(this._targetEvents).forEach((e) => {\n e[1]?.unsubscribe();\n });\n this._targetEvents = {};\n }\n\n /** @ignore */\n private bindTargetEvents() {\n this.removeTargetEvents();\n if (!this._target) return;\n const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');\n const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');\n\n if (this.openOn === 'hover') {\n this._targetEvents.mouseenter = targetMouseEnter$\n .pipe(switchMap(() => timer(this.openAfter).pipe(takeUntil(targetMouseLeave$))))\n .subscribe(() => {\n this.open();\n });\n }\n\n if (this.closeOn === 'leave') {\n this._targetEvents.mouseleave = targetMouseLeave$\n .pipe(switchMap(() => timer(this.closeAfter).pipe(takeUntil(targetMouseEnter$))))\n .subscribe(() => {\n this.close();\n });\n }\n\n if (this.openOn === 'click' || this.openOn === 'toggle') {\n const click$ = fromEvent<MouseEvent>(this._target, 'click');\n this._targetEvents.click = click$.subscribe(() => {\n this.openOn === 'toggle' ? this.toggle() : this.open();\n });\n }\n }\n\n /** @ignore */\n private bindOverlayEvents() {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) return;\n overlayElement.style.pointerEvents = 'none';\n\n // Outside click handler\n if (this.closeOn === 'clickOut') {\n this._outsideClickHandler = (e: MouseEvent) => {\n const el = e.target as Element;\n if (this.isOpen && !this._target?.contains(el) && !overlayElement?.contains(el)) {\n // Check if the click is inside a child overlay (e.g., selectbox dropdown)\n // Child overlays have a higher z-index than this popover\n if (this.isInsideChildOverlay(el)) {\n return;\n }\n this.close();\n }\n };\n this.document.addEventListener('mousedown', this._outsideClickHandler);\n }\n\n // Scroll listener to close popover when scrolling outside\n this.setupScrollListener(overlayElement);\n\n // Resize observer\n this.initializeResizeObserver();\n\n setTimeout(() => {\n overlayElement.style.pointerEvents = 'auto';\n }, this.openAfter);\n }\n\n /** @ignore */\n private removeOverlayEvents() {\n if (this._outsideClickHandler) {\n this.document.removeEventListener('mousedown', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n this.removeScrollListener();\n }\n\n /** @ignore */\n private setupScrollListener(overlayElement: HTMLElement) {\n if (!this.closeOnScroll || !isPlatformBrowser(this.platformID)) {\n return;\n }\n\n this._scrollHandler = (e: Event) => {\n // Ignore scroll events fired during the initial open frame\n if (!this._scrollListenerActive || !this.isOpen) {\n return;\n }\n\n // iOS (and some mobile browsers) scroll the document when the soft keyboard\n // opens after focusing an input inside the overlay. That must not close it.\n if (this.isKeyboardInducedScroll(overlayElement)) {\n return;\n }\n\n // Resolve the scroll target. For document/window scrolls, e.target is the document.\n const target = e.target as Node | null;\n\n // Don't close when scrolling occurs inside the popover itself\n if (target && overlayElement.contains(target)) {\n return;\n }\n\n // Don't close when scrolling occurs inside a nested/child overlay\n // (e.g., a selectbox dropdown opened from within this popover).\n if (target instanceof Element && this.isInsideChildOverlay(target)) {\n return;\n }\n\n this.close();\n };\n\n // Capture phase so we receive scroll events from any scrollable ancestor\n this.document.addEventListener('scroll', this._scrollHandler, true);\n\n // Delay activation to ignore layout/scroll events fired right after opening\n this._scrollActivationFrame = requestAnimationFrame(() => {\n this._scrollListenerActive = true;\n this._scrollActivationFrame = null;\n });\n }\n\n /** @ignore */\n private removeScrollListener() {\n if (this._scrollActivationFrame !== null) {\n cancelAnimationFrame(this._scrollActivationFrame);\n this._scrollActivationFrame = null;\n }\n if (this._scrollHandler) {\n this.document.removeEventListener('scroll', this._scrollHandler, true);\n this._scrollHandler = null;\n }\n this._scrollListenerActive = false;\n }\n\n /**\n * True when scroll is a side-effect of focusing an editable control inside the overlay\n * (soft keyboard / visual viewport adjustment), mainly on iOS Safari.\n * @ignore\n */\n private isKeyboardInducedScroll(overlayElement: HTMLElement): boolean {\n const active = this.document.activeElement;\n if (!(active instanceof HTMLElement) || !overlayElement.contains(active)) {\n return false;\n }\n\n const tag = active.tagName;\n return (\n tag === 'INPUT' ||\n tag === 'TEXTAREA' ||\n tag === 'SELECT' ||\n active.isContentEditable ||\n !!active.closest('input, textarea, select, [contenteditable=\"true\"]')\n );\n }\n\n /**\n * Checks whether the given element lives inside a child overlay\n * (an overlay stacked on top of this popover, e.g. a selectbox dropdown).\n * Child overlays are identified by having a higher z-index than this popover's overlay.\n * @ignore\n */\n private isInsideChildOverlay(element: Element): boolean {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) return false;\n\n const otherOverlay = element.closest('.ax-overlay-container');\n if (!otherOverlay || otherOverlay === overlayElement) return false;\n\n const popoverZIndex = parseInt(overlayElement.style.zIndex || '0', 10);\n const otherZIndex = parseInt((otherOverlay as HTMLElement).style.zIndex || '0', 10);\n\n return otherZIndex > popoverZIndex;\n }\n\n /** @ignore */\n private handleOverlayDisposed() {\n // Called when overlay is disposed externally (e.g., by scroll)\n this.disconnectResizeObserver();\n this.removeOverlayEvents();\n this.removeKeyDownListener();\n this._overlayRef = null;\n this._componentRef = null;\n this.restoreFocus();\n this._emitOnClosedEvent();\n }\n\n /**\n * Toggles the component's open state.\n */\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n\n /**\n * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this.disconnectResizeObserver();\n this.removeOverlayEvents();\n this.removeKeyDownListener();\n\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n\n this._componentRef = null;\n this.restoreFocus();\n this._emitOnClosedEvent();\n }\n\n /**\n * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.\n */\n async open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this.addKeyDownListener();\n this.saveFocus();\n await this.openOverlayInternal();\n this._emitOnOpenedEvent();\n }\n\n /** @ignore */\n private addKeyDownListener() {\n if (isPlatformBrowser(this.platformID)) {\n this.onKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.close();\n }\n };\n this.document.addEventListener('keydown', this.onKeyDownHandler);\n }\n }\n\n /** @ignore */\n private removeKeyDownListener() {\n if (this.onKeyDownHandler) {\n this.document.removeEventListener('keydown', this.onKeyDownHandler);\n this.onKeyDownHandler = null;\n }\n }\n\n /** @ignore */\n private saveFocus() {\n if (isPlatformBrowser(this.platformID)) {\n this._lastActiveElement = this.document.activeElement as Element;\n }\n }\n\n /** @ignore */\n private restoreFocus() {\n if (this._lastActiveElement instanceof HTMLElement) {\n this._lastActiveElement?.focus?.();\n }\n }\n\n /** @ignore */\n private async openOverlayInternal() {\n const targetRef = this._target;\n if (!targetRef) return;\n\n // Build panel classes — theme/appearance propagate via AXOverlayService visual context\n const panelClasses = ['animate-fadeIn', 'animate-faster'];\n if (this.panelClass) {\n panelClasses.push(this.panelClass);\n }\n\n // Determine content to display\n let contentToRender: TemplateRef<unknown> | AXComponentType<unknown>;\n let inputs: Record<string, unknown> | undefined;\n\n if (this.content instanceof TemplateRef) {\n contentToRender = this.content;\n } else if (typeof this.content === 'function') {\n contentToRender = this.content;\n inputs = this.context as Record<string, unknown>;\n } else {\n contentToRender = this._baseTemplate;\n }\n\n // Create the overlay\n this._overlayRef = await this.overlayService.create(contentToRender, {\n inputs,\n visualContextScope: this.visualContextScope(),\n anchorOptions: {\n anchor: targetRef as HTMLElement,\n placement: this._placement,\n offsetX: this._offsetX,\n offsetY: this._offsetY,\n autoFlip: true,\n },\n panelClass: !this.disablePanelClass() ? panelClasses : '',\n width: this.width(),\n onDispose: () => this.handleOverlayDisposed(),\n actionSheetStyle: this.adaptivityEnabled,\n });\n\n // Store component ref if it's a component\n if (this._overlayRef.instance) {\n this._componentRef = this._overlayRef.instance as unknown as ComponentRef<unknown>;\n if (this.context && this._componentRef.instance) {\n Object.assign(this._componentRef.instance, this.context);\n }\n }\n\n // Bind overlay events\n this.bindOverlayEvents();\n }\n\n /**\n * Checks if the overlay is currently open.\n * @returns {boolean}\n */\n get isOpen(): boolean {\n return this._overlayRef !== null;\n }\n\n /** @ignore */\n private updateOffset() {\n this._placements?.forEach((p) => {\n if (this._offsetY != null) p.offsetY = this._offsetY;\n if (this._offsetX != null) p.offsetX = this._offsetX;\n });\n }\n\n /**\n * Updates the position of the overlay and focuses on it.\n */\n public updatePosition(): void {\n this._overlayRef?.updatePosition();\n this.focus();\n }\n\n /**\n * Focuses the overlay element.\n */\n public focus(): void {\n // Optional focus behavior\n }\n\n /**\n * Brings this popover to the front of all other overlays.\n */\n public bringToFront(): void {\n this._overlayRef?.bringToFront();\n }\n\n /** @ignore */\n private initializeResizeObserver(): void {\n if (!isPlatformBrowser(this.platformID) || !this._overlayRef?.overlayElement) {\n return;\n }\n this.disconnectResizeObserver();\n this.resizeObserver = new ResizeObserver(() => {\n this.resize$.next();\n });\n this.resizeObserver.observe(this._overlayRef.overlayElement);\n }\n\n /** @ignore */\n private disconnectResizeObserver(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.disconnectResizeObserver();\n this.resize$.complete();\n this.removeTargetEvents();\n this.removeOverlayEvents();\n this.removeKeyDownListener();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n}\n","<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopoverComponent } from './popover.component';\n\n@NgModule({\n imports: [CommonModule, AXPopoverComponent],\n exports: [AXPopoverComponent],\n providers: [],\n})\nexport class AXPopoverModule {}\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-popover.mjs","sources":["../../../../packages/components/popover/src/lib/popover.component.ts","../../../../packages/components/popover/src/lib/popover.component.html","../../../../packages/components/popover/src/lib/popover.module.ts","../../../../packages/components/popover/src/acorex-components-popover.ts"],"sourcesContent":["import {\n AXComponent,\n AXConnectedPosition,\n AXEvent,\n AXFocusableComponent,\n AXPlacementType,\n MXBaseComponent,\n convertToPlacement,\n} from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService, AXOverlayVisualContextScope } from '@acorex/cdk/overlay';\nimport { AXComponentType } from '@acorex/core/components';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n ComponentRef,\n DOCUMENT,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n inject,\n input,\n} from '@angular/core';\nimport { Subject, Subscription, fromEvent, switchMap, takeUntil, timer } from 'rxjs';\n\nexport type AXPopoverOpenTrigger = 'manual' | 'click' | 'hover' | 'toggle';\n\nexport type AXPopoverCloseTrigger = 'manual' | 'clickOut' | 'leave';\n\n/**\n * @category Components\n * A popover component with custom encapsulation and change detection settings.\n */\n@Component({\n selector: 'ax-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n\n providers: [\n { provide: AXFocusableComponent, useExisting: AXPopoverComponent },\n { provide: AXComponent, useExisting: AXPopoverComponent },\n ],\n})\nexport class AXPopoverComponent extends MXBaseComponent implements OnDestroy {\n private platform = inject(AXPlatform);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private overlayService = inject(AXOverlayService);\n\n private onKeyDownHandler: ((e: KeyboardEvent) => void) | null = null;\n\n /** @ignore */\n private _overlayRef: AXOverlayRef<unknown> | null = null;\n\n /** @ignore */\n private _lastActiveElement: Element | null = null;\n\n /** @ignore */\n private _targetEvents: {\n mouseenter?: Subscription;\n mouseleave?: Subscription;\n click?: Subscription;\n } = {};\n\n /** @ignore */\n private _outsideClickHandler: ((e: MouseEvent) => void) | null = null;\n\n /** @ignore */\n private _scrollHandler: ((e: Event) => void) | null = null;\n\n /** @ignore */\n private _scrollListenerActive = false;\n\n /** @ignore */\n private _scrollActivationFrame: number | null = null;\n\n /** @ignore */\n private resizeObserver: ResizeObserver | null = null;\n /** @ignore */\n private resize$ = new Subject<void>();\n\n /** @ignore */\n private _disabled = false;\n\n readonly width = input('fit-content');\n\n readonly disablePanelClass = input(false);\n\n /** Propagate theme/size only — floating dropdown panels opt out of appearance/contrast. */\n readonly visualContextScope = input<AXOverlayVisualContextScope>('full');\n\n private translateService = inject(AXTranslationService);\n\n #init = afterNextRender(() => {\n const lang = this.translateService.getActiveLang();\n\n let defaultPlacementDirection: AXPlacementType;\n\n if (lang === 'en-US') {\n defaultPlacementDirection = 'bottom-start';\n } else {\n defaultPlacementDirection = 'bottom-end';\n }\n\n if (!this.placement) this.placement = defaultPlacementDirection;\n\n const converted = this.placement\n ? convertToPlacement(this.placement)\n : convertToPlacement(defaultPlacementDirection);\n\n this._placements = converted;\n\n this.resize$.subscribe(() => {\n if (this.isOpen) {\n this.updatePosition();\n }\n });\n });\n\n /**\n * Gets or sets whether the popover is disabled.\n * When disabled, the popover will not open and will close if already open.\n */\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(v: boolean) {\n this._disabled = v;\n if (this._disabled && this.isOpen) {\n this.close();\n }\n }\n\n /** @ignore */\n private _offsetX = 0;\n\n /**\n * Gets or sets the horizontal offset and updates it accordingly.\n */\n @Input()\n public get offsetX(): number {\n return this._offsetX;\n }\n\n /**\n * Sets the horizontal offset and updates it with a callback.\n */\n public set offsetX(v: number) {\n this.setOption({\n name: 'offsetX',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n\n /** @ignore */\n private _offsetY = 0;\n\n /**\n * Vertical offset with update callback.\n */\n @Input()\n public get offsetY(): number {\n return this._offsetY;\n }\n\n /**\n * Sets the vertical offset and updates the component position.\n */\n public set offsetY(v: number) {\n this.setOption({\n name: 'offsetY',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n\n /** @ignore */\n private _target!: Element;\n\n /**\n * Gets or sets the target element, supporting Element, ElementRef, or MXBaseComponent.\n */\n @Input()\n public get target(): Element | ElementRef | MXBaseComponent {\n return this._target;\n }\n\n /**\n * Sets the target element and updates event bindings.\n */\n public set target(v: Element | ElementRef | MXBaseComponent) {\n this.removeTargetEvents();\n if (v instanceof Element) this._target = v;\n else if (v instanceof ElementRef) this._target = v.nativeElement;\n else if (typeof v?.getHostElement == 'function') this._target = v.getHostElement();\n this.bindTargetEvents();\n }\n\n /** @ignore */\n private _placements: AXConnectedPosition[] = [];\n\n /** @ignore */\n private _placement: AXPlacementType = null;\n\n /**\n * Gets the current placement of the component.\n */\n @Input()\n public get placement(): AXPlacementType {\n return this._placement;\n }\n\n /**\n * Sets the component's placement and updates its position settings.\n */\n public set placement(v: AXPlacementType) {\n this.setOption({\n name: 'placement',\n value: v,\n afterCallback: (o, n) => {\n if (!n) return;\n const converted = convertToPlacement(n);\n this._placements = converted;\n this.updateOffset();\n if (this._overlayRef) {\n this._overlayRef.updatePosition();\n }\n },\n });\n }\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n /**\n * Gets the reference to the component.\n */\n public get componentRef(): ComponentRef<unknown> | null {\n return this._componentRef;\n }\n\n /**\n * Holds the context data for the component.\n */\n public context: unknown;\n\n /** @ignore */\n @ViewChild('baseTemplate', { static: true })\n _baseTemplate: TemplateRef<unknown>;\n\n /**\n * Defines the content to be displayed, which can be a template or a component.\n */\n @Input()\n content: TemplateRef<unknown> | AXComponentType<unknown>;\n\n /** @ignore */\n private _openOn: AXPopoverOpenTrigger = 'toggle';\n\n /**\n * Gets or sets the trigger for opening the popover and updates target events.\n */\n @Input()\n public get openOn(): AXPopoverOpenTrigger {\n return this._openOn;\n }\n\n /**\n * Sets the trigger for opening the popover and updates target events.\n */\n public set openOn(v: AXPopoverOpenTrigger) {\n this.setOption({\n name: 'openOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n\n /** @ignore */\n private _closeOn: AXPopoverCloseTrigger = 'clickOut';\n\n /**\n * Gets or sets the trigger for closing the popover.\n */\n @Input()\n public get closeOn(): AXPopoverCloseTrigger {\n return this._closeOn;\n }\n\n /**\n * Sets the trigger for closing the popover and rebinds target events.\n */\n public set closeOn(v: AXPopoverCloseTrigger) {\n this.setOption({\n name: 'closeOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n\n /**\n * Determines if a backdrop should be displayed behind the popover.\n */\n @Input()\n hasBackdrop = false;\n\n /**\n * Delay in milliseconds before the popover opens after a trigger event.\n */\n private _openAfter = 200;\n\n @Input()\n public get openAfter() {\n return this._openAfter;\n }\n\n public set openAfter(value) {\n this._openAfter = value;\n this.bindTargetEvents();\n }\n\n /**\n * Delay in milliseconds before the popover closes after a trigger event.\n */\n private _closeAfter = 200;\n\n @Input()\n public get closeAfter() {\n return this._closeAfter;\n }\n\n public set closeAfter(value) {\n this._closeAfter = value;\n this.bindTargetEvents();\n }\n\n /**\n * Whether to close the popover when scrolling occurs outside of it.\n * Scrolling within the popover (or any nested overlay) will not close it.\n */\n @Input()\n closeOnScroll = true;\n\n /**\n * CSS class to apply to the backdrop element.\n */\n @Input()\n backdropClass: string;\n\n /**\n * CSS class to apply to the panel element.\n */\n @Input()\n panelClass: string;\n\n /**\n * Enables or disables adaptivity.\n */\n @Input()\n adaptivityEnabled = false;\n\n /**\n * Emits when the component is opened.\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits when the component is closed.\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /** @ignore */\n private _emitOnOpenedEvent() {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /** @ignore */\n private _emitOnClosedEvent() {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /** @ignore */\n private removeTargetEvents(): void {\n Object.entries(this._targetEvents).forEach((e) => {\n e[1]?.unsubscribe();\n });\n this._targetEvents = {};\n }\n\n /** @ignore */\n private bindTargetEvents() {\n this.removeTargetEvents();\n if (!this._target) return;\n const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');\n const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');\n\n if (this.openOn === 'hover') {\n this._targetEvents.mouseenter = targetMouseEnter$\n .pipe(switchMap(() => timer(this.openAfter).pipe(takeUntil(targetMouseLeave$))))\n .subscribe(() => {\n this.open();\n });\n }\n\n if (this.closeOn === 'leave') {\n this._targetEvents.mouseleave = targetMouseLeave$\n .pipe(switchMap(() => timer(this.closeAfter).pipe(takeUntil(targetMouseEnter$))))\n .subscribe(() => {\n this.close();\n });\n }\n\n if (this.openOn === 'click' || this.openOn === 'toggle') {\n const click$ = fromEvent<MouseEvent>(this._target, 'click');\n this._targetEvents.click = click$.subscribe(() => {\n this.openOn === 'toggle' ? this.toggle() : this.open();\n });\n }\n }\n\n /** @ignore */\n private bindOverlayEvents() {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) return;\n overlayElement.style.pointerEvents = 'none';\n\n // Outside click handler\n if (this.closeOn === 'clickOut') {\n this._outsideClickHandler = (e: MouseEvent) => {\n const el = e.target as Element;\n if (this.isOpen && !this._target?.contains(el) && !overlayElement?.contains(el)) {\n // Check if the click is inside a child overlay (e.g., selectbox dropdown)\n // Child overlays have a higher z-index than this popover\n if (this.isInsideChildOverlay(el)) {\n return;\n }\n this.close();\n }\n };\n this.document.addEventListener('mousedown', this._outsideClickHandler);\n }\n\n // Scroll listener to close popover when scrolling outside\n this.setupScrollListener(overlayElement);\n\n // Resize observer\n this.initializeResizeObserver();\n\n setTimeout(() => {\n overlayElement.style.pointerEvents = 'auto';\n }, this.openAfter);\n }\n\n /** @ignore */\n private removeOverlayEvents() {\n if (this._outsideClickHandler) {\n this.document.removeEventListener('mousedown', this._outsideClickHandler);\n this._outsideClickHandler = null;\n }\n this.removeScrollListener();\n }\n\n /** @ignore */\n private setupScrollListener(overlayElement: HTMLElement) {\n if (!this.closeOnScroll || !isPlatformBrowser(this.platformID)) {\n return;\n }\n\n this._scrollHandler = (e: Event) => {\n // Ignore scroll events fired during the initial open frame\n if (!this._scrollListenerActive || !this.isOpen) {\n return;\n }\n\n // Resolve the scroll target. For document/window scrolls, e.target is the document.\n const target = e.target as Node | null;\n\n // Don't close when scrolling occurs inside the popover itself\n if (target && overlayElement.contains(target)) {\n return;\n }\n\n // Don't close when scrolling occurs inside a nested/child overlay\n // (e.g., a selectbox dropdown opened from within this popover).\n if (target instanceof Element && this.isInsideChildOverlay(target)) {\n return;\n }\n\n // iOS (and some mobile browsers) scroll the document when the soft keyboard\n // opens after focusing an input inside the overlay. That must not close it.\n if (this.isKeyboardInducedDocumentScroll(target, overlayElement)) {\n return;\n }\n\n this.close();\n };\n\n // Capture phase so we receive scroll events from any scrollable ancestor\n this.document.addEventListener('scroll', this._scrollHandler, true);\n\n // Delay activation to ignore layout/scroll events fired right after opening\n this._scrollActivationFrame = requestAnimationFrame(() => {\n this._scrollListenerActive = true;\n this._scrollActivationFrame = null;\n });\n }\n\n /** @ignore */\n private removeScrollListener() {\n if (this._scrollActivationFrame !== null) {\n cancelAnimationFrame(this._scrollActivationFrame);\n this._scrollActivationFrame = null;\n }\n if (this._scrollHandler) {\n this.document.removeEventListener('scroll', this._scrollHandler, true);\n this._scrollHandler = null;\n }\n this._scrollListenerActive = false;\n }\n\n /**\n * True when document-level scroll is a side-effect of focusing an editable control\n * inside the overlay (soft keyboard / visual viewport adjustment), mainly on iOS Safari.\n * @ignore\n */\n private isKeyboardInducedDocumentScroll(scrollTarget: Node | null, overlayElement: HTMLElement): boolean {\n if (!this.isDocumentScrollTarget(scrollTarget)) {\n return false;\n }\n\n const active = this.document.activeElement;\n if (!(active instanceof HTMLElement) || !overlayElement.contains(active)) {\n return false;\n }\n\n const tag = active.tagName;\n return (\n tag === 'INPUT' ||\n tag === 'TEXTAREA' ||\n tag === 'SELECT' ||\n active.isContentEditable ||\n !!active.closest('input, textarea, select, [contenteditable=\"true\"]')\n );\n }\n\n /** @ignore */\n private isDocumentScrollTarget(target: Node | null): boolean {\n if (!target) {\n return false;\n }\n\n const doc = this.document;\n return target === doc || target === doc.documentElement || target === doc.body;\n }\n\n /**\n * Checks whether the given element lives inside a child overlay\n * (an overlay stacked on top of this popover, e.g. a selectbox dropdown).\n * Child overlays are identified by having a higher z-index than this popover's overlay.\n * @ignore\n */\n private isInsideChildOverlay(element: Element): boolean {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!overlayElement) return false;\n\n const otherOverlay = element.closest('.ax-overlay-container');\n if (!otherOverlay || otherOverlay === overlayElement) return false;\n\n const popoverZIndex = parseInt(overlayElement.style.zIndex || '0', 10);\n const otherZIndex = parseInt((otherOverlay as HTMLElement).style.zIndex || '0', 10);\n\n return otherZIndex > popoverZIndex;\n }\n\n /** @ignore */\n private handleOverlayDisposed() {\n // Called when overlay is disposed externally (e.g., by scroll)\n this.disconnectResizeObserver();\n this.removeOverlayEvents();\n this.removeKeyDownListener();\n this._overlayRef = null;\n this._componentRef = null;\n this.restoreFocus();\n this._emitOnClosedEvent();\n }\n\n /**\n * Toggles the component's open state.\n */\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n\n /**\n * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this.disconnectResizeObserver();\n this.removeOverlayEvents();\n this.removeKeyDownListener();\n\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n\n this._componentRef = null;\n this.restoreFocus();\n this._emitOnClosedEvent();\n }\n\n /**\n * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.\n */\n async open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this.addKeyDownListener();\n this.saveFocus();\n await this.openOverlayInternal();\n this._emitOnOpenedEvent();\n }\n\n /** @ignore */\n private addKeyDownListener() {\n if (isPlatformBrowser(this.platformID)) {\n this.onKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.close();\n }\n };\n this.document.addEventListener('keydown', this.onKeyDownHandler);\n }\n }\n\n /** @ignore */\n private removeKeyDownListener() {\n if (this.onKeyDownHandler) {\n this.document.removeEventListener('keydown', this.onKeyDownHandler);\n this.onKeyDownHandler = null;\n }\n }\n\n /** @ignore */\n private saveFocus() {\n if (isPlatformBrowser(this.platformID)) {\n this._lastActiveElement = this.document.activeElement as Element;\n }\n }\n\n /** @ignore */\n private restoreFocus() {\n if (this._lastActiveElement instanceof HTMLElement) {\n this._lastActiveElement?.focus?.();\n }\n }\n\n /** @ignore */\n private async openOverlayInternal() {\n const targetRef = this._target;\n if (!targetRef) return;\n\n // Build panel classes — theme/appearance propagate via AXOverlayService visual context\n const panelClasses = ['animate-fadeIn', 'animate-faster'];\n if (this.panelClass) {\n panelClasses.push(this.panelClass);\n }\n\n // Determine content to display\n let contentToRender: TemplateRef<unknown> | AXComponentType<unknown>;\n let inputs: Record<string, unknown> | undefined;\n\n if (this.content instanceof TemplateRef) {\n contentToRender = this.content;\n } else if (typeof this.content === 'function') {\n contentToRender = this.content;\n inputs = this.context as Record<string, unknown>;\n } else {\n contentToRender = this._baseTemplate;\n }\n\n // Create the overlay\n this._overlayRef = await this.overlayService.create(contentToRender, {\n inputs,\n visualContextScope: this.visualContextScope(),\n anchorOptions: {\n anchor: targetRef as HTMLElement,\n placement: this._placement,\n offsetX: this._offsetX,\n offsetY: this._offsetY,\n autoFlip: true,\n },\n panelClass: !this.disablePanelClass() ? panelClasses : '',\n width: this.width(),\n onDispose: () => this.handleOverlayDisposed(),\n actionSheetStyle: this.adaptivityEnabled,\n });\n\n // Store component ref if it's a component\n if (this._overlayRef.instance) {\n this._componentRef = this._overlayRef.instance as unknown as ComponentRef<unknown>;\n if (this.context && this._componentRef.instance) {\n Object.assign(this._componentRef.instance, this.context);\n }\n }\n\n // Bind overlay events\n this.bindOverlayEvents();\n }\n\n /**\n * Checks if the overlay is currently open.\n * @returns {boolean}\n */\n get isOpen(): boolean {\n return this._overlayRef !== null;\n }\n\n /** @ignore */\n private updateOffset() {\n this._placements?.forEach((p) => {\n if (this._offsetY != null) p.offsetY = this._offsetY;\n if (this._offsetX != null) p.offsetX = this._offsetX;\n });\n }\n\n /**\n * Updates the position of the overlay and focuses on it.\n */\n public updatePosition(): void {\n this._overlayRef?.updatePosition();\n this.focus();\n }\n\n /**\n * Focuses the overlay element.\n */\n public focus(): void {\n // Optional focus behavior\n }\n\n /**\n * Brings this popover to the front of all other overlays.\n */\n public bringToFront(): void {\n this._overlayRef?.bringToFront();\n }\n\n /** @ignore */\n private initializeResizeObserver(): void {\n if (!isPlatformBrowser(this.platformID) || !this._overlayRef?.overlayElement) {\n return;\n }\n this.disconnectResizeObserver();\n this.resizeObserver = new ResizeObserver(() => {\n this.resize$.next();\n });\n this.resizeObserver.observe(this._overlayRef.overlayElement);\n }\n\n /** @ignore */\n private disconnectResizeObserver(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.disconnectResizeObserver();\n this.resize$.complete();\n this.removeTargetEvents();\n this.removeOverlayEvents();\n this.removeKeyDownListener();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n}\n","<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopoverComponent } from './popover.component';\n\n@NgModule({\n imports: [CommonModule, AXPopoverComponent],\n exports: [AXPopoverComponent],\n providers: [],\n})\nexport class AXPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "22.0.
|
|
6
|
-
"@acorex/cdk": "22.0.
|
|
5
|
+
"@acorex/core": "22.0.1",
|
|
6
|
+
"@acorex/cdk": "22.0.1",
|
|
7
7
|
"@angular/aria": ">=22.1.0",
|
|
8
8
|
"polytype": ">=0.17.0",
|
|
9
9
|
"angular-imask": ">=7.6.1",
|
|
@@ -687,8 +687,6 @@ declare class AXConversationComposerService {
|
|
|
687
687
|
private readonly generationState;
|
|
688
688
|
private readonly translation;
|
|
689
689
|
private readonly popupService;
|
|
690
|
-
private readonly actionSheetService;
|
|
691
|
-
private readonly platform;
|
|
692
690
|
private readonly config;
|
|
693
691
|
private readonly _activeActionOverlay;
|
|
694
692
|
private get registry();
|
|
@@ -3804,8 +3802,6 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
3804
3802
|
getRendererInputs(message: AXConversationMessage): {
|
|
3805
3803
|
message: AXConversationMessage;
|
|
3806
3804
|
};
|
|
3807
|
-
/** Get status icon */
|
|
3808
|
-
getStatusIcon(message: AXConversationMessage): string;
|
|
3809
3805
|
/** Get status icon CSS classes */
|
|
3810
3806
|
getStatusIconClasses(message: AXConversationMessage): string;
|
|
3811
3807
|
/** Get status tooltip text */
|
|
@@ -4771,12 +4767,18 @@ declare function resolvePersistableMediaUrl(url: string | undefined): string | u
|
|
|
4771
4767
|
/** First non-empty URL for img/video/audio at runtime (includes resolved blob: URLs). */
|
|
4772
4768
|
declare function pickDisplayMediaUrl(...candidates: (string | null | undefined)[]): string;
|
|
4773
4769
|
|
|
4774
|
-
/**
|
|
4770
|
+
/** Caption field with emoji picker for composer media pickers. */
|
|
4775
4771
|
declare class AXConversationPickerCaptionComponent {
|
|
4776
4772
|
readonly translation: AXTranslationService;
|
|
4777
4773
|
readonly caption: _angular_core.ModelSignal<string>;
|
|
4778
4774
|
readonly sendDisabled: _angular_core.InputSignal<boolean>;
|
|
4779
4775
|
readonly onSend: _angular_core.OutputEmitterRef<void>;
|
|
4776
|
+
readonly emojiPopoverTarget: _angular_core.WritableSignal<HTMLElement>;
|
|
4777
|
+
private readonly emojiPopoverRef;
|
|
4778
|
+
onEmojiClick(event: MouseEvent): void;
|
|
4779
|
+
onEmojiPopoverClosed(): void;
|
|
4780
|
+
onEmojiItemSelected: (item: string | AXConversationStickerPayload) => void;
|
|
4781
|
+
onCaptionKeyDown(event: AXHtmlEvent<KeyboardEvent>): void;
|
|
4780
4782
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationPickerCaptionComponent, never>;
|
|
4781
4783
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerCaptionComponent, "ax-conversation-picker-caption", never, { "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "sendDisabled": { "alias": "sendDisabled"; "required": false; "isSignal": true; }; }, { "caption": "captionChange"; "onSend": "onSend"; }, never, never, true, never>;
|
|
4782
4784
|
}
|
|
@@ -5830,9 +5832,7 @@ declare class AXConversationMessageUtilsService {
|
|
|
5830
5832
|
static getSenderAvatarIcon(message: AXConversationMessage, conversation: AXConversation): string | undefined;
|
|
5831
5833
|
static getConversationAvatar(conversation: AXConversation): string | undefined;
|
|
5832
5834
|
static getConversationAvatarIcon(conversation: AXConversation): string | undefined;
|
|
5833
|
-
static getStatusIcon(message: AXConversationMessage): string;
|
|
5834
5835
|
static getConversationStatus(conversation: AXConversation, presence?: AXConversationUserPresence): AXConversationPresenceStatus | undefined;
|
|
5835
|
-
static getDeliveryStatusIcon(status: AXConversationMessage['status']): string;
|
|
5836
5836
|
static shouldGroupMessages(message: AXConversationMessage, previousMessage?: AXConversationMessage): boolean;
|
|
5837
5837
|
static getUserPresenceStatus(presence?: AXConversationUserPresence): AXConversationPresenceStatus | undefined;
|
|
5838
5838
|
static getTypingText(conversation: AXConversation, typingUserIds: string[]): string;
|
|
@@ -187,11 +187,13 @@ declare class AXPopoverComponent extends MXBaseComponent implements OnDestroy {
|
|
|
187
187
|
/** @ignore */
|
|
188
188
|
private removeScrollListener;
|
|
189
189
|
/**
|
|
190
|
-
* True when scroll is a side-effect of focusing an editable control
|
|
191
|
-
* (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
|
|
190
|
+
* True when document-level scroll is a side-effect of focusing an editable control
|
|
191
|
+
* inside the overlay (soft keyboard / visual viewport adjustment), mainly on iOS Safari.
|
|
192
192
|
* @ignore
|
|
193
193
|
*/
|
|
194
|
-
private
|
|
194
|
+
private isKeyboardInducedDocumentScroll;
|
|
195
|
+
/** @ignore */
|
|
196
|
+
private isDocumentScrollTarget;
|
|
195
197
|
/**
|
|
196
198
|
* Checks whether the given element lives inside a child overlay
|
|
197
199
|
* (an overlay stacked on top of this popover, e.g. a selectbox dropdown).
|