@radix-ng/primitives 0.23.0 → 0.24.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-popover.mjs","sources":["../../../packages/primitives/popover/src/popover-anchor.token.ts","../../../packages/primitives/popover/src/popover-arrow.token.ts","../../../packages/primitives/popover/src/popover-close.token.ts","../../../packages/primitives/popover/src/popover-content-attributes.token.ts","../../../packages/primitives/popover/src/popover.types.ts","../../../packages/primitives/popover/src/popover.constants.ts","../../../packages/primitives/popover/src/popover.utils.ts","../../../packages/primitives/popover/src/popover-content.directive.ts","../../../packages/primitives/popover/src/popover-trigger.directive.ts","../../../packages/primitives/popover/src/popover-root.directive.ts","../../../packages/primitives/popover/src/popover-root.inject.ts","../../../packages/primitives/popover/src/popover-anchor.directive.ts","../../../packages/primitives/popover/src/popover-arrow.directive.ts","../../../packages/primitives/popover/src/popover-close.directive.ts","../../../packages/primitives/popover/src/popover-content-attributes.component.ts","../../../packages/primitives/popover/index.ts","../../../packages/primitives/popover/radix-ng-primitives-popover.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './popover-anchor.directive';\n\nexport const RdxPopoverAnchorToken = new InjectionToken<RdxPopoverAnchorDirective>('RdxPopoverAnchorToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverArrowDirective } from './popover-arrow.directive';\n\nexport const RdxPopoverArrowToken = new InjectionToken<RdxPopoverArrowDirective>('RdxPopoverArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverCloseDirective } from './popover-close.directive';\n\nexport const RdxPopoverCloseToken = new InjectionToken<RdxPopoverCloseDirective>('RdxPopoverCloseToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverContentAttributesComponent } from './popover-content-attributes.component';\n\nexport const RdxPopoverContentAttributesToken = new InjectionToken<RdxPopoverContentAttributesComponent>(\n 'RdxPopoverContentAttributesToken'\n);\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport enum RdxPopoverSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum RdxPopoverAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport enum RdxPopoverState {\n OPEN = 'open',\n CLOSED = 'closed'\n}\n\nexport enum RdxPopoverAttachDetachEvent {\n ATTACH = 'attach',\n DETACH = 'detach'\n}\n\nexport enum RdxPopoverAnimationStatus {\n OPEN_STARTED = 'open_started',\n OPEN_ENDED = 'open_ended',\n CLOSED_STARTED = 'closed_started',\n CLOSED_ENDED = 'closed_ended'\n}\n\nexport type RdxSideAndAlign = { side: RdxPopoverSide; align: RdxPopoverAlign };\nexport type RdxSideAndAlignOffsets = { sideOffset: number; alignOffset: number };\n\nexport type RdxPopoverPositions = {\n [key in RdxPopoverSide]: {\n [key in RdxPopoverAlign]: ConnectionPositionPair;\n };\n};\n\nexport type RdxAllPossibleConnectedPositions = ReadonlyMap<\n `${RdxPopoverSide}|${RdxPopoverAlign}`,\n ConnectionPositionPair\n>;\n\nexport type RdxArrowPositionParams = {\n top: string;\n left: string;\n transform: string;\n};\n","import { RdxPopoverAlign, RdxPopoverPositions, RdxPopoverSide } from './popover.types';\n\nexport const POPOVER_POSITIONS: RdxPopoverPositions = {\n [RdxPopoverSide.Top]: {\n [RdxPopoverAlign.Center]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n [RdxPopoverAlign.End]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n },\n [RdxPopoverSide.Right]: {\n [RdxPopoverAlign.Center]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxPopoverAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n },\n [RdxPopoverSide.Bottom]: {\n [RdxPopoverAlign.Center]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxPopoverAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n },\n [RdxPopoverSide.Left]: {\n [RdxPopoverAlign.Center]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n [RdxPopoverAlign.End]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n }\n} as const;\n\nexport const DEFAULTS = {\n offsets: {\n side: 10,\n align: 0\n }\n} as const;\n","import { ConnectedPosition, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { POPOVER_POSITIONS } from './popover.constants';\nimport {\n RdxAllPossibleConnectedPositions,\n RdxArrowPositionParams,\n RdxPopoverAlign,\n RdxPopoverSide,\n RdxSideAndAlign,\n RdxSideAndAlignOffsets\n} from './popover.types';\n\nlet allPossibleConnectedPositions: RdxAllPossibleConnectedPositions;\nexport function getAllPossibleConnectedPositions() {\n if (!allPossibleConnectedPositions) {\n allPossibleConnectedPositions = new Map();\n }\n if (allPossibleConnectedPositions.size < 1) {\n Object.keys(POPOVER_POSITIONS).forEach((side) => {\n Object.keys(POPOVER_POSITIONS[side as RdxPopoverSide] ?? {}).forEach((align) => {\n (allPossibleConnectedPositions as Map<any, any>).set(\n `${side as RdxPopoverSide}|${align as RdxPopoverAlign}`,\n POPOVER_POSITIONS[side as RdxPopoverSide][align as RdxPopoverAlign]\n );\n });\n });\n }\n return allPossibleConnectedPositions;\n}\n\nexport function getSideAndAlignFromAllPossibleConnectedPositions(position: ConnectionPositionPair): RdxSideAndAlign {\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n let sideAndAlign: RdxSideAndAlign | undefined;\n allPossibleConnectedPositions.forEach((value, key) => {\n if (\n position.originX === value.originX &&\n position.originY === value.originY &&\n position.overlayX === value.overlayX &&\n position.overlayY === value.overlayY\n ) {\n const sideAndAlignArray = key.split('|');\n sideAndAlign = {\n side: sideAndAlignArray[0] as RdxPopoverSide,\n align: sideAndAlignArray[1] as RdxPopoverAlign\n };\n }\n });\n if (!sideAndAlign) {\n throw Error(\n `[RdxPopover] cannot infer both side and align from the given position (${JSON.stringify(position)})`\n );\n }\n return sideAndAlign;\n}\n\nexport function getContentPosition(\n sideAndAlignWithOffsets: RdxSideAndAlign & RdxSideAndAlignOffsets\n): ConnectedPosition {\n const { side, align, sideOffset, alignOffset } = sideAndAlignWithOffsets;\n const position = {\n ...(POPOVER_POSITIONS[side]?.[align] ?? POPOVER_POSITIONS[RdxPopoverSide.Top][RdxPopoverAlign.Center])\n };\n if (sideOffset || alignOffset) {\n if ([RdxPopoverSide.Top, RdxPopoverSide.Bottom].includes(side)) {\n if (sideOffset) {\n position.offsetY = side === RdxPopoverSide.Top ? -sideOffset : sideOffset;\n }\n if (alignOffset) {\n position.offsetX = alignOffset;\n }\n } else {\n if (sideOffset) {\n position.offsetX = side === RdxPopoverSide.Left ? -sideOffset : sideOffset;\n }\n if (alignOffset) {\n position.offsetY = alignOffset;\n }\n }\n }\n return position;\n}\n\nexport function getArrowPositionParams(\n sideAndAlign: RdxSideAndAlign,\n arrowWidthAndHeight: { width: number; height: number },\n triggerWidthAndHeight: { width: number; height: number }\n): RdxArrowPositionParams {\n const posParams: RdxArrowPositionParams = {\n top: '',\n left: '',\n transform: ''\n };\n\n if ([RdxPopoverSide.Top, RdxPopoverSide.Bottom].includes(sideAndAlign.side)) {\n if (sideAndAlign.side === RdxPopoverSide.Top) {\n posParams.top = '100%';\n } else {\n posParams.top = `-${arrowWidthAndHeight.height}px`;\n posParams.transform = `rotate(180deg)`;\n }\n\n if (sideAndAlign.align === RdxPopoverAlign.Start) {\n posParams.left = `${(triggerWidthAndHeight.width - arrowWidthAndHeight.width) / 2}px`;\n } else if (sideAndAlign.align === RdxPopoverAlign.Center) {\n posParams.left = `calc(50% - ${arrowWidthAndHeight.width / 2}px)`;\n } else if (sideAndAlign.align === RdxPopoverAlign.End) {\n posParams.left = `calc(100% - ${(triggerWidthAndHeight.width + arrowWidthAndHeight.width) / 2}px)`;\n }\n } else if ([RdxPopoverSide.Left, RdxPopoverSide.Right].includes(sideAndAlign.side)) {\n if (sideAndAlign.side === RdxPopoverSide.Left) {\n posParams.left = `100%`;\n posParams.transform = `rotate(-90deg) translate(0, -50%)`;\n } else {\n posParams.left = `-${arrowWidthAndHeight.width}px`;\n posParams.transform = `rotate(90deg) translate(0, -50%)`;\n }\n\n if (sideAndAlign.align === RdxPopoverAlign.Start) {\n posParams.top = `${(triggerWidthAndHeight.height - arrowWidthAndHeight.height) / 2}px`;\n } else if (sideAndAlign.align === RdxPopoverAlign.Center) {\n posParams.top = `calc(50% - ${arrowWidthAndHeight.height / 2}px)`;\n } else if (sideAndAlign.align === RdxPopoverAlign.End) {\n posParams.top = `calc(100% - ${(triggerWidthAndHeight.height + arrowWidthAndHeight.height) / 2}px)`;\n }\n }\n\n return posParams;\n}\n","import { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';\nimport {\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, tap } from 'rxjs';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { DEFAULTS } from './popover.constants';\nimport { RdxPopoverAlign, RdxPopoverAttachDetachEvent, RdxPopoverSide, RdxSideAndAlignOffsets } from './popover.types';\nimport { getAllPossibleConnectedPositions, getContentPosition } from './popover.utils';\n\n@Directive({\n selector: '[rdxPopoverContent]',\n standalone: true,\n hostDirectives: [\n CdkConnectedOverlay\n ]\n})\nexport class RdxPopoverContentDirective implements OnInit {\n /** @ignore */\n private readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n private readonly templateRef = inject(TemplateRef);\n /** @ignore */\n private readonly overlay = inject(Overlay);\n /** @ignore */\n private readonly destroyRef = inject(DestroyRef);\n /** @ignore */\n private readonly connectedOverlay = inject(CdkConnectedOverlay);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);\n\n /**\n * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.\n * @default top\n */\n readonly side = input<RdxPopoverSide>(RdxPopoverSide.Top);\n /**\n * @description The distance in pixels from the trigger.\n * @default undefined\n */\n readonly sideOffset = input<number | undefined>(void 0);\n /**\n * @description The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n readonly align = input<RdxPopoverAlign>(RdxPopoverAlign.Center);\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default undefined\n */\n readonly alignOffset = input<number | undefined>(void 0);\n\n /**\n * @description Whether to add some alternate positions of the content.\n * @default false\n */\n readonly disableAlternatePositions = input(false);\n\n /**\n * @description Event handler called when the escape key is down. It can be prevented by calling event.preventDefault.\n */\n readonly onEscapeKeyDown = output<KeyboardEvent>();\n\n /**\n * @description Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling event.preventDefault.\n */\n readonly onOutsideClick = output<MouseEvent>();\n\n /**\n * @description Event handler called after the overlay is open\n */\n readonly onOpen = output<void>();\n /**\n * @description Event handler called after the overlay is closed\n */\n readonly onClosed = output<void>();\n\n /** @ingore */\n readonly positions = computed(() => this.computePositions());\n\n constructor() {\n this.onOriginChangeEffect();\n this.onPositionChangeEffect();\n }\n\n /** @ignore */\n ngOnInit() {\n this.setScrollStrategy();\n this.setDisableClose();\n this.onAttach();\n this.onDetach();\n this.connectKeydownEscape();\n this.connectOutsideClick();\n }\n\n /** @ignore */\n open() {\n if (this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = true;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n\n /** @ignore */\n close() {\n if (!this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = false;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n\n /** @ignore */\n positionChange() {\n return this.connectedOverlay.positionChange.asObservable();\n }\n\n /** @ignore */\n private connectKeydownEscape() {\n this.connectedOverlay.overlayKeydown\n .asObservable()\n .pipe(\n filter((event) => event.key === 'Escape'),\n tap((event) => {\n this.onEscapeKeyDown.emit(event);\n }),\n filter((event) => !event.defaultPrevented && !this.popoverRoot.firstDefaultOpen()),\n tap(() => {\n this.popoverRoot.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private connectOutsideClick() {\n this.connectedOverlay.overlayOutsideClick\n .asObservable()\n .pipe(\n /**\n * Handle the situation when an anchor is added and the anchor becomes the origin of the overlay\n * hence the trigger will be considered the outside element\n */\n filter((event) => {\n return (\n !this.popoverRoot.popoverAnchorDirective() ||\n !this.popoverRoot\n .popoverTriggerDirective()\n .elementRef.nativeElement.contains(event.target as Element)\n );\n }),\n tap((event) => {\n this.onOutsideClick.emit(event);\n }),\n filter((event) => !event.defaultPrevented && !this.popoverRoot.firstDefaultOpen()),\n tap(() => {\n this.popoverRoot.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onAttach() {\n this.connectedOverlay.attach\n .asObservable()\n .pipe(\n tap(() => {\n /**\n * `this.onOpen.emit();` is being delegated to the root directive due to the opening animation\n */\n this.popoverRoot.attachDetachEvent.set(RdxPopoverAttachDetachEvent.ATTACH);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onDetach() {\n this.connectedOverlay.detach\n .asObservable()\n .pipe(\n tap(() => {\n /**\n * `this.onClosed.emit();` is being delegated to the root directive due to the closing animation\n */\n this.popoverRoot.attachDetachEvent.set(RdxPopoverAttachDetachEvent.DETACH);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private setScrollStrategy() {\n const prevScrollStrategy = this.connectedOverlay.scrollStrategy;\n this.connectedOverlay.scrollStrategy = this.overlay.scrollStrategies.reposition();\n this.fireOverlayNgOnChanges('scrollStrategy', this.connectedOverlay.scrollStrategy, prevScrollStrategy);\n }\n\n /** @ignore */\n private setDisableClose() {\n const prevDisableClose = this.connectedOverlay.disableClose;\n this.connectedOverlay.disableClose = true;\n this.fireOverlayNgOnChanges('disableClose', this.connectedOverlay.disableClose, prevDisableClose);\n }\n\n /** @ignore */\n private setOrigin(origin: CdkConnectedOverlay['origin']) {\n const prevOrigin = this.connectedOverlay.origin;\n this.connectedOverlay.origin = origin;\n this.fireOverlayNgOnChanges('origin', this.connectedOverlay.origin, prevOrigin);\n }\n\n /** @ignore */\n private setPositions(positions: CdkConnectedOverlay['positions']) {\n const prevPositions = this.connectedOverlay.positions;\n this.connectedOverlay.positions = positions;\n this.fireOverlayNgOnChanges('positions', this.connectedOverlay.positions, prevPositions);\n this.connectedOverlay.overlayRef?.updatePosition();\n }\n\n /** @ignore */\n private computePositions() {\n const greatestDimensionFromTheArrow = Math.max(\n this.popoverRoot.popoverArrowDirective()?.width() ?? 0,\n this.popoverRoot.popoverArrowDirective()?.height() ?? 0\n );\n const offsets: RdxSideAndAlignOffsets = {\n sideOffset: this.sideOffset() ?? (greatestDimensionFromTheArrow || DEFAULTS.offsets.side),\n alignOffset: this.alignOffset() ?? DEFAULTS.offsets.align\n };\n const basePosition = getContentPosition({\n side: this.side(),\n align: this.align(),\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n });\n const positions = [basePosition];\n if (!this.disableAlternatePositions()) {\n /**\n * Alternate positions for better user experience along the X/Y axis (e.g. vertical/horizontal scrolling)\n */\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n allPossibleConnectedPositions.forEach((_, key) => {\n const sideAndAlignArray = key.split('|');\n if (\n (sideAndAlignArray[0] as RdxPopoverSide) !== this.side() ||\n (sideAndAlignArray[1] as RdxPopoverAlign) !== this.align()\n ) {\n positions.push(\n getContentPosition({\n side: sideAndAlignArray[0] as RdxPopoverSide,\n align: sideAndAlignArray[1] as RdxPopoverAlign,\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n })\n );\n }\n });\n }\n return positions;\n }\n\n private onOriginChangeEffect() {\n effect(() => {\n const origin = (this.popoverRoot.popoverAnchorDirective() ?? this.popoverRoot.popoverTriggerDirective())\n .overlayOrigin;\n untracked(() => {\n this.setOrigin(origin);\n });\n });\n }\n\n /** @ignore */\n private onPositionChangeEffect() {\n effect(() => {\n const positions = this.positions();\n this.disableAlternatePositions();\n untracked(() => {\n this.setPositions(positions);\n });\n });\n }\n\n /** @ignore */\n private fireOverlayNgOnChanges<K extends keyof CdkConnectedOverlay, V extends CdkConnectedOverlay[K]>(\n input: K,\n currentValue: V,\n previousValue: V,\n firstChange = false\n ) {\n this.connectedOverlay.ngOnChanges({\n [input]: new SimpleChange(previousValue, currentValue, firstChange)\n });\n }\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, inject } from '@angular/core';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverTrigger]',\n standalone: true,\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.aria-expanded]': 'popoverRoot.isOpen()',\n '[attr.aria-controls]': 'popoverRoot.popoverContentDirective().name()',\n '[attr.data-state]': 'popoverRoot.state()',\n '(click)': 'click()'\n }\n})\nexport class RdxPopoverTriggerDirective {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.popoverRoot.handleToggle();\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n signal,\n untracked,\n ViewContainerRef\n} from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './popover-anchor.directive';\nimport { RdxPopoverAnchorToken } from './popover-anchor.token';\nimport { RdxPopoverArrowToken } from './popover-arrow.token';\nimport { RdxPopoverCloseToken } from './popover-close.token';\nimport { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';\nimport { RdxPopoverContentDirective } from './popover-content.directive';\nimport { RdxPopoverTriggerDirective } from './popover-trigger.directive';\nimport { RdxPopoverAnimationStatus, RdxPopoverAttachDetachEvent, RdxPopoverState } from './popover.types';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxPopoverRoot]',\n standalone: true,\n exportAs: 'rdxPopoverRoot'\n})\nexport class RdxPopoverRootDirective {\n /** @ignore */\n readonly uniqueId = signal(++nextId);\n /** @ignore */\n readonly name = computed(() => `rdx-popover-root-${this.uniqueId()}`);\n\n /**\n * @description The anchor directive that comes form outside the popover root\n * @default undefined\n */\n readonly anchor = input<RdxPopoverAnchorDirective | undefined>(void 0);\n /**\n * @description The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n * @default false\n */\n readonly defaultOpen = input<boolean>(false);\n /**\n * @description The controlled state of the popover. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n readonly open = input<boolean | undefined>(void 0);\n /**\n * @description Whether to control the state of the popover from external. Use in conjunction with `open` input.\n * @default undefined\n */\n readonly externalControl = input<boolean | undefined>(void 0);\n /**\n * @description Whether to take into account CSS opening/closing animations.\n * @default false\n */\n readonly cssAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n readonly cssOpeningAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n readonly cssClosingAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly cssAnimationStatus = signal<RdxPopoverAnimationStatus | null>(null);\n\n /** @ignore */\n readonly popoverContentDirective = contentChild.required(RdxPopoverContentDirective);\n /** @ignore */\n readonly popoverTriggerDirective = contentChild.required(RdxPopoverTriggerDirective);\n /** @ignore */\n readonly popoverArrowDirective = contentChild(RdxPopoverArrowToken);\n /** @ignore */\n readonly popoverCloseDirective = contentChild(RdxPopoverCloseToken);\n /** @ignore */\n readonly popoverContentAttributesComponent = contentChild(RdxPopoverContentAttributesToken);\n /** @ignore */\n private readonly internalPopoverAnchorDirective = contentChild(RdxPopoverAnchorToken);\n\n /** @ignore */\n readonly viewContainerRef = inject(ViewContainerRef);\n /** @ignore */\n readonly destroyRef = inject(DestroyRef);\n\n /** @ignore */\n readonly state = signal(RdxPopoverState.CLOSED);\n\n /** @ignore */\n readonly attachDetachEvent = signal(RdxPopoverAttachDetachEvent.DETACH);\n\n /** @ignore */\n private isFirstDefaultOpen = signal(false);\n\n /** @ignore */\n readonly popoverAnchorDirective = computed(() => this.internalPopoverAnchorDirective() ?? this.anchor());\n\n constructor() {\n this.onStateChangeEffect();\n this.onCssAnimationStatusChangeChangeEffect();\n this.onOpenChangeEffect();\n this.onIsFirstDefaultOpenChangeEffect();\n this.onAnchorChangeEffect();\n this.emitOpenOrClosedEventEffect();\n afterNextRender({\n write: () => {\n if (this.defaultOpen() && !this.open()) {\n this.isFirstDefaultOpen.set(true);\n }\n }\n });\n }\n\n /** @ignore */\n getAnimationParamsSnapshot() {\n return {\n cssAnimation: this.cssAnimation(),\n cssOpeningAnimation: this.cssOpeningAnimation(),\n cssClosingAnimation: this.cssClosingAnimation(),\n cssAnimationStatus: this.cssAnimationStatus(),\n attachDetachEvent: this.attachDetachEvent(),\n state: this.state(),\n canEmitOnOpenOrOnClosed: this.canEmitOnOpenOrOnClosed()\n };\n }\n\n /** @ignore */\n controlledExternally() {\n return this.externalControl;\n }\n\n /** @ignore */\n firstDefaultOpen() {\n return this.isFirstDefaultOpen();\n }\n\n /** @ignore */\n handleOpen(): void {\n if (this.externalControl()) {\n return;\n }\n this.setState(RdxPopoverState.OPEN);\n }\n\n /** @ignore */\n handleClose(): void {\n if (this.isFirstDefaultOpen()) {\n this.isFirstDefaultOpen.set(false);\n }\n if (this.externalControl()) {\n return;\n }\n this.setState(RdxPopoverState.CLOSED);\n }\n\n /** @ignore */\n handleToggle(): void {\n if (this.externalControl()) {\n return;\n }\n this.isOpen() ? this.handleClose() : this.handleOpen();\n }\n\n /** @ignore */\n isOpen(state?: RdxPopoverState) {\n return (state ?? this.state()) === RdxPopoverState.OPEN;\n }\n\n /** @ignore */\n private setState(state = RdxPopoverState.CLOSED): void {\n if (state === this.state()) {\n return;\n }\n this.state.set(state);\n }\n\n /** @ignore */\n private openContent(): void {\n this.popoverContentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private closeContent(): void {\n this.popoverContentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private emitOnOpen(): void {\n this.popoverContentDirective().onOpen.emit();\n }\n\n /** @ignore */\n private emitOnClosed(): void {\n this.popoverContentDirective().onClosed.emit();\n }\n\n /** @ignore */\n private ifOpenOrCloseWithoutAnimations(state: RdxPopoverState) {\n return (\n !this.popoverContentAttributesComponent() ||\n !this.cssAnimation() ||\n (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxPopoverState.CLOSED) ||\n (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxPopoverState.OPEN) ||\n // !this.cssAnimationStatus() ||\n (this.cssOpeningAnimation() &&\n state === RdxPopoverState.OPEN &&\n [RdxPopoverAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus()!)) ||\n (this.cssClosingAnimation() &&\n state === RdxPopoverState.CLOSED &&\n [RdxPopoverAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus()!))\n );\n }\n\n /** @ignore */\n private ifOpenOrCloseWithAnimations(cssAnimationStatus: RdxPopoverAnimationStatus | null) {\n return (\n this.popoverContentAttributesComponent() &&\n this.cssAnimation() &&\n cssAnimationStatus &&\n ((this.cssOpeningAnimation() &&\n this.state() === RdxPopoverState.OPEN &&\n [RdxPopoverAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxPopoverState.CLOSED &&\n [RdxPopoverAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus)))\n );\n }\n\n /** @ignore */\n private openOrClose(state: RdxPopoverState) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n\n /** @ignore */\n private emitOnOpenOrOnClosed(state: RdxPopoverState) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxPopoverAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxPopoverAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n\n /** @ignore */\n private canEmitOnOpenOrOnClosed() {\n return (\n !this.cssAnimation() ||\n (!this.cssOpeningAnimation() && this.state() === RdxPopoverState.OPEN) ||\n (this.cssOpeningAnimation() &&\n this.state() === RdxPopoverState.OPEN &&\n this.cssAnimationStatus() === RdxPopoverAnimationStatus.OPEN_ENDED) ||\n (!this.cssClosingAnimation() && this.state() === RdxPopoverState.CLOSED) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxPopoverState.CLOSED &&\n this.cssAnimationStatus() === RdxPopoverAnimationStatus.CLOSED_ENDED)\n );\n }\n\n /** @ignore */\n private onStateChangeEffect() {\n let isFirst = true;\n effect(() => {\n const state = this.state();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithoutAnimations(state)) {\n return;\n }\n this.openOrClose(state);\n });\n }, {});\n }\n\n /** @ignore */\n private onCssAnimationStatusChangeChangeEffect() {\n let isFirst = true;\n effect(() => {\n const cssAnimationStatus = this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithAnimations(cssAnimationStatus)) {\n return;\n }\n this.openOrClose(this.state());\n });\n });\n }\n\n /** @ignore */\n private emitOpenOrClosedEventEffect() {\n let isFirst = true;\n effect(() => {\n this.attachDetachEvent();\n this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n const canEmitOpenClose = untracked(() => this.canEmitOnOpenOrOnClosed());\n if (!canEmitOpenClose) {\n return;\n }\n this.emitOnOpenOrOnClosed(this.state());\n });\n });\n }\n\n /** @ignore */\n private onOpenChangeEffect() {\n effect(() => {\n const open = this.open();\n untracked(() => {\n this.setState(open ? RdxPopoverState.OPEN : RdxPopoverState.CLOSED);\n });\n });\n }\n\n /** @ignore */\n private onIsFirstDefaultOpenChangeEffect() {\n const effectRef = effect(() => {\n const defaultOpen = this.defaultOpen();\n untracked(() => {\n if (!defaultOpen || this.open()) {\n effectRef.destroy();\n return;\n }\n this.handleOpen();\n });\n });\n }\n\n /** @ignore */\n private onAnchorChangeEffect = () => {\n effect(() => {\n const anchor = this.anchor();\n untracked(() => {\n if (anchor) {\n anchor.setPopoverRoot(this);\n }\n });\n });\n };\n}\n","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxPopoverRootDirective } from './popover-root.directive';\n\nexport function injectPopoverRoot(optional?: false): RdxPopoverRootDirective;\nexport function injectPopoverRoot(optional: true): RdxPopoverRootDirective | null;\nexport function injectPopoverRoot(optional = false): RdxPopoverRootDirective | null {\n isDevMode() && assertInInjectionContext(injectPopoverRoot);\n return inject(RdxPopoverRootDirective, { optional });\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { computed, Directive, ElementRef, forwardRef, inject } from '@angular/core';\nimport { RdxPopoverAnchorToken } from './popover-anchor.token';\nimport { RdxPopoverRootDirective } from './popover-root.directive';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverAnchor]',\n standalone: true,\n exportAs: 'rdxPopoverAnchor',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '(click)': 'click()'\n },\n providers: [\n {\n provide: RdxPopoverAnchorToken,\n useExisting: forwardRef(() => RdxPopoverAnchorDirective)\n }\n ]\n})\nexport class RdxPopoverAnchorDirective {\n /**\n * @ignore\n * If outside the root then null, otherwise the root directive - with optional `true` passed in as the first param.\n * If outside the root and non-null value that means the html structure is wrong - popover inside popover.\n * */\n protected popoverRoot = injectPopoverRoot(true);\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n readonly document = inject(DOCUMENT);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-external-anchor-${this.popoverRoot?.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.emitOutsideClick();\n }\n\n /** @ignore */\n setPopoverRoot(popoverRoot: RdxPopoverRootDirective) {\n this.popoverRoot = popoverRoot;\n }\n\n private emitOutsideClick() {\n const clickEvent = new MouseEvent('click', {\n view: this.document.defaultView,\n bubbles: true,\n cancelable: true\n });\n this.document.body.dispatchEvent(clickEvent);\n }\n}\n","import { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n Renderer2,\n signal,\n untracked\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { RdxPopoverArrowToken } from './popover-arrow.token';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions } from './popover.utils';\n\n@Directive({\n selector: '[rdxPopoverArrow]',\n standalone: true,\n providers: [\n {\n provide: RdxPopoverArrowToken,\n useExisting: forwardRef(() => RdxPopoverArrowDirective)\n }\n ]\n})\nexport class RdxPopoverArrowDirective implements AfterViewInit {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n\n /**\n * @description The width of the arrow in pixels.\n * @default 10\n */\n readonly width = input<number>(10);\n\n /**\n * @description The height of the arrow in pixels.\n * @default 5\n */\n readonly height = input<number>(5);\n\n /** @ignore */\n readonly arrowSvgElement = computed<HTMLElement>(() => {\n const width = this.width();\n const height = this.height();\n\n const svgElement = this.renderer.createElement('svg', 'svg');\n this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');\n this.renderer.setAttribute(svgElement, 'width', String(width));\n this.renderer.setAttribute(svgElement, 'height', String(height));\n const polygonElement = this.renderer.createElement('polygon', 'svg');\n this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');\n this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');\n this.renderer.appendChild(svgElement, polygonElement);\n\n return svgElement;\n });\n\n /** @ignore */\n private readonly currentArrowSvgElement = signal<HTMLOrSVGElement | undefined>(void 0);\n /** @ignore */\n private readonly position = toSignal(this.popoverRoot.popoverContentDirective().positionChange());\n\n /** @ignore */\n private anchorOrTriggerRect: DOMRect;\n\n constructor() {\n this.onArrowSvgElementChangeEffect();\n this.onContentPositionChangeEffect();\n }\n\n /** @ignore */\n ngAfterViewInit() {\n if (this.elementRef.nativeElement.parentElement) {\n this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');\n }\n this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'absolute');\n this.renderer.setStyle(this.elementRef.nativeElement, 'boxSizing', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'fontSize', '0px');\n }\n\n private setAnchorOrTriggerRect() {\n this.anchorOrTriggerRect = (\n this.popoverRoot.popoverAnchorDirective() ?? this.popoverRoot.popoverTriggerDirective()\n ).elementRef.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n private setPosition(position: ConnectedOverlayPositionChange) {\n this.setAnchorOrTriggerRect();\n const posParams = getArrowPositionParams(\n getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair),\n { width: this.width(), height: this.height() },\n { width: this.anchorOrTriggerRect.width, height: this.anchorOrTriggerRect.height }\n );\n\n this.renderer.setStyle(this.elementRef.nativeElement, 'top', posParams.top);\n this.renderer.setStyle(this.elementRef.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);\n this.renderer.setStyle(this.elementRef.nativeElement, 'right', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);\n }\n\n /** @ignore */\n private onArrowSvgElementChangeEffect() {\n effect(() => {\n const arrowElement = this.arrowSvgElement();\n untracked(() => {\n const currentArrowSvgElement = this.currentArrowSvgElement();\n if (currentArrowSvgElement) {\n this.renderer.removeChild(this.elementRef.nativeElement, currentArrowSvgElement);\n }\n this.currentArrowSvgElement.set(arrowElement);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.width()}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${this.height()}px`);\n this.renderer.appendChild(this.elementRef.nativeElement, this.currentArrowSvgElement());\n });\n });\n }\n\n /** @ignore */\n private onContentPositionChangeEffect() {\n effect(() => {\n const position = this.position();\n untracked(() => {\n if (!position) {\n return;\n }\n this.setPosition(position);\n });\n });\n }\n}\n","import { Directive, effect, ElementRef, forwardRef, inject, Renderer2, untracked } from '@angular/core';\nimport { RdxPopoverCloseToken } from './popover-close.token';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverClose]',\n standalone: true,\n host: {\n type: 'button',\n '(click)': 'popoverRoot.handleClose()'\n },\n providers: [\n {\n provide: RdxPopoverCloseToken,\n useExisting: forwardRef(() => RdxPopoverCloseDirective)\n }\n ]\n})\nexport class RdxPopoverCloseDirective {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n this.onIsControlledExternallyEffect();\n }\n\n /** @ignore */\n private onIsControlledExternallyEffect() {\n effect(() => {\n const isControlledExternally = this.popoverRoot.controlledExternally()();\n\n untracked(() => {\n this.renderer.setStyle(\n this.elementRef.nativeElement,\n 'display',\n isControlledExternally ? 'none' : null\n );\n });\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef } from '@angular/core';\nimport { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { RdxPopoverAnimationStatus, RdxPopoverState } from './popover.types';\n\n@Component({\n selector: '[rdxPopoverContentAttributes]',\n standalone: true,\n template: `\n <ng-content />\n `,\n host: {\n '[attr.role]': '\"dialog\"',\n '[attr.id]': 'name()',\n '[attr.data-state]': 'popoverRoot.state()',\n '[attr.data-side]': 'popoverRoot.popoverContentDirective().side()',\n '[attr.data-align]': 'popoverRoot.popoverContentDirective().align()',\n '[style]': 'disableAnimation() ? {animation: \"none !important\"} : null',\n '(animationstart)': 'onAnimationStart($event)',\n '(animationend)': 'onAnimationEnd($event)'\n },\n providers: [\n {\n provide: RdxPopoverContentAttributesToken,\n useExisting: forwardRef(() => RdxPopoverContentAttributesComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RdxPopoverContentAttributesComponent {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-content-attributes-${this.popoverRoot.uniqueId()}`);\n\n /** @ignore */\n readonly disableAnimation = computed(() => !this.canAnimate());\n\n /** @ignore */\n protected onAnimationStart(_: AnimationEvent) {\n this.popoverRoot.cssAnimationStatus.set(\n this.popoverRoot.state() === RdxPopoverState.OPEN\n ? RdxPopoverAnimationStatus.OPEN_STARTED\n : RdxPopoverAnimationStatus.CLOSED_STARTED\n );\n }\n\n /** @ignore */\n protected onAnimationEnd(_: AnimationEvent) {\n this.popoverRoot.cssAnimationStatus.set(\n this.popoverRoot.state() === RdxPopoverState.OPEN\n ? RdxPopoverAnimationStatus.OPEN_ENDED\n : RdxPopoverAnimationStatus.CLOSED_ENDED\n );\n }\n\n /** @ignore */\n private canAnimate() {\n return (\n this.popoverRoot.cssAnimation() &&\n ((this.popoverRoot.cssOpeningAnimation() && this.popoverRoot.state() === RdxPopoverState.OPEN) ||\n (this.popoverRoot.cssClosingAnimation() && this.popoverRoot.state() === RdxPopoverState.CLOSED))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './src/popover-anchor.directive';\nimport { RdxPopoverArrowDirective } from './src/popover-arrow.directive';\nimport { RdxPopoverCloseDirective } from './src/popover-close.directive';\nimport { RdxPopoverContentAttributesComponent } from './src/popover-content-attributes.component';\nimport { RdxPopoverContentDirective } from './src/popover-content.directive';\nimport { RdxPopoverRootDirective } from './src/popover-root.directive';\nimport { RdxPopoverTriggerDirective } from './src/popover-trigger.directive';\n\nexport * from './src/popover-anchor.directive';\nexport * from './src/popover-arrow.directive';\nexport * from './src/popover-close.directive';\nexport * from './src/popover-content-attributes.component';\nexport * from './src/popover-content.directive';\nexport * from './src/popover-root.directive';\nexport * from './src/popover-trigger.directive';\nexport * from './src/popover.types';\n\nconst _imports = [\n RdxPopoverArrowDirective,\n RdxPopoverCloseDirective,\n RdxPopoverContentDirective,\n RdxPopoverTriggerDirective,\n RdxPopoverRootDirective,\n RdxPopoverAnchorDirective,\n RdxPopoverContentAttributesComponent\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-popover.mjs","sources":["../../../packages/primitives/popover/src/popover-anchor.token.ts","../../../packages/primitives/popover/src/popover-arrow.token.ts","../../../packages/primitives/popover/src/popover-close.token.ts","../../../packages/primitives/popover/src/popover-content-attributes.token.ts","../../../packages/primitives/popover/src/popover.types.ts","../../../packages/primitives/popover/src/popover.constants.ts","../../../packages/primitives/popover/src/popover.utils.ts","../../../packages/primitives/popover/src/popover-content.directive.ts","../../../packages/primitives/popover/src/popover-trigger.directive.ts","../../../packages/primitives/popover/src/utils/constants.ts","../../../packages/primitives/popover/src/utils/cdk-event.service.ts","../../../packages/primitives/popover/src/popover-root.directive.ts","../../../packages/primitives/popover/src/popover-root.inject.ts","../../../packages/primitives/popover/src/popover-anchor.directive.ts","../../../packages/primitives/popover/src/popover-arrow.directive.ts","../../../packages/primitives/popover/src/popover-close.directive.ts","../../../packages/primitives/popover/src/popover-content-attributes.component.ts","../../../packages/primitives/popover/index.ts","../../../packages/primitives/popover/radix-ng-primitives-popover.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './popover-anchor.directive';\n\nexport const RdxPopoverAnchorToken = new InjectionToken<RdxPopoverAnchorDirective>('RdxPopoverAnchorToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverArrowDirective } from './popover-arrow.directive';\n\nexport const RdxPopoverArrowToken = new InjectionToken<RdxPopoverArrowDirective>('RdxPopoverArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverCloseDirective } from './popover-close.directive';\n\nexport const RdxPopoverCloseToken = new InjectionToken<RdxPopoverCloseDirective>('RdxPopoverCloseToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxPopoverContentAttributesComponent } from './popover-content-attributes.component';\n\nexport const RdxPopoverContentAttributesToken = new InjectionToken<RdxPopoverContentAttributesComponent>(\n 'RdxPopoverContentAttributesToken'\n);\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport enum RdxPopoverSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum RdxPopoverAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport enum RdxPopoverState {\n OPEN = 'open',\n CLOSED = 'closed'\n}\n\nexport enum RdxPopoverAttachDetachEvent {\n ATTACH = 'attach',\n DETACH = 'detach'\n}\n\nexport enum RdxPopoverAnimationStatus {\n OPEN_STARTED = 'open_started',\n OPEN_ENDED = 'open_ended',\n CLOSED_STARTED = 'closed_started',\n CLOSED_ENDED = 'closed_ended'\n}\n\nexport type RdxSideAndAlign = { side: RdxPopoverSide; align: RdxPopoverAlign };\nexport type RdxSideAndAlignOffsets = { sideOffset: number; alignOffset: number };\n\nexport type RdxPopoverPositions = {\n [key in RdxPopoverSide]: {\n [key in RdxPopoverAlign]: ConnectionPositionPair;\n };\n};\n\nexport type RdxAllPossibleConnectedPositions = ReadonlyMap<\n `${RdxPopoverSide}|${RdxPopoverAlign}`,\n ConnectionPositionPair\n>;\n\nexport type RdxArrowPositionParams = {\n top: string;\n left: string;\n transform: string;\n};\n","import { RdxPopoverAlign, RdxPopoverPositions, RdxPopoverSide } from './popover.types';\n\nexport const POPOVER_POSITIONS: RdxPopoverPositions = {\n [RdxPopoverSide.Top]: {\n [RdxPopoverAlign.Center]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n [RdxPopoverAlign.End]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n },\n [RdxPopoverSide.Right]: {\n [RdxPopoverAlign.Center]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxPopoverAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n },\n [RdxPopoverSide.Bottom]: {\n [RdxPopoverAlign.Center]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxPopoverAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n },\n [RdxPopoverSide.Left]: {\n [RdxPopoverAlign.Center]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n [RdxPopoverAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n [RdxPopoverAlign.End]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n }\n} as const;\n\nexport const DEFAULTS = {\n offsets: {\n side: 10,\n align: 0\n }\n} as const;\n","import { ConnectedPosition, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { POPOVER_POSITIONS } from './popover.constants';\nimport {\n RdxAllPossibleConnectedPositions,\n RdxArrowPositionParams,\n RdxPopoverAlign,\n RdxPopoverSide,\n RdxSideAndAlign,\n RdxSideAndAlignOffsets\n} from './popover.types';\n\nlet allPossibleConnectedPositions: RdxAllPossibleConnectedPositions;\nexport function getAllPossibleConnectedPositions() {\n if (!allPossibleConnectedPositions) {\n allPossibleConnectedPositions = new Map();\n }\n if (allPossibleConnectedPositions.size < 1) {\n Object.keys(POPOVER_POSITIONS).forEach((side) => {\n Object.keys(POPOVER_POSITIONS[side as RdxPopoverSide] ?? {}).forEach((align) => {\n (allPossibleConnectedPositions as Map<any, any>).set(\n `${side as RdxPopoverSide}|${align as RdxPopoverAlign}`,\n POPOVER_POSITIONS[side as RdxPopoverSide][align as RdxPopoverAlign]\n );\n });\n });\n }\n return allPossibleConnectedPositions;\n}\n\nexport function getSideAndAlignFromAllPossibleConnectedPositions(position: ConnectionPositionPair): RdxSideAndAlign {\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n let sideAndAlign: RdxSideAndAlign | undefined;\n allPossibleConnectedPositions.forEach((value, key) => {\n if (\n position.originX === value.originX &&\n position.originY === value.originY &&\n position.overlayX === value.overlayX &&\n position.overlayY === value.overlayY\n ) {\n const sideAndAlignArray = key.split('|');\n sideAndAlign = {\n side: sideAndAlignArray[0] as RdxPopoverSide,\n align: sideAndAlignArray[1] as RdxPopoverAlign\n };\n }\n });\n if (!sideAndAlign) {\n throw Error(\n `[RdxPopover] cannot infer both side and align from the given position (${JSON.stringify(position)})`\n );\n }\n return sideAndAlign;\n}\n\nexport function getContentPosition(\n sideAndAlignWithOffsets: RdxSideAndAlign & RdxSideAndAlignOffsets\n): ConnectedPosition {\n const { side, align, sideOffset, alignOffset } = sideAndAlignWithOffsets;\n const position = {\n ...(POPOVER_POSITIONS[side]?.[align] ?? POPOVER_POSITIONS[RdxPopoverSide.Top][RdxPopoverAlign.Center])\n };\n if (sideOffset || alignOffset) {\n if ([RdxPopoverSide.Top, RdxPopoverSide.Bottom].includes(side)) {\n if (sideOffset) {\n position.offsetY = side === RdxPopoverSide.Top ? -sideOffset : sideOffset;\n }\n if (alignOffset) {\n position.offsetX = alignOffset;\n }\n } else {\n if (sideOffset) {\n position.offsetX = side === RdxPopoverSide.Left ? -sideOffset : sideOffset;\n }\n if (alignOffset) {\n position.offsetY = alignOffset;\n }\n }\n }\n return position;\n}\n\nexport function getArrowPositionParams(\n sideAndAlign: RdxSideAndAlign,\n arrowWidthAndHeight: { width: number; height: number },\n triggerWidthAndHeight: { width: number; height: number }\n): RdxArrowPositionParams {\n const posParams: RdxArrowPositionParams = {\n top: '',\n left: '',\n transform: ''\n };\n\n if ([RdxPopoverSide.Top, RdxPopoverSide.Bottom].includes(sideAndAlign.side)) {\n if (sideAndAlign.side === RdxPopoverSide.Top) {\n posParams.top = '100%';\n } else {\n posParams.top = `-${arrowWidthAndHeight.height}px`;\n posParams.transform = `rotate(180deg)`;\n }\n\n if (sideAndAlign.align === RdxPopoverAlign.Start) {\n posParams.left = `${(triggerWidthAndHeight.width - arrowWidthAndHeight.width) / 2}px`;\n } else if (sideAndAlign.align === RdxPopoverAlign.Center) {\n posParams.left = `calc(50% - ${arrowWidthAndHeight.width / 2}px)`;\n } else if (sideAndAlign.align === RdxPopoverAlign.End) {\n posParams.left = `calc(100% - ${(triggerWidthAndHeight.width + arrowWidthAndHeight.width) / 2}px)`;\n }\n } else if ([RdxPopoverSide.Left, RdxPopoverSide.Right].includes(sideAndAlign.side)) {\n if (sideAndAlign.side === RdxPopoverSide.Left) {\n posParams.left = `100%`;\n posParams.transform = `rotate(-90deg) translate(0, -50%)`;\n } else {\n posParams.left = `-${arrowWidthAndHeight.width}px`;\n posParams.transform = `rotate(90deg) translate(0, -50%)`;\n }\n\n if (sideAndAlign.align === RdxPopoverAlign.Start) {\n posParams.top = `${(triggerWidthAndHeight.height - arrowWidthAndHeight.height) / 2}px`;\n } else if (sideAndAlign.align === RdxPopoverAlign.Center) {\n posParams.top = `calc(50% - ${arrowWidthAndHeight.height / 2}px)`;\n } else if (sideAndAlign.align === RdxPopoverAlign.End) {\n posParams.top = `calc(100% - ${(triggerWidthAndHeight.height + arrowWidthAndHeight.height) / 2}px)`;\n }\n }\n\n return posParams;\n}\n","import { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';\nimport {\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, tap } from 'rxjs';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { DEFAULTS } from './popover.constants';\nimport { RdxPopoverAlign, RdxPopoverAttachDetachEvent, RdxPopoverSide, RdxSideAndAlignOffsets } from './popover.types';\nimport { getAllPossibleConnectedPositions, getContentPosition } from './popover.utils';\n\n@Directive({\n selector: '[rdxPopoverContent]',\n standalone: true,\n hostDirectives: [\n CdkConnectedOverlay\n ]\n})\nexport class RdxPopoverContentDirective implements OnInit {\n /** @ignore */\n private readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n private readonly templateRef = inject(TemplateRef);\n /** @ignore */\n private readonly overlay = inject(Overlay);\n /** @ignore */\n private readonly destroyRef = inject(DestroyRef);\n /** @ignore */\n private readonly connectedOverlay = inject(CdkConnectedOverlay);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);\n\n /**\n * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.\n * @default top\n */\n readonly side = input<RdxPopoverSide>(RdxPopoverSide.Top);\n /**\n * @description The distance in pixels from the trigger.\n * @default undefined\n */\n readonly sideOffset = input<number | undefined>(void 0);\n /**\n * @description The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n readonly align = input<RdxPopoverAlign>(RdxPopoverAlign.Center);\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default undefined\n */\n readonly alignOffset = input<number | undefined>(void 0);\n\n /**\n * @description Whether to add some alternate positions of the content.\n * @default false\n */\n readonly alternatePositionsDisabled = input(false);\n\n /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */\n readonly onOverlayEscapeKeyDownDisabled = input(false);\n /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */\n readonly onOverlayOutsideClickDisabled = input(false);\n\n /**\n * @description Event handler called when the escape key is down.\n * It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.\n */\n readonly onOverlayEscapeKeyDown = output<KeyboardEvent>();\n /**\n * @description Event handler called when a pointer event occurs outside the bounds of the component.\n * It can be prevented by setting `onOverlayOutsideClickDisabled` input to `true`.\n */\n readonly onOverlayOutsideClick = output<MouseEvent>();\n\n /**\n * @description Event handler called after the overlay is open\n */\n readonly onOpen = output<void>();\n /**\n * @description Event handler called after the overlay is closed\n */\n readonly onClosed = output<void>();\n\n /** @ingore */\n readonly positions = computed(() => this.computePositions());\n\n constructor() {\n this.onOriginChangeEffect();\n this.onPositionChangeEffect();\n }\n\n /** @ignore */\n ngOnInit() {\n this.setScrollStrategy();\n this.setHasBackdrop();\n this.setDisableClose();\n this.onAttach();\n this.onDetach();\n this.connectKeydownEscape();\n this.connectOutsideClick();\n }\n\n /** @ignore */\n open() {\n if (this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = true;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n\n /** @ignore */\n close() {\n if (!this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = false;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n\n /** @ignore */\n positionChange() {\n return this.connectedOverlay.positionChange.asObservable();\n }\n\n /** @ignore */\n private connectKeydownEscape() {\n this.connectedOverlay.overlayKeydown\n .asObservable()\n .pipe(\n filter(\n () =>\n !this.onOverlayEscapeKeyDownDisabled() &&\n !this.popoverRoot.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.popoverRoot,\n 'cdkOverlayEscapeKeyDown'\n )\n ),\n filter((event) => event.key === 'Escape'),\n tap((event) => {\n this.onOverlayEscapeKeyDown.emit(event);\n }),\n filter(() => !this.popoverRoot.firstDefaultOpen()),\n tap(() => {\n this.popoverRoot.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private connectOutsideClick() {\n this.connectedOverlay.overlayOutsideClick\n .asObservable()\n .pipe(\n filter(\n () =>\n !this.onOverlayOutsideClickDisabled() &&\n !this.popoverRoot.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.popoverRoot,\n 'cdkOverlayOutsideClick'\n )\n ),\n /**\n * Handle the situation when an anchor is added and the anchor becomes the origin of the overlay\n * hence the trigger will be considered the outside element\n */\n filter((event) => {\n return (\n !this.popoverRoot.popoverAnchorDirective() ||\n !this.popoverRoot\n .popoverTriggerDirective()\n .elementRef.nativeElement.contains(event.target as Element)\n );\n }),\n tap((event) => {\n this.onOverlayOutsideClick.emit(event);\n }),\n filter(() => !this.popoverRoot.firstDefaultOpen()),\n tap(() => {\n this.popoverRoot.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onAttach() {\n this.connectedOverlay.attach\n .asObservable()\n .pipe(\n tap(() => {\n /**\n * `this.onOpen.emit();` is being delegated to the root directive due to the opening animation\n */\n this.popoverRoot.attachDetachEvent.set(RdxPopoverAttachDetachEvent.ATTACH);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onDetach() {\n this.connectedOverlay.detach\n .asObservable()\n .pipe(\n tap(() => {\n /**\n * `this.onClosed.emit();` is being delegated to the root directive due to the closing animation\n */\n this.popoverRoot.attachDetachEvent.set(RdxPopoverAttachDetachEvent.DETACH);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private setScrollStrategy() {\n const prevScrollStrategy = this.connectedOverlay.scrollStrategy;\n this.connectedOverlay.scrollStrategy = this.overlay.scrollStrategies.reposition();\n this.fireOverlayNgOnChanges('scrollStrategy', this.connectedOverlay.scrollStrategy, prevScrollStrategy);\n }\n\n /** @ignore */\n private setHasBackdrop() {\n const prevHasBackdrop = this.connectedOverlay.hasBackdrop;\n this.connectedOverlay.hasBackdrop = false;\n this.fireOverlayNgOnChanges('hasBackdrop', this.connectedOverlay.hasBackdrop, prevHasBackdrop);\n }\n\n /** @ignore */\n private setDisableClose() {\n const prevDisableClose = this.connectedOverlay.disableClose;\n this.connectedOverlay.disableClose = true;\n this.fireOverlayNgOnChanges('disableClose', this.connectedOverlay.disableClose, prevDisableClose);\n }\n\n /** @ignore */\n private setOrigin(origin: CdkConnectedOverlay['origin']) {\n const prevOrigin = this.connectedOverlay.origin;\n this.connectedOverlay.origin = origin;\n this.fireOverlayNgOnChanges('origin', this.connectedOverlay.origin, prevOrigin);\n }\n\n /** @ignore */\n private setPositions(positions: CdkConnectedOverlay['positions']) {\n const prevPositions = this.connectedOverlay.positions;\n this.connectedOverlay.positions = positions;\n this.fireOverlayNgOnChanges('positions', this.connectedOverlay.positions, prevPositions);\n this.connectedOverlay.overlayRef?.updatePosition();\n }\n\n /** @ignore */\n private computePositions() {\n const greatestDimensionFromTheArrow = Math.max(\n this.popoverRoot.popoverArrowDirective()?.width() ?? 0,\n this.popoverRoot.popoverArrowDirective()?.height() ?? 0\n );\n const offsets: RdxSideAndAlignOffsets = {\n sideOffset: this.sideOffset() ?? (greatestDimensionFromTheArrow || DEFAULTS.offsets.side),\n alignOffset: this.alignOffset() ?? DEFAULTS.offsets.align\n };\n const basePosition = getContentPosition({\n side: this.side(),\n align: this.align(),\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n });\n const positions = [basePosition];\n if (!this.alternatePositionsDisabled()) {\n /**\n * Alternate positions for better user experience along the X/Y axis (e.g. vertical/horizontal scrolling)\n */\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n allPossibleConnectedPositions.forEach((_, key) => {\n const sideAndAlignArray = key.split('|');\n if (\n (sideAndAlignArray[0] as RdxPopoverSide) !== this.side() ||\n (sideAndAlignArray[1] as RdxPopoverAlign) !== this.align()\n ) {\n positions.push(\n getContentPosition({\n side: sideAndAlignArray[0] as RdxPopoverSide,\n align: sideAndAlignArray[1] as RdxPopoverAlign,\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n })\n );\n }\n });\n }\n return positions;\n }\n\n private onOriginChangeEffect() {\n effect(() => {\n const origin = (this.popoverRoot.popoverAnchorDirective() ?? this.popoverRoot.popoverTriggerDirective())\n .overlayOrigin;\n untracked(() => {\n this.setOrigin(origin);\n });\n });\n }\n\n /** @ignore */\n private onPositionChangeEffect() {\n effect(() => {\n const positions = this.positions();\n this.alternatePositionsDisabled();\n untracked(() => {\n this.setPositions(positions);\n });\n });\n }\n\n /** @ignore */\n private fireOverlayNgOnChanges<K extends keyof CdkConnectedOverlay, V extends CdkConnectedOverlay[K]>(\n input: K,\n currentValue: V,\n previousValue: V,\n firstChange = false\n ) {\n this.connectedOverlay.ngOnChanges({\n [input]: new SimpleChange(previousValue, currentValue, firstChange)\n });\n }\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, inject } from '@angular/core';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverTrigger]',\n standalone: true,\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.aria-expanded]': 'popoverRoot.isOpen()',\n '[attr.aria-controls]': 'popoverRoot.popoverContentDirective().name()',\n '[attr.data-state]': 'popoverRoot.state()',\n '(click)': 'click()'\n }\n})\nexport class RdxPopoverTriggerDirective {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.popoverRoot.handleToggle();\n }\n}\n","export const RdxCdkEventServiceWindowKey = Symbol('__RdxCdkEventService__');\n","import { DOCUMENT } from '@angular/common';\nimport {\n DestroyRef,\n EnvironmentProviders,\n inject,\n Injectable,\n InjectionToken,\n isDevMode,\n makeEnvironmentProviders,\n NgZone,\n Provider,\n Renderer2,\n VERSION\n} from '@angular/core';\nimport { RdxCdkEventServiceWindowKey } from './constants';\nimport { EventType, EventTypeAsPrimitiveConfigKey, PrimitiveConfig, PrimitiveConfigs } from './types';\n\nfunction eventTypeAsPrimitiveConfigKey(eventType: EventType): EventTypeAsPrimitiveConfigKey {\n return `prevent${eventType[0].toUpperCase()}${eventType.slice(1)}` as EventTypeAsPrimitiveConfigKey;\n}\n\n@Injectable()\nclass RdxCdkEventService {\n document = inject(DOCUMENT);\n destroyRef = inject(DestroyRef);\n ngZone = inject(NgZone);\n renderer2 = inject(Renderer2);\n\n primitiveConfigs?: PrimitiveConfigs;\n\n onDestroyCallbacks: Set<() => void> = new Set([deleteRdxCdkEventServiceWindowKey]);\n\n #clickDomRootEventCallbacks: Set<(event: MouseEvent) => void> = new Set();\n\n constructor() {\n this.#listenToClickDomRootEvent();\n this.#registerOnDestroyCallbacks();\n }\n\n registerPrimitive<T extends object>(primitiveInstance: T) {\n if (!this.primitiveConfigs) {\n this.primitiveConfigs = new Map();\n }\n if (!this.primitiveConfigs.has(primitiveInstance)) {\n this.primitiveConfigs.set(primitiveInstance, {});\n }\n }\n\n deregisterPrimitive<T extends object>(primitiveInstance: T) {\n if (this.primitiveConfigs?.has(primitiveInstance)) {\n this.primitiveConfigs.delete(primitiveInstance);\n }\n }\n\n preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n }\n\n allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n }\n\n preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n });\n }\n\n allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n });\n }\n\n setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: PrimitiveConfig) {\n Object.keys(eventTypes).forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(\n primitiveInstance,\n eventType as EventType,\n eventTypes[eventTypeAsPrimitiveConfigKey(eventType as EventType)]\n );\n });\n }\n\n primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n return this.primitiveConfigs?.get(primitiveInstance)?.[eventTypeAsPrimitiveConfigKey(eventType)];\n }\n\n addClickDomRootEventCallback(callback: (event: MouseEvent) => void) {\n this.#clickDomRootEventCallbacks.add(callback);\n }\n\n removeClickDomRootEventCallback(callback: (event: MouseEvent) => void) {\n return this.#clickDomRootEventCallbacks.delete(callback);\n }\n\n #setPreventPrimitiveFromCdkEvent<\n T extends object,\n R extends EventType,\n K extends PrimitiveConfig[EventTypeAsPrimitiveConfigKey<R>]\n >(primitiveInstance: T, eventType: R, value: K) {\n if (!this.primitiveConfigs?.has(primitiveInstance)) {\n isDevMode() &&\n console.error(\n '[RdxCdkEventService.preventPrimitiveFromCdkEvent] RDX Primitive instance has not been registered!',\n primitiveInstance\n );\n return;\n }\n switch (eventType) {\n case 'cdkOverlayOutsideClick':\n this.primitiveConfigs.get(primitiveInstance)!.preventCdkOverlayOutsideClick = value;\n break;\n case 'cdkOverlayEscapeKeyDown':\n this.primitiveConfigs.get(primitiveInstance)!.preventCdkOverlayEscapeKeyDown = value;\n break;\n }\n }\n\n #registerOnDestroyCallbacks() {\n this.destroyRef.onDestroy(() => {\n this.onDestroyCallbacks.forEach((onDestroyCallback) => onDestroyCallback());\n this.onDestroyCallbacks.clear();\n });\n }\n\n #listenToClickDomRootEvent() {\n const target = this.document;\n const eventName = 'click';\n const options: boolean | AddEventListenerOptions | undefined = { capture: true };\n const callback = (event: MouseEvent) => {\n this.#clickDomRootEventCallbacks.forEach((clickDomRootEventCallback) => clickDomRootEventCallback(event));\n };\n\n const major = parseInt(VERSION.major);\n const minor = parseInt(VERSION.minor);\n\n let destroyClickDomRootEventListener!: () => void;\n /**\n * @see src/cdk/platform/features/backwards-compatibility.ts in @angular/cdk\n */\n if (major > 19 || (major === 19 && minor > 0) || (major === 0 && minor === 0)) {\n destroyClickDomRootEventListener = this.ngZone.runOutsideAngular(() => {\n const destroyClickDomRootEventListenerInternal = this.renderer2.listen(\n target,\n eventName,\n callback,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n options\n );\n return () => {\n destroyClickDomRootEventListenerInternal();\n this.#clickDomRootEventCallbacks.clear();\n };\n });\n } else {\n /**\n * This part can get removed when v19.1 or higher is on the board\n */\n destroyClickDomRootEventListener = this.ngZone.runOutsideAngular(() => {\n target.addEventListener(eventName, callback, options);\n return () => {\n this.ngZone.runOutsideAngular(() => target.removeEventListener(eventName, callback, options));\n this.#clickDomRootEventCallbacks.clear();\n };\n });\n }\n this.onDestroyCallbacks.add(destroyClickDomRootEventListener);\n }\n}\n\nconst RdxCdkEventServiceToken = new InjectionToken<RdxCdkEventService>('RdxCdkEventServiceToken');\n\nconst existsErrorMessage = 'RdxCdkEventService should be provided only once!';\n\nconst deleteRdxCdkEventServiceWindowKey = () => {\n delete (window as any)[RdxCdkEventServiceWindowKey];\n};\n\nconst getProvider: (throwWhenExists?: boolean) => Provider = (throwWhenExists = true) => ({\n provide: RdxCdkEventServiceToken,\n useFactory: () => {\n isDevMode() && console.log('providing RdxCdkEventService...');\n if ((window as any)[RdxCdkEventServiceWindowKey]) {\n if (throwWhenExists) {\n throw Error(existsErrorMessage);\n } else {\n isDevMode() && console.warn(existsErrorMessage);\n }\n }\n (window as any)[RdxCdkEventServiceWindowKey] ??= new RdxCdkEventService();\n return (window as any)[RdxCdkEventServiceWindowKey];\n }\n});\n\nexport const provideRdxCdkEventServiceInRoot: () => EnvironmentProviders = () =>\n makeEnvironmentProviders([getProvider()]);\nexport const provideRdxCdkEventService: () => Provider = () => getProvider(false);\n\nexport const injectRdxCdkEventService = () => inject(RdxCdkEventServiceToken, { optional: true });\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n signal,\n untracked,\n ViewContainerRef\n} from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './popover-anchor.directive';\nimport { RdxPopoverAnchorToken } from './popover-anchor.token';\nimport { RdxPopoverArrowToken } from './popover-arrow.token';\nimport { RdxPopoverCloseToken } from './popover-close.token';\nimport { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';\nimport { RdxPopoverContentDirective } from './popover-content.directive';\nimport { RdxPopoverTriggerDirective } from './popover-trigger.directive';\nimport { RdxPopoverAnimationStatus, RdxPopoverAttachDetachEvent, RdxPopoverState } from './popover.types';\nimport { injectRdxCdkEventService } from './utils/cdk-event.service';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxPopoverRoot]',\n standalone: true,\n exportAs: 'rdxPopoverRoot'\n})\nexport class RdxPopoverRootDirective {\n /** @ignore */\n readonly uniqueId = signal(++nextId);\n /** @ignore */\n readonly name = computed(() => `rdx-popover-root-${this.uniqueId()}`);\n\n /**\n * @description The anchor directive that comes form outside the popover root\n * @default undefined\n */\n readonly anchor = input<RdxPopoverAnchorDirective | undefined>(void 0);\n /**\n * @description The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n * @default false\n */\n readonly defaultOpen = input<boolean>(false);\n /**\n * @description The controlled state of the popover. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n readonly open = input<boolean | undefined>(void 0);\n /**\n * @description Whether to control the state of the popover from external. Use in conjunction with `open` input.\n * @default undefined\n */\n readonly externalControl = input<boolean | undefined>(void 0);\n /**\n * @description Whether to take into account CSS opening/closing animations.\n * @default false\n */\n readonly cssAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n readonly cssOpeningAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n readonly cssClosingAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly cssAnimationStatus = signal<RdxPopoverAnimationStatus | null>(null);\n\n /** @ignore */\n readonly popoverContentDirective = contentChild.required(RdxPopoverContentDirective);\n /** @ignore */\n readonly popoverTriggerDirective = contentChild.required(RdxPopoverTriggerDirective);\n /** @ignore */\n readonly popoverArrowDirective = contentChild(RdxPopoverArrowToken);\n /** @ignore */\n readonly popoverCloseDirective = contentChild(RdxPopoverCloseToken);\n /** @ignore */\n readonly popoverContentAttributesComponent = contentChild(RdxPopoverContentAttributesToken);\n /** @ignore */\n private readonly internalPopoverAnchorDirective = contentChild(RdxPopoverAnchorToken);\n\n /** @ignore */\n readonly viewContainerRef = inject(ViewContainerRef);\n /** @ignore */\n readonly rdxCdkEventService = injectRdxCdkEventService();\n /** @ignore */\n readonly destroyRef = inject(DestroyRef);\n\n /** @ignore */\n readonly state = signal(RdxPopoverState.CLOSED);\n\n /** @ignore */\n readonly attachDetachEvent = signal(RdxPopoverAttachDetachEvent.DETACH);\n\n /** @ignore */\n private readonly isFirstDefaultOpen = signal(false);\n\n /** @ignore */\n readonly popoverAnchorDirective = computed(() => this.internalPopoverAnchorDirective() ?? this.anchor());\n\n constructor() {\n this.rdxCdkEventService?.registerPrimitive(this);\n this.destroyRef.onDestroy(() => this.rdxCdkEventService?.deregisterPrimitive(this));\n this.onStateChangeEffect();\n this.onCssAnimationStatusChangeChangeEffect();\n this.onOpenChangeEffect();\n this.onIsFirstDefaultOpenChangeEffect();\n this.onAnchorChangeEffect();\n this.emitOpenOrClosedEventEffect();\n afterNextRender({\n write: () => {\n if (this.defaultOpen() && !this.open()) {\n this.isFirstDefaultOpen.set(true);\n }\n }\n });\n }\n\n /** @ignore */\n getAnimationParamsSnapshot() {\n return {\n cssAnimation: this.cssAnimation(),\n cssOpeningAnimation: this.cssOpeningAnimation(),\n cssClosingAnimation: this.cssClosingAnimation(),\n cssAnimationStatus: this.cssAnimationStatus(),\n attachDetachEvent: this.attachDetachEvent(),\n state: this.state(),\n canEmitOnOpenOrOnClosed: this.canEmitOnOpenOrOnClosed()\n };\n }\n\n /** @ignore */\n controlledExternally() {\n return this.externalControl;\n }\n\n /** @ignore */\n firstDefaultOpen() {\n return this.isFirstDefaultOpen();\n }\n\n /** @ignore */\n handleOpen(): void {\n if (this.externalControl()) {\n return;\n }\n this.setState(RdxPopoverState.OPEN);\n }\n\n /** @ignore */\n handleClose(): void {\n if (this.isFirstDefaultOpen()) {\n this.isFirstDefaultOpen.set(false);\n }\n if (this.externalControl()) {\n return;\n }\n this.setState(RdxPopoverState.CLOSED);\n }\n\n /** @ignore */\n handleToggle(): void {\n if (this.externalControl()) {\n return;\n }\n this.isOpen() ? this.handleClose() : this.handleOpen();\n }\n\n /** @ignore */\n isOpen(state?: RdxPopoverState) {\n return (state ?? this.state()) === RdxPopoverState.OPEN;\n }\n\n /** @ignore */\n private setState(state = RdxPopoverState.CLOSED): void {\n if (state === this.state()) {\n return;\n }\n this.state.set(state);\n }\n\n /** @ignore */\n private openContent(): void {\n this.popoverContentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private closeContent(): void {\n this.popoverContentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private emitOnOpen(): void {\n this.popoverContentDirective().onOpen.emit();\n }\n\n /** @ignore */\n private emitOnClosed(): void {\n this.popoverContentDirective().onClosed.emit();\n }\n\n /** @ignore */\n private ifOpenOrCloseWithoutAnimations(state: RdxPopoverState) {\n return (\n !this.popoverContentAttributesComponent() ||\n !this.cssAnimation() ||\n (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxPopoverState.CLOSED) ||\n (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxPopoverState.OPEN) ||\n // !this.cssAnimationStatus() ||\n (this.cssOpeningAnimation() &&\n state === RdxPopoverState.OPEN &&\n [RdxPopoverAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus()!)) ||\n (this.cssClosingAnimation() &&\n state === RdxPopoverState.CLOSED &&\n [RdxPopoverAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus()!))\n );\n }\n\n /** @ignore */\n private ifOpenOrCloseWithAnimations(cssAnimationStatus: RdxPopoverAnimationStatus | null) {\n return (\n this.popoverContentAttributesComponent() &&\n this.cssAnimation() &&\n cssAnimationStatus &&\n ((this.cssOpeningAnimation() &&\n this.state() === RdxPopoverState.OPEN &&\n [RdxPopoverAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxPopoverState.CLOSED &&\n [RdxPopoverAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus)))\n );\n }\n\n /** @ignore */\n private openOrClose(state: RdxPopoverState) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n\n /** @ignore */\n private emitOnOpenOrOnClosed(state: RdxPopoverState) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxPopoverAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxPopoverAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n\n /** @ignore */\n private canEmitOnOpenOrOnClosed() {\n return (\n !this.cssAnimation() ||\n (!this.cssOpeningAnimation() && this.state() === RdxPopoverState.OPEN) ||\n (this.cssOpeningAnimation() &&\n this.state() === RdxPopoverState.OPEN &&\n this.cssAnimationStatus() === RdxPopoverAnimationStatus.OPEN_ENDED) ||\n (!this.cssClosingAnimation() && this.state() === RdxPopoverState.CLOSED) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxPopoverState.CLOSED &&\n this.cssAnimationStatus() === RdxPopoverAnimationStatus.CLOSED_ENDED)\n );\n }\n\n /** @ignore */\n private onStateChangeEffect() {\n let isFirst = true;\n effect(() => {\n const state = this.state();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithoutAnimations(state)) {\n return;\n }\n this.openOrClose(state);\n });\n }, {});\n }\n\n /** @ignore */\n private onCssAnimationStatusChangeChangeEffect() {\n let isFirst = true;\n effect(() => {\n const cssAnimationStatus = this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithAnimations(cssAnimationStatus)) {\n return;\n }\n this.openOrClose(this.state());\n });\n });\n }\n\n /** @ignore */\n private emitOpenOrClosedEventEffect() {\n let isFirst = true;\n effect(() => {\n this.attachDetachEvent();\n this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n const canEmitOpenClose = untracked(() => this.canEmitOnOpenOrOnClosed());\n if (!canEmitOpenClose) {\n return;\n }\n this.emitOnOpenOrOnClosed(this.state());\n });\n });\n }\n\n /** @ignore */\n private onOpenChangeEffect() {\n effect(() => {\n const open = this.open();\n untracked(() => {\n this.setState(open ? RdxPopoverState.OPEN : RdxPopoverState.CLOSED);\n });\n });\n }\n\n /** @ignore */\n private onIsFirstDefaultOpenChangeEffect() {\n const effectRef = effect(() => {\n const defaultOpen = this.defaultOpen();\n untracked(() => {\n if (!defaultOpen || this.open()) {\n effectRef.destroy();\n return;\n }\n this.handleOpen();\n });\n });\n }\n\n /** @ignore */\n private onAnchorChangeEffect = () => {\n effect(() => {\n const anchor = this.anchor();\n untracked(() => {\n if (anchor) {\n anchor.setPopoverRoot(this);\n }\n });\n });\n };\n}\n","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxPopoverRootDirective } from './popover-root.directive';\n\nexport function injectPopoverRoot(optional?: false): RdxPopoverRootDirective;\nexport function injectPopoverRoot(optional: true): RdxPopoverRootDirective | null;\nexport function injectPopoverRoot(optional = false): RdxPopoverRootDirective | null {\n isDevMode() && assertInInjectionContext(injectPopoverRoot);\n return inject(RdxPopoverRootDirective, { optional });\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { computed, Directive, ElementRef, forwardRef, inject } from '@angular/core';\nimport { RdxPopoverAnchorToken } from './popover-anchor.token';\nimport { RdxPopoverRootDirective } from './popover-root.directive';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverAnchor]',\n standalone: true,\n exportAs: 'rdxPopoverAnchor',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '(click)': 'click()'\n },\n providers: [\n {\n provide: RdxPopoverAnchorToken,\n useExisting: forwardRef(() => RdxPopoverAnchorDirective)\n }\n ]\n})\nexport class RdxPopoverAnchorDirective {\n /**\n * @ignore\n * If outside the root then null, otherwise the root directive - with optional `true` passed in as the first param.\n * If outside the root and non-null value that means the html structure is wrong - popover inside popover.\n * */\n protected popoverRoot = injectPopoverRoot(true);\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n readonly document = inject(DOCUMENT);\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-external-anchor-${this.popoverRoot?.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.emitOutsideClick();\n }\n\n /** @ignore */\n setPopoverRoot(popoverRoot: RdxPopoverRootDirective) {\n this.popoverRoot = popoverRoot;\n }\n\n private emitOutsideClick() {\n if (\n !this.popoverRoot?.isOpen() ||\n this.popoverRoot?.popoverContentDirective().onOverlayOutsideClickDisabled()\n ) {\n return;\n }\n const clickEvent = new MouseEvent('click', {\n view: this.document.defaultView,\n bubbles: true,\n cancelable: true,\n relatedTarget: this.elementRef.nativeElement\n });\n this.popoverRoot?.popoverTriggerDirective().elementRef.nativeElement.dispatchEvent(clickEvent);\n }\n}\n","import { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n Renderer2,\n signal,\n untracked\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { RdxPopoverArrowToken } from './popover-arrow.token';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions } from './popover.utils';\n\n@Directive({\n selector: '[rdxPopoverArrow]',\n standalone: true,\n providers: [\n {\n provide: RdxPopoverArrowToken,\n useExisting: forwardRef(() => RdxPopoverArrowDirective)\n }\n ]\n})\nexport class RdxPopoverArrowDirective implements AfterViewInit {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n\n /**\n * @description The width of the arrow in pixels.\n * @default 10\n */\n readonly width = input<number>(10);\n\n /**\n * @description The height of the arrow in pixels.\n * @default 5\n */\n readonly height = input<number>(5);\n\n /** @ignore */\n readonly arrowSvgElement = computed<HTMLElement>(() => {\n const width = this.width();\n const height = this.height();\n\n const svgElement = this.renderer.createElement('svg', 'svg');\n this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');\n this.renderer.setAttribute(svgElement, 'width', String(width));\n this.renderer.setAttribute(svgElement, 'height', String(height));\n const polygonElement = this.renderer.createElement('polygon', 'svg');\n this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');\n this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');\n this.renderer.appendChild(svgElement, polygonElement);\n\n return svgElement;\n });\n\n /** @ignore */\n private readonly currentArrowSvgElement = signal<HTMLOrSVGElement | undefined>(void 0);\n /** @ignore */\n private readonly position = toSignal(this.popoverRoot.popoverContentDirective().positionChange());\n\n /** @ignore */\n private anchorOrTriggerRect: DOMRect;\n\n constructor() {\n this.onArrowSvgElementChangeEffect();\n this.onContentPositionChangeEffect();\n }\n\n /** @ignore */\n ngAfterViewInit() {\n if (this.elementRef.nativeElement.parentElement) {\n this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');\n }\n this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'absolute');\n this.renderer.setStyle(this.elementRef.nativeElement, 'boxSizing', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'fontSize', '0px');\n }\n\n private setAnchorOrTriggerRect() {\n this.anchorOrTriggerRect = (\n this.popoverRoot.popoverAnchorDirective() ?? this.popoverRoot.popoverTriggerDirective()\n ).elementRef.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n private setPosition(position: ConnectedOverlayPositionChange) {\n this.setAnchorOrTriggerRect();\n const posParams = getArrowPositionParams(\n getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair),\n { width: this.width(), height: this.height() },\n { width: this.anchorOrTriggerRect.width, height: this.anchorOrTriggerRect.height }\n );\n\n this.renderer.setStyle(this.elementRef.nativeElement, 'top', posParams.top);\n this.renderer.setStyle(this.elementRef.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);\n this.renderer.setStyle(this.elementRef.nativeElement, 'right', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);\n }\n\n /** @ignore */\n private onArrowSvgElementChangeEffect() {\n effect(() => {\n const arrowElement = this.arrowSvgElement();\n untracked(() => {\n const currentArrowSvgElement = this.currentArrowSvgElement();\n if (currentArrowSvgElement) {\n this.renderer.removeChild(this.elementRef.nativeElement, currentArrowSvgElement);\n }\n this.currentArrowSvgElement.set(arrowElement);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.width()}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${this.height()}px`);\n this.renderer.appendChild(this.elementRef.nativeElement, this.currentArrowSvgElement());\n });\n });\n }\n\n /** @ignore */\n private onContentPositionChangeEffect() {\n effect(() => {\n const position = this.position();\n untracked(() => {\n if (!position) {\n return;\n }\n this.setPosition(position);\n });\n });\n }\n}\n","import { Directive, effect, ElementRef, forwardRef, inject, Renderer2, untracked } from '@angular/core';\nimport { RdxPopoverCloseToken } from './popover-close.token';\nimport { injectPopoverRoot } from './popover-root.inject';\n\n@Directive({\n selector: '[rdxPopoverClose]',\n standalone: true,\n host: {\n type: 'button',\n '(click)': 'popoverRoot.handleClose()'\n },\n providers: [\n {\n provide: RdxPopoverCloseToken,\n useExisting: forwardRef(() => RdxPopoverCloseDirective)\n }\n ]\n})\nexport class RdxPopoverCloseDirective {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n this.onIsControlledExternallyEffect();\n }\n\n /** @ignore */\n private onIsControlledExternallyEffect() {\n effect(() => {\n const isControlledExternally = this.popoverRoot.controlledExternally()();\n\n untracked(() => {\n this.renderer.setStyle(\n this.elementRef.nativeElement,\n 'display',\n isControlledExternally ? 'none' : null\n );\n });\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef } from '@angular/core';\nimport { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';\nimport { injectPopoverRoot } from './popover-root.inject';\nimport { RdxPopoverAnimationStatus, RdxPopoverState } from './popover.types';\n\n@Component({\n selector: '[rdxPopoverContentAttributes]',\n standalone: true,\n template: `\n <ng-content />\n `,\n host: {\n '[attr.role]': '\"dialog\"',\n '[attr.id]': 'name()',\n '[attr.data-state]': 'popoverRoot.state()',\n '[attr.data-side]': 'popoverRoot.popoverContentDirective().side()',\n '[attr.data-align]': 'popoverRoot.popoverContentDirective().align()',\n '[style]': 'disableAnimation() ? {animation: \"none !important\"} : null',\n '(animationstart)': 'onAnimationStart($event)',\n '(animationend)': 'onAnimationEnd($event)'\n },\n providers: [\n {\n provide: RdxPopoverContentAttributesToken,\n useExisting: forwardRef(() => RdxPopoverContentAttributesComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RdxPopoverContentAttributesComponent {\n /** @ignore */\n protected readonly popoverRoot = injectPopoverRoot();\n\n /** @ignore */\n readonly name = computed(() => `rdx-popover-content-attributes-${this.popoverRoot.uniqueId()}`);\n\n /** @ignore */\n readonly disableAnimation = computed(() => !this.canAnimate());\n\n /** @ignore */\n protected onAnimationStart(_: AnimationEvent) {\n this.popoverRoot.cssAnimationStatus.set(\n this.popoverRoot.state() === RdxPopoverState.OPEN\n ? RdxPopoverAnimationStatus.OPEN_STARTED\n : RdxPopoverAnimationStatus.CLOSED_STARTED\n );\n }\n\n /** @ignore */\n protected onAnimationEnd(_: AnimationEvent) {\n this.popoverRoot.cssAnimationStatus.set(\n this.popoverRoot.state() === RdxPopoverState.OPEN\n ? RdxPopoverAnimationStatus.OPEN_ENDED\n : RdxPopoverAnimationStatus.CLOSED_ENDED\n );\n }\n\n /** @ignore */\n private canAnimate() {\n return (\n this.popoverRoot.cssAnimation() &&\n ((this.popoverRoot.cssOpeningAnimation() && this.popoverRoot.state() === RdxPopoverState.OPEN) ||\n (this.popoverRoot.cssClosingAnimation() && this.popoverRoot.state() === RdxPopoverState.CLOSED))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxPopoverAnchorDirective } from './src/popover-anchor.directive';\nimport { RdxPopoverArrowDirective } from './src/popover-arrow.directive';\nimport { RdxPopoverCloseDirective } from './src/popover-close.directive';\nimport { RdxPopoverContentAttributesComponent } from './src/popover-content-attributes.component';\nimport { RdxPopoverContentDirective } from './src/popover-content.directive';\nimport { RdxPopoverRootDirective } from './src/popover-root.directive';\nimport { RdxPopoverTriggerDirective } from './src/popover-trigger.directive';\n\nexport * from './src/popover-anchor.directive';\nexport * from './src/popover-arrow.directive';\nexport * from './src/popover-close.directive';\nexport * from './src/popover-content-attributes.component';\nexport * from './src/popover-content.directive';\nexport * from './src/popover-root.directive';\nexport * from './src/popover-trigger.directive';\nexport * from './src/popover.types';\n\nconst _imports = [\n RdxPopoverArrowDirective,\n RdxPopoverCloseDirective,\n RdxPopoverContentDirective,\n RdxPopoverTriggerDirective,\n RdxPopoverRootDirective,\n RdxPopoverAnchorDirective,\n RdxPopoverContentAttributesComponent\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxPopoverModule {}\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,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ng/primitives",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -39,15 +39,21 @@ export declare class RdxPopoverContentDirective implements OnInit {
39
39
  * @description Whether to add some alternate positions of the content.
40
40
  * @default false
41
41
  */
42
- readonly disableAlternatePositions: import("@angular/core").InputSignal<boolean>;
42
+ readonly alternatePositionsDisabled: import("@angular/core").InputSignal<boolean>;
43
+ /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */
44
+ readonly onOverlayEscapeKeyDownDisabled: import("@angular/core").InputSignal<boolean>;
45
+ /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */
46
+ readonly onOverlayOutsideClickDisabled: import("@angular/core").InputSignal<boolean>;
43
47
  /**
44
- * @description Event handler called when the escape key is down. It can be prevented by calling event.preventDefault.
48
+ * @description Event handler called when the escape key is down.
49
+ * It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.
45
50
  */
46
- readonly onEscapeKeyDown: import("@angular/core").OutputEmitterRef<KeyboardEvent>;
51
+ readonly onOverlayEscapeKeyDown: import("@angular/core").OutputEmitterRef<KeyboardEvent>;
47
52
  /**
48
- * @description Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling event.preventDefault.
53
+ * @description Event handler called when a pointer event occurs outside the bounds of the component.
54
+ * It can be prevented by setting `onOverlayOutsideClickDisabled` input to `true`.
49
55
  */
50
- readonly onOutsideClick: import("@angular/core").OutputEmitterRef<MouseEvent>;
56
+ readonly onOverlayOutsideClick: import("@angular/core").OutputEmitterRef<MouseEvent>;
51
57
  /**
52
58
  * @description Event handler called after the overlay is open
53
59
  */
@@ -78,6 +84,8 @@ export declare class RdxPopoverContentDirective implements OnInit {
78
84
  /** @ignore */
79
85
  private setScrollStrategy;
80
86
  /** @ignore */
87
+ private setHasBackdrop;
88
+ /** @ignore */
81
89
  private setDisableClose;
82
90
  /** @ignore */
83
91
  private setOrigin;
@@ -91,5 +99,5 @@ export declare class RdxPopoverContentDirective implements OnInit {
91
99
  /** @ignore */
92
100
  private fireOverlayNgOnChanges;
93
101
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxPopoverContentDirective, never>;
94
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxPopoverContentDirective, "[rdxPopoverContent]", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "disableAlternatePositions": { "alias": "disableAlternatePositions"; "required": false; "isSignal": true; }; }, { "onEscapeKeyDown": "onEscapeKeyDown"; "onOutsideClick": "onOutsideClick"; "onOpen": "onOpen"; "onClosed": "onClosed"; }, never, never, true, [{ directive: typeof i1.CdkConnectedOverlay; inputs: {}; outputs: {}; }]>;
102
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxPopoverContentDirective, "[rdxPopoverContent]", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "alternatePositionsDisabled": { "alias": "alternatePositionsDisabled"; "required": false; "isSignal": true; }; "onOverlayEscapeKeyDownDisabled": { "alias": "onOverlayEscapeKeyDownDisabled"; "required": false; "isSignal": true; }; "onOverlayOutsideClickDisabled": { "alias": "onOverlayOutsideClickDisabled"; "required": false; "isSignal": true; }; }, { "onOverlayEscapeKeyDown": "onOverlayEscapeKeyDown"; "onOverlayOutsideClick": "onOverlayOutsideClick"; "onOpen": "onOpen"; "onClosed": "onClosed"; }, never, never, true, [{ directive: typeof i1.CdkConnectedOverlay; inputs: {}; outputs: {}; }]>;
95
103
  }
@@ -62,13 +62,36 @@ export declare class RdxPopoverRootDirective {
62
62
  /** @ignore */
63
63
  readonly viewContainerRef: ViewContainerRef;
64
64
  /** @ignore */
65
+ readonly rdxCdkEventService: {
66
+ document: Document;
67
+ destroyRef: DestroyRef;
68
+ ngZone: import("@angular/core").NgZone;
69
+ renderer2: import("@angular/core").Renderer2;
70
+ primitiveConfigs?: import("./utils/types").PrimitiveConfigs;
71
+ onDestroyCallbacks: Set<() => void>;
72
+ "__#6336@#clickDomRootEventCallbacks": Set<(event: MouseEvent) => void>;
73
+ registerPrimitive<T extends object>(primitiveInstance: T): void;
74
+ deregisterPrimitive<T extends object>(primitiveInstance: T): void;
75
+ preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): void;
76
+ allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): void;
77
+ preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: import("./utils/types").EventType[]): void;
78
+ allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: import("./utils/types").EventType[]): void;
79
+ setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: import("./utils/types").PrimitiveConfig): void;
80
+ primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): boolean | undefined;
81
+ addClickDomRootEventCallback(callback: (event: MouseEvent) => void): void;
82
+ removeClickDomRootEventCallback(callback: (event: MouseEvent) => void): boolean;
83
+ "__#6336@#setPreventPrimitiveFromCdkEvent"<T extends object, R extends import("./utils/types").EventType, K extends import("./utils/types").PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
84
+ "__#6336@#registerOnDestroyCallbacks"(): void;
85
+ "__#6336@#listenToClickDomRootEvent"(): void;
86
+ } | null;
87
+ /** @ignore */
65
88
  readonly destroyRef: DestroyRef;
66
89
  /** @ignore */
67
90
  readonly state: import("@angular/core").WritableSignal<RdxPopoverState>;
68
91
  /** @ignore */
69
92
  readonly attachDetachEvent: import("@angular/core").WritableSignal<RdxPopoverAttachDetachEvent>;
70
93
  /** @ignore */
71
- private isFirstDefaultOpen;
94
+ private readonly isFirstDefaultOpen;
72
95
  /** @ignore */
73
96
  readonly popoverAnchorDirective: import("@angular/core").Signal<RdxPopoverAnchorDirective | undefined>;
74
97
  constructor();
@@ -0,0 +1,29 @@
1
+ import { DestroyRef, EnvironmentProviders, NgZone, Provider, Renderer2 } from '@angular/core';
2
+ import { EventType, PrimitiveConfig, PrimitiveConfigs } from './types';
3
+ import * as i0 from "@angular/core";
4
+ declare class RdxCdkEventService {
5
+ #private;
6
+ document: Document;
7
+ destroyRef: DestroyRef;
8
+ ngZone: NgZone;
9
+ renderer2: Renderer2;
10
+ primitiveConfigs?: PrimitiveConfigs;
11
+ onDestroyCallbacks: Set<() => void>;
12
+ constructor();
13
+ registerPrimitive<T extends object>(primitiveInstance: T): void;
14
+ deregisterPrimitive<T extends object>(primitiveInstance: T): void;
15
+ preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): void;
16
+ allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): void;
17
+ preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]): void;
18
+ allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]): void;
19
+ setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: PrimitiveConfig): void;
20
+ primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType): boolean | undefined;
21
+ addClickDomRootEventCallback(callback: (event: MouseEvent) => void): void;
22
+ removeClickDomRootEventCallback(callback: (event: MouseEvent) => void): boolean;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxCdkEventService, never>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<RdxCdkEventService>;
25
+ }
26
+ export declare const provideRdxCdkEventServiceInRoot: () => EnvironmentProviders;
27
+ export declare const provideRdxCdkEventService: () => Provider;
28
+ export declare const injectRdxCdkEventService: () => RdxCdkEventService | null;
29
+ export {};
@@ -0,0 +1 @@
1
+ export declare const RdxCdkEventServiceWindowKey: unique symbol;
@@ -0,0 +1,7 @@
1
+ export type EventType = 'cdkOverlayOutsideClick' | 'cdkOverlayEscapeKeyDown';
2
+ export type EventTypeCapitalized<R extends EventType = EventType> = Capitalize<R>;
3
+ export type EventTypeAsPrimitiveConfigKey<R extends EventType = EventType> = `prevent${EventTypeCapitalized<R>}`;
4
+ export type PrimitiveConfig = {
5
+ [value in EventTypeAsPrimitiveConfigKey]?: boolean;
6
+ };
7
+ export type PrimitiveConfigs = Map<object, PrimitiveConfig>;