@radix-ng/primitives 0.25.0 → 0.27.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.
- package/compodoc/documentation.json +25078 -12716
- package/core/src/positioning/constants.d.ts +2 -1
- package/core/src/positioning/types.d.ts +16 -5
- package/fesm2022/radix-ng-primitives-core.mjs +22 -9
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-hover-card.mjs +1213 -0
- package/fesm2022/radix-ng-primitives-hover-card.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-popover.mjs +20 -29
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +984 -355
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/hover-card/README.md +3 -0
- package/hover-card/index.d.ts +20 -0
- package/hover-card/src/hover-card-anchor.directive.d.ts +28 -0
- package/hover-card/src/hover-card-anchor.token.d.ts +3 -0
- package/hover-card/src/hover-card-arrow.directive.d.ts +40 -0
- package/hover-card/src/hover-card-arrow.token.d.ts +3 -0
- package/hover-card/src/hover-card-close.directive.d.ts +18 -0
- package/hover-card/src/hover-card-close.token.d.ts +3 -0
- package/hover-card/src/hover-card-content-attributes.component.d.ts +25 -0
- package/hover-card/src/hover-card-content-attributes.token.d.ts +3 -0
- package/hover-card/src/hover-card-content.directive.d.ts +104 -0
- package/hover-card/src/hover-card-root.directive.d.ts +168 -0
- package/hover-card/src/hover-card-root.inject.d.ts +3 -0
- package/hover-card/src/hover-card-trigger.directive.d.ts +26 -0
- package/hover-card/src/hover-card.types.d.ts +18 -0
- package/hover-card/src/utils/cdk-event.service.d.ts +30 -0
- package/hover-card/src/utils/constants.d.ts +1 -0
- package/hover-card/src/utils/types.d.ts +7 -0
- package/package.json +5 -1
- package/popover/src/popover-arrow.directive.d.ts +3 -2
- package/popover/src/popover-content.directive.d.ts +6 -5
- package/popover/src/popover-root.directive.d.ts +8 -8
- package/popover/src/popover-trigger.directive.d.ts +1 -1
- package/tooltip/README.md +2 -0
- package/tooltip/index.d.ts +9 -6
- package/tooltip/src/tooltip-anchor.directive.d.ts +28 -0
- package/tooltip/src/tooltip-anchor.token.d.ts +3 -0
- package/tooltip/src/tooltip-arrow.directive.d.ts +18 -16
- package/tooltip/src/tooltip-close.directive.d.ts +18 -0
- package/tooltip/src/tooltip-close.token.d.ts +3 -0
- package/tooltip/src/tooltip-content-attributes.component.d.ts +25 -0
- package/tooltip/src/tooltip-content-attributes.token.d.ts +3 -0
- package/tooltip/src/tooltip-content.directive.d.ts +85 -16
- package/tooltip/src/tooltip-root.directive.d.ts +121 -59
- package/tooltip/src/tooltip-root.inject.d.ts +3 -0
- package/tooltip/src/tooltip-trigger.directive.d.ts +11 -11
- package/tooltip/src/tooltip.types.d.ts +18 -7
- package/tooltip/src/utils/cdk-event.service.d.ts +30 -0
- package/tooltip/src/utils/constants.d.ts +1 -0
- package/tooltip/src/utils/types.d.ts +7 -0
- package/popover/src/popover.constants.d.ts +0 -6
- package/tooltip/src/tooltip-content-attributes.directive.d.ts +0 -8
- package/tooltip/src/tooltip-content.token.d.ts +0 -3
- package/tooltip/src/tooltip.config.d.ts +0 -6
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-hover-card.mjs","sources":["../../../packages/primitives/hover-card/src/hover-card-anchor.token.ts","../../../packages/primitives/hover-card/src/hover-card-arrow.token.ts","../../../packages/primitives/hover-card/src/hover-card-close.token.ts","../../../packages/primitives/hover-card/src/hover-card-content-attributes.token.ts","../../../packages/primitives/hover-card/src/hover-card.types.ts","../../../packages/primitives/hover-card/src/hover-card-content.directive.ts","../../../packages/primitives/hover-card/src/hover-card-trigger.directive.ts","../../../packages/primitives/hover-card/src/utils/constants.ts","../../../packages/primitives/hover-card/src/utils/cdk-event.service.ts","../../../packages/primitives/hover-card/src/hover-card-root.directive.ts","../../../packages/primitives/hover-card/src/hover-card-root.inject.ts","../../../packages/primitives/hover-card/src/hover-card-anchor.directive.ts","../../../packages/primitives/hover-card/src/hover-card-arrow.directive.ts","../../../packages/primitives/hover-card/src/hover-card-close.directive.ts","../../../packages/primitives/hover-card/src/hover-card-content-attributes.component.ts","../../../packages/primitives/hover-card/index.ts","../../../packages/primitives/hover-card/radix-ng-primitives-hover-card.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxHoverCardAnchorDirective } from './hover-card-anchor.directive';\n\nexport const RdxHoverCardAnchorToken = new InjectionToken<RdxHoverCardAnchorDirective>('RdxHoverCardAnchorToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxHoverCardArrowDirective } from './hover-card-arrow.directive';\n\nexport const RdxHoverCardArrowToken = new InjectionToken<RdxHoverCardArrowDirective>('RdxHoverCardArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxHoverCardCloseDirective } from './hover-card-close.directive';\n\nexport const RdxHoverCardCloseToken = new InjectionToken<RdxHoverCardCloseDirective>('RdxHoverCardCloseToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxHoverCardContentAttributesComponent } from './hover-card-content-attributes.component';\n\nexport const RdxHoverCardContentAttributesToken = new InjectionToken<RdxHoverCardContentAttributesComponent>(\n 'RdxHoverCardContentAttributesToken'\n);\n","export enum RdxHoverCardState {\n OPEN = 'open',\n CLOSED = 'closed'\n}\n\nexport enum RdxHoverCardAction {\n OPEN = 'open',\n CLOSE = 'close'\n}\n\nexport enum RdxHoverCardAttachDetachEvent {\n ATTACH = 'attach',\n DETACH = 'detach'\n}\n\nexport enum RdxHoverCardAnimationStatus {\n OPEN_STARTED = 'open_started',\n OPEN_ENDED = 'open_ended',\n CLOSED_STARTED = 'closed_started',\n CLOSED_ENDED = 'closed_ended'\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n getAllPossibleConnectedPositions,\n getContentPosition,\n RDX_POSITIONING_DEFAULTS,\n RdxPositionAlign,\n RdxPositionSide,\n RdxPositionSideAndAlignOffsets\n} from '@radix-ng/primitives/core';\nimport { filter, tap } from 'rxjs';\nimport { injectHoverCardRoot } from './hover-card-root.inject';\nimport { RdxHoverCardAttachDetachEvent } from './hover-card.types';\n\n@Directive({\n selector: '[rdxHoverCardContent]',\n hostDirectives: [\n CdkConnectedOverlay\n ]\n})\nexport class RdxHoverCardContentDirective implements OnInit {\n /** @ignore */\n private readonly rootDirective = injectHoverCardRoot();\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-hover-card-trigger-${this.rootDirective.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<RdxPositionSide>(RdxPositionSide.Top);\n /**\n * @description The distance in pixels from the trigger.\n * @default undefined\n */\n readonly sideOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n /**\n * @description The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n readonly align = input<RdxPositionAlign>(RdxPositionAlign.Center);\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default undefined\n */\n readonly alignOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n\n /**\n * @description Whether to add some alternate positions of the content.\n * @default false\n */\n readonly alternatePositionsDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */\n readonly onOverlayEscapeKeyDownDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */\n readonly onOverlayOutsideClickDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\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.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.rootDirective,\n 'cdkOverlayEscapeKeyDown'\n )\n ),\n filter((event) => event.key === 'Escape'),\n tap((event) => {\n this.onOverlayEscapeKeyDown.emit(event);\n }),\n filter(() => !this.rootDirective.firstDefaultOpen()),\n tap(() => {\n this.rootDirective.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.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.rootDirective,\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.rootDirective.anchorDirective() ||\n !this.rootDirective\n .triggerDirective()\n .elementRef.nativeElement.contains(event.target as Element)\n );\n }),\n tap((event) => {\n this.onOverlayOutsideClick.emit(event);\n }),\n filter(() => !this.rootDirective.firstDefaultOpen()),\n tap(() => {\n this.rootDirective.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 rootDirective directive due to the opening animation\n */\n this.rootDirective.attachDetachEvent.set(RdxHoverCardAttachDetachEvent.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 rootDirective directive due to the closing animation\n */\n this.rootDirective.attachDetachEvent.set(RdxHoverCardAttachDetachEvent.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 arrowHeight = this.rootDirective.arrowDirective()?.height() ?? 0;\n const offsets: RdxPositionSideAndAlignOffsets = {\n sideOffset:\n arrowHeight + (isNaN(this.sideOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.side : this.sideOffset()),\n alignOffset: isNaN(this.alignOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.align : this.alignOffset()\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 RdxPositionSide) !== this.side() ||\n (sideAndAlignArray[1] as RdxPositionAlign) !== this.align()\n ) {\n positions.push(\n getContentPosition({\n side: sideAndAlignArray[0] as RdxPositionSide,\n align: sideAndAlignArray[1] as RdxPositionAlign,\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.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective())\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 { injectHoverCardRoot } from './hover-card-root.inject';\n\n@Directive({\n selector: '[rdxHoverCardTrigger]',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.aria-expanded]': 'rootDirective.isOpen()',\n '[attr.aria-controls]': 'rootDirective.contentDirective().name()',\n '[attr.data-state]': 'rootDirective.state()',\n '(pointerenter)': 'pointerenter()',\n '(pointerleave)': 'pointerleave()',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'click()'\n }\n})\nexport class RdxHoverCardTriggerDirective {\n /** @ignore */\n protected readonly rootDirective = injectHoverCardRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n\n /** @ignore */\n readonly name = computed(() => `rdx-hover-card-trigger-${this.rootDirective.uniqueId()}`);\n\n /** @ignore */\n protected pointerenter(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected pointerleave(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n protected focus(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected blur(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n protected click(): void {\n this.rootDirective.handleClose();\n }\n}\n","export const RdxCdkEventServiceWindowKey = Symbol('__RdxCdkEventService__');\n","import {\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 { injectDocument, injectWindow } from '@radix-ng/primitives/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 = injectDocument();\n destroyRef = inject(DestroyRef);\n ngZone = inject(NgZone);\n renderer2 = inject(Renderer2);\n window = injectWindow();\n\n primitiveConfigs?: PrimitiveConfigs;\n\n onDestroyCallbacks: Set<() => void> = new Set([() => deleteRdxCdkEventServiceWindowKey(this.window)]);\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 = (window: Window & typeof globalThis) => {\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 const window = injectWindow();\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, NumberInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n signal,\n untracked,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounce, map, Subject, tap, timer } from 'rxjs';\nimport { RdxHoverCardAnchorDirective } from './hover-card-anchor.directive';\nimport { RdxHoverCardAnchorToken } from './hover-card-anchor.token';\nimport { RdxHoverCardArrowToken } from './hover-card-arrow.token';\nimport { RdxHoverCardCloseToken } from './hover-card-close.token';\nimport { RdxHoverCardContentAttributesToken } from './hover-card-content-attributes.token';\nimport { RdxHoverCardContentDirective } from './hover-card-content.directive';\nimport { RdxHoverCardTriggerDirective } from './hover-card-trigger.directive';\nimport {\n RdxHoverCardAction,\n RdxHoverCardAnimationStatus,\n RdxHoverCardAttachDetachEvent,\n RdxHoverCardState\n} from './hover-card.types';\nimport { injectRdxCdkEventService } from './utils/cdk-event.service';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxHoverCardRoot]',\n exportAs: 'rdxHoverCardRoot'\n})\nexport class RdxHoverCardRootDirective {\n /** @ignore */\n readonly uniqueId = signal(++nextId);\n /** @ignore */\n readonly name = computed(() => `rdx-hover-card-root-${this.uniqueId()}`);\n\n /**\n * @description The anchor directive that comes form outside the hover-card rootDirective\n * @default undefined\n */\n readonly anchor = input<RdxHoverCardAnchorDirective | undefined>(void 0);\n /**\n * @description The open state of the hover-card 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, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description The controlled state of the hover-card. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n readonly open = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\n /**\n * To customise the open delay for a specific hover-card.\n */\n readonly openDelay = input<number, NumberInput>(500, {\n transform: numberAttribute\n });\n /**\n * To customise the close delay for a specific hover-card.\n */\n readonly closeDelay = input<number, NumberInput>(200, {\n transform: numberAttribute\n });\n /**\n * @description Whether to control the state of the hover-card from external. Use in conjunction with `open` input.\n * @default undefined\n */\n readonly externalControl = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\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<RdxHoverCardAnimationStatus | null>(null);\n\n /** @ignore */\n readonly contentDirective = contentChild.required(RdxHoverCardContentDirective);\n /** @ignore */\n readonly triggerDirective = contentChild.required(RdxHoverCardTriggerDirective);\n /** @ignore */\n readonly arrowDirective = contentChild(RdxHoverCardArrowToken);\n /** @ignore */\n readonly closeDirective = contentChild(RdxHoverCardCloseToken);\n /** @ignore */\n readonly contentAttributesComponent = contentChild(RdxHoverCardContentAttributesToken);\n /** @ignore */\n private readonly internalAnchorDirective = contentChild(RdxHoverCardAnchorToken);\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(RdxHoverCardState.CLOSED);\n\n /** @ignore */\n readonly attachDetachEvent = signal(RdxHoverCardAttachDetachEvent.DETACH);\n\n /** @ignore */\n private readonly isFirstDefaultOpen = signal(false);\n\n /** @ignore */\n readonly anchorDirective = computed(() => this.internalAnchorDirective() ?? this.anchor());\n\n /** @ignore */\n readonly actionSubject$ = new Subject<RdxHoverCardAction>();\n\n constructor() {\n this.rdxCdkEventService?.registerPrimitive(this);\n this.destroyRef.onDestroy(() => this.rdxCdkEventService?.deregisterPrimitive(this));\n this.actionSubscription();\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.actionSubject$.next(RdxHoverCardAction.OPEN);\n }\n\n /** @ignore */\n handleClose(closeButton?: boolean): void {\n if (this.isFirstDefaultOpen()) {\n this.isFirstDefaultOpen.set(false);\n }\n if (!closeButton && this.externalControl()) {\n return;\n }\n this.actionSubject$.next(RdxHoverCardAction.CLOSE);\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?: RdxHoverCardState) {\n return (state ?? this.state()) === RdxHoverCardState.OPEN;\n }\n\n /** @ignore */\n private setState(state = RdxHoverCardState.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.contentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private closeContent(): void {\n this.contentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private emitOnOpen(): void {\n this.contentDirective().onOpen.emit();\n }\n\n /** @ignore */\n private emitOnClosed(): void {\n this.contentDirective().onClosed.emit();\n }\n\n /** @ignore */\n private ifOpenOrCloseWithoutAnimations(state: RdxHoverCardState) {\n return (\n !this.contentAttributesComponent() ||\n !this.cssAnimation() ||\n (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxHoverCardState.CLOSED) ||\n (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxHoverCardState.OPEN) ||\n // !this.cssAnimationStatus() ||\n (this.cssOpeningAnimation() &&\n state === RdxHoverCardState.OPEN &&\n [RdxHoverCardAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus()!)) ||\n (this.cssClosingAnimation() &&\n state === RdxHoverCardState.CLOSED &&\n [RdxHoverCardAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus()!))\n );\n }\n\n /** @ignore */\n private ifOpenOrCloseWithAnimations(cssAnimationStatus: RdxHoverCardAnimationStatus | null) {\n return (\n this.contentAttributesComponent() &&\n this.cssAnimation() &&\n cssAnimationStatus &&\n ((this.cssOpeningAnimation() &&\n this.state() === RdxHoverCardState.OPEN &&\n [RdxHoverCardAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxHoverCardState.CLOSED &&\n [RdxHoverCardAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus)))\n );\n }\n\n /** @ignore */\n private openOrClose(state: RdxHoverCardState) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n\n /** @ignore */\n private emitOnOpenOrOnClosed(state: RdxHoverCardState) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxHoverCardAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxHoverCardAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n\n /** @ignore */\n private canEmitOnOpenOrOnClosed() {\n return (\n !this.cssAnimation() ||\n (!this.cssOpeningAnimation() && this.state() === RdxHoverCardState.OPEN) ||\n (this.cssOpeningAnimation() &&\n this.state() === RdxHoverCardState.OPEN &&\n this.cssAnimationStatus() === RdxHoverCardAnimationStatus.OPEN_ENDED) ||\n (!this.cssClosingAnimation() && this.state() === RdxHoverCardState.CLOSED) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxHoverCardState.CLOSED &&\n this.cssAnimationStatus() === RdxHoverCardAnimationStatus.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 ? RdxHoverCardState.OPEN : RdxHoverCardState.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.setRoot(this);\n }\n });\n });\n };\n\n /** @ignore */\n private actionSubscription() {\n this.actionSubject$\n .asObservable()\n .pipe(\n map((action) => {\n console.log(action);\n switch (action) {\n case RdxHoverCardAction.OPEN:\n return { action, duration: this.openDelay() };\n case RdxHoverCardAction.CLOSE:\n return { action, duration: this.closeDelay() };\n }\n }),\n debounce((config) => timer(config.duration)),\n tap((config) => {\n switch (config.action) {\n case RdxHoverCardAction.OPEN:\n this.setState(RdxHoverCardState.OPEN);\n break;\n case RdxHoverCardAction.CLOSE:\n this.setState(RdxHoverCardState.CLOSED);\n break;\n }\n }),\n takeUntilDestroyed()\n )\n .subscribe();\n }\n}\n","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxHoverCardRootDirective } from './hover-card-root.directive';\n\nexport function injectHoverCardRoot(optional?: false): RdxHoverCardRootDirective;\nexport function injectHoverCardRoot(optional: true): RdxHoverCardRootDirective | null;\nexport function injectHoverCardRoot(optional = false): RdxHoverCardRootDirective | null {\n isDevMode() && assertInInjectionContext(injectHoverCardRoot);\n return inject(RdxHoverCardRootDirective, { optional });\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, forwardRef, inject } from '@angular/core';\nimport { injectDocument } from '@radix-ng/primitives/core';\nimport { RdxHoverCardAnchorToken } from './hover-card-anchor.token';\nimport { RdxHoverCardRootDirective } from './hover-card-root.directive';\nimport { injectHoverCardRoot } from './hover-card-root.inject';\n\n@Directive({\n selector: '[rdxHoverCardAnchor]',\n exportAs: 'rdxHoverCardAnchor',\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: RdxHoverCardAnchorToken,\n useExisting: forwardRef(() => RdxHoverCardAnchorDirective)\n }\n ]\n})\nexport class RdxHoverCardAnchorDirective {\n /**\n * @ignore\n * If outside the rootDirective then null, otherwise the rootDirective directive - with optional `true` passed in as the first param.\n * If outside the rootDirective and non-null value that means the html structure is wrong - hover-card inside hover-card.\n * */\n protected rootDirective = injectHoverCardRoot(true);\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n readonly document = injectDocument();\n\n /** @ignore */\n readonly name = computed(() => `rdx-hover-card-external-anchor-${this.rootDirective?.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.emitOutsideClick();\n }\n\n /** @ignore */\n setRoot(root: RdxHoverCardRootDirective) {\n this.rootDirective = root;\n }\n\n private emitOutsideClick() {\n if (!this.rootDirective?.isOpen() || this.rootDirective?.contentDirective().onOverlayOutsideClickDisabled()) {\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.rootDirective?.triggerDirective().elementRef.nativeElement.dispatchEvent(clickEvent);\n }\n}\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport {\n afterNextRender,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n numberAttribute,\n Renderer2,\n signal,\n untracked\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n getArrowPositionParams,\n getSideAndAlignFromAllPossibleConnectedPositions,\n RDX_POSITIONING_DEFAULTS\n} from '@radix-ng/primitives/core';\nimport { RdxHoverCardArrowToken } from './hover-card-arrow.token';\nimport { injectHoverCardRoot } from './hover-card-root.inject';\n\n@Directive({\n selector: '[rdxHoverCardArrow]',\n providers: [\n {\n provide: RdxHoverCardArrowToken,\n useExisting: forwardRef(() => RdxHoverCardArrowDirective)\n }\n ]\n})\nexport class RdxHoverCardArrowDirective {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly rootDirective = injectHoverCardRoot();\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, NumberInput>(RDX_POSITIONING_DEFAULTS.arrow.width, { transform: numberAttribute });\n\n /**\n * @description The height of the arrow in pixels.\n * @default 5\n */\n readonly height = input<number, NumberInput>(RDX_POSITIONING_DEFAULTS.arrow.height, { transform: numberAttribute });\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.rootDirective.contentDirective().positionChange());\n\n /** @ignore */\n private anchorOrTriggerRect: DOMRect;\n\n constructor() {\n afterNextRender({\n write: () => {\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 this.onArrowSvgElementChangeEffect();\n this.onContentPositionAndArrowDimensionsChangeEffect();\n }\n\n /** @ignore */\n private setAnchorOrTriggerRect() {\n this.anchorOrTriggerRect = (\n this.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective()\n ).elementRef.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n private setPosition(position: ConnectedOverlayPositionChange, arrowDimensions: { width: number; height: number }) {\n this.setAnchorOrTriggerRect();\n const posParams = getArrowPositionParams(\n getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair),\n { width: arrowDimensions.width, height: arrowDimensions.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 this.renderer.setStyle(this.elementRef.nativeElement, 'transformOrigin', posParams.transformOrigin);\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 onContentPositionAndArrowDimensionsChangeEffect() {\n effect(() => {\n const position = this.position();\n const arrowDimensions = { width: this.width(), height: this.height() };\n untracked(() => {\n if (!position) {\n return;\n }\n this.setPosition(position, arrowDimensions);\n });\n });\n }\n}\n","import { Directive, effect, ElementRef, forwardRef, inject, Renderer2, untracked } from '@angular/core';\nimport { RdxHoverCardCloseToken } from './hover-card-close.token';\nimport { injectHoverCardRoot } from './hover-card-root.inject';\n\n/**\n * TODO: to be removed? But it seems to be useful when controlled from outside\n */\n@Directive({\n selector: '[rdxHoverCardClose]',\n host: {\n type: 'button',\n '(click)': 'rootDirective.handleClose(true)'\n },\n providers: [\n {\n provide: RdxHoverCardCloseToken,\n useExisting: forwardRef(() => RdxHoverCardCloseDirective)\n }\n ]\n})\nexport class RdxHoverCardCloseDirective {\n /** @ignore */\n protected readonly rootDirective = injectHoverCardRoot();\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.rootDirective.controlledExternally()();\n\n untracked(() => {\n this.renderer.setStyle(\n this.elementRef.nativeElement,\n 'display',\n isControlledExternally ? null : 'none'\n );\n });\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef } from '@angular/core';\nimport { RdxHoverCardContentAttributesToken } from './hover-card-content-attributes.token';\nimport { injectHoverCardRoot } from './hover-card-root.inject';\nimport { RdxHoverCardAnimationStatus, RdxHoverCardState } from './hover-card.types';\n\n@Component({\n selector: '[rdxHoverCardContentAttributes]',\n template: `\n <ng-content />\n `,\n host: {\n '[attr.role]': '\"dialog\"',\n '[attr.id]': 'name()',\n '[attr.data-state]': 'rootDirective.state()',\n '[attr.data-side]': 'rootDirective.contentDirective().side()',\n '[attr.data-align]': 'rootDirective.contentDirective().align()',\n '[style]': 'disableAnimation() ? {animation: \"none !important\"} : null',\n '(animationstart)': 'onAnimationStart($event)',\n '(animationend)': 'onAnimationEnd($event)',\n '(pointerenter)': 'pointerenter()',\n '(pointerleave)': 'pointerleave()',\n '(focus)': 'focus()',\n '(blur)': 'blur()'\n },\n providers: [\n {\n provide: RdxHoverCardContentAttributesToken,\n useExisting: forwardRef(() => RdxHoverCardContentAttributesComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RdxHoverCardContentAttributesComponent {\n /** @ignore */\n protected readonly rootDirective = injectHoverCardRoot();\n\n /** @ignore */\n readonly name = computed(() => `rdx-hover-card-content-attributes-${this.rootDirective.uniqueId()}`);\n\n /** @ignore */\n readonly disableAnimation = computed(() => !this.canAnimate());\n\n /** @ignore */\n protected onAnimationStart(_: AnimationEvent) {\n this.rootDirective.cssAnimationStatus.set(\n this.rootDirective.state() === RdxHoverCardState.OPEN\n ? RdxHoverCardAnimationStatus.OPEN_STARTED\n : RdxHoverCardAnimationStatus.CLOSED_STARTED\n );\n }\n\n /** @ignore */\n protected onAnimationEnd(_: AnimationEvent) {\n this.rootDirective.cssAnimationStatus.set(\n this.rootDirective.state() === RdxHoverCardState.OPEN\n ? RdxHoverCardAnimationStatus.OPEN_ENDED\n : RdxHoverCardAnimationStatus.CLOSED_ENDED\n );\n }\n\n /** @ignore */\n protected pointerenter(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected pointerleave(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n protected focus(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected blur(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n private canAnimate() {\n return (\n this.rootDirective.cssAnimation() &&\n ((this.rootDirective.cssOpeningAnimation() && this.rootDirective.state() === RdxHoverCardState.OPEN) ||\n (this.rootDirective.cssClosingAnimation() && this.rootDirective.state() === RdxHoverCardState.CLOSED))\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxHoverCardAnchorDirective } from './src/hover-card-anchor.directive';\nimport { RdxHoverCardArrowDirective } from './src/hover-card-arrow.directive';\nimport { RdxHoverCardCloseDirective } from './src/hover-card-close.directive';\nimport { RdxHoverCardContentAttributesComponent } from './src/hover-card-content-attributes.component';\nimport { RdxHoverCardContentDirective } from './src/hover-card-content.directive';\nimport { RdxHoverCardRootDirective } from './src/hover-card-root.directive';\nimport { RdxHoverCardTriggerDirective } from './src/hover-card-trigger.directive';\n\nexport * from './src/hover-card-anchor.directive';\nexport * from './src/hover-card-arrow.directive';\nexport * from './src/hover-card-close.directive';\nexport * from './src/hover-card-content-attributes.component';\nexport * from './src/hover-card-content.directive';\nexport * from './src/hover-card-root.directive';\nexport * from './src/hover-card-trigger.directive';\n\nconst _imports = [\n RdxHoverCardArrowDirective,\n RdxHoverCardCloseDirective,\n RdxHoverCardContentDirective,\n RdxHoverCardTriggerDirective,\n RdxHoverCardRootDirective,\n RdxHoverCardAnchorDirective,\n RdxHoverCardContentAttributesComponent\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxHoverCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { InjectionToken, inject, TemplateRef, DestroyRef, computed, input, output, effect, untracked, SimpleChange, Directive, ElementRef, NgZone, Renderer2, isDevMode, VERSION, Injectable, makeEnvironmentProviders, signal,
|
2
|
+
import { InjectionToken, inject, TemplateRef, DestroyRef, computed, input, numberAttribute, booleanAttribute, output, effect, untracked, SimpleChange, Directive, ElementRef, NgZone, Renderer2, isDevMode, VERSION, Injectable, makeEnvironmentProviders, signal, contentChild, ViewContainerRef, afterNextRender, assertInInjectionContext, forwardRef, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
3
3
|
import * as i1 from '@angular/cdk/overlay';
|
4
4
|
import { Overlay, CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
5
|
-
import { RdxPositionSide, RdxPositionAlign, getContentPosition, getAllPossibleConnectedPositions, injectDocument, injectWindow, getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions } from '@radix-ng/primitives/core';
|
5
|
+
import { RdxPositionSide, RdxPositionAlign, RDX_POSITIONING_DEFAULTS, getContentPosition, getAllPossibleConnectedPositions, injectDocument, injectWindow, getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions } from '@radix-ng/primitives/core';
|
6
6
|
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
7
7
|
import { filter, tap } from 'rxjs';
|
8
8
|
|
@@ -14,13 +14,6 @@ const RdxPopoverCloseToken = new InjectionToken('RdxPopoverCloseToken');
|
|
14
14
|
|
15
15
|
const RdxPopoverContentAttributesToken = new InjectionToken('RdxPopoverContentAttributesToken');
|
16
16
|
|
17
|
-
const DEFAULTS = {
|
18
|
-
offsets: {
|
19
|
-
side: 10,
|
20
|
-
align: 0
|
21
|
-
}
|
22
|
-
};
|
23
|
-
|
24
17
|
var RdxPopoverState;
|
25
18
|
(function (RdxPopoverState) {
|
26
19
|
RdxPopoverState["OPEN"] = "open";
|
@@ -62,7 +55,9 @@ class RdxPopoverContentDirective {
|
|
62
55
|
* @description The distance in pixels from the trigger.
|
63
56
|
* @default undefined
|
64
57
|
*/
|
65
|
-
this.sideOffset = input(
|
58
|
+
this.sideOffset = input(NaN, {
|
59
|
+
transform: numberAttribute
|
60
|
+
});
|
66
61
|
/**
|
67
62
|
* @description The preferred alignment against the trigger. May change when collisions occur.
|
68
63
|
* @default center
|
@@ -72,16 +67,18 @@ class RdxPopoverContentDirective {
|
|
72
67
|
* @description An offset in pixels from the "start" or "end" alignment options.
|
73
68
|
* @default undefined
|
74
69
|
*/
|
75
|
-
this.alignOffset = input(
|
70
|
+
this.alignOffset = input(NaN, {
|
71
|
+
transform: numberAttribute
|
72
|
+
});
|
76
73
|
/**
|
77
74
|
* @description Whether to add some alternate positions of the content.
|
78
75
|
* @default false
|
79
76
|
*/
|
80
|
-
this.alternatePositionsDisabled = input(false);
|
77
|
+
this.alternatePositionsDisabled = input(false, { transform: booleanAttribute });
|
81
78
|
/** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */
|
82
|
-
this.onOverlayEscapeKeyDownDisabled = input(false);
|
79
|
+
this.onOverlayEscapeKeyDownDisabled = input(false, { transform: booleanAttribute });
|
83
80
|
/** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */
|
84
|
-
this.onOverlayOutsideClickDisabled = input(false);
|
81
|
+
this.onOverlayOutsideClickDisabled = input(false, { transform: booleanAttribute });
|
85
82
|
/**
|
86
83
|
* @description Event handler called when the escape key is down.
|
87
84
|
* It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.
|
@@ -228,10 +225,10 @@ class RdxPopoverContentDirective {
|
|
228
225
|
}
|
229
226
|
/** @ignore */
|
230
227
|
computePositions() {
|
231
|
-
const
|
228
|
+
const arrowHeight = this.popoverRoot.popoverArrowDirective()?.height() ?? 0;
|
232
229
|
const offsets = {
|
233
|
-
sideOffset: this.sideOffset()
|
234
|
-
alignOffset: this.alignOffset()
|
230
|
+
sideOffset: arrowHeight + (isNaN(this.sideOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.side : this.sideOffset()),
|
231
|
+
alignOffset: isNaN(this.alignOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.align : this.alignOffset()
|
235
232
|
};
|
236
233
|
const basePosition = getContentPosition({
|
237
234
|
side: this.side(),
|
@@ -292,7 +289,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
292
289
|
type: Directive,
|
293
290
|
args: [{
|
294
291
|
selector: '[rdxPopoverContent]',
|
295
|
-
standalone: true,
|
296
292
|
hostDirectives: [
|
297
293
|
CdkConnectedOverlay
|
298
294
|
]
|
@@ -321,7 +317,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
321
317
|
type: Directive,
|
322
318
|
args: [{
|
323
319
|
selector: '[rdxPopoverTrigger]',
|
324
|
-
standalone: true,
|
325
320
|
hostDirectives: [CdkOverlayOrigin],
|
326
321
|
host: {
|
327
322
|
type: 'button',
|
@@ -504,17 +499,17 @@ class RdxPopoverRootDirective {
|
|
504
499
|
* @description The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
|
505
500
|
* @default false
|
506
501
|
*/
|
507
|
-
this.defaultOpen = input(false);
|
502
|
+
this.defaultOpen = input(false, { transform: booleanAttribute });
|
508
503
|
/**
|
509
504
|
* @description The controlled state of the popover. `open` input take precedence of `defaultOpen` input.
|
510
505
|
* @default undefined
|
511
506
|
*/
|
512
|
-
this.open = input(void 0);
|
507
|
+
this.open = input(void 0, { transform: booleanAttribute });
|
513
508
|
/**
|
514
509
|
* @description Whether to control the state of the popover from external. Use in conjunction with `open` input.
|
515
510
|
* @default undefined
|
516
511
|
*/
|
517
|
-
this.externalControl = input(void 0);
|
512
|
+
this.externalControl = input(void 0, { transform: booleanAttribute });
|
518
513
|
/**
|
519
514
|
* @description Whether to take into account CSS opening/closing animations.
|
520
515
|
* @default false
|
@@ -793,7 +788,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
793
788
|
type: Directive,
|
794
789
|
args: [{
|
795
790
|
selector: '[rdxPopoverRoot]',
|
796
|
-
standalone: true,
|
797
791
|
exportAs: 'rdxPopoverRoot'
|
798
792
|
}]
|
799
793
|
}], ctorParameters: () => [] });
|
@@ -853,7 +847,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
853
847
|
type: Directive,
|
854
848
|
args: [{
|
855
849
|
selector: '[rdxPopoverAnchor]',
|
856
|
-
standalone: true,
|
857
850
|
exportAs: 'rdxPopoverAnchor',
|
858
851
|
hostDirectives: [CdkOverlayOrigin],
|
859
852
|
host: {
|
@@ -883,12 +876,12 @@ class RdxPopoverArrowDirective {
|
|
883
876
|
* @description The width of the arrow in pixels.
|
884
877
|
* @default 10
|
885
878
|
*/
|
886
|
-
this.width = input(
|
879
|
+
this.width = input(RDX_POSITIONING_DEFAULTS.arrow.width, { transform: numberAttribute });
|
887
880
|
/**
|
888
881
|
* @description The height of the arrow in pixels.
|
889
882
|
* @default 5
|
890
883
|
*/
|
891
|
-
this.height = input(
|
884
|
+
this.height = input(RDX_POSITIONING_DEFAULTS.arrow.height, { transform: numberAttribute });
|
892
885
|
/** @ignore */
|
893
886
|
this.arrowSvgElement = computed(() => {
|
894
887
|
const width = this.width();
|
@@ -933,6 +926,7 @@ class RdxPopoverArrowDirective {
|
|
933
926
|
this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);
|
934
927
|
this.renderer.setStyle(this.elementRef.nativeElement, 'right', '');
|
935
928
|
this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);
|
929
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'transformOrigin', posParams.transformOrigin);
|
936
930
|
}
|
937
931
|
/** @ignore */
|
938
932
|
onArrowSvgElementChangeEffect() {
|
@@ -975,7 +969,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
975
969
|
type: Directive,
|
976
970
|
args: [{
|
977
971
|
selector: '[rdxPopoverArrow]',
|
978
|
-
standalone: true,
|
979
972
|
providers: [
|
980
973
|
{
|
981
974
|
provide: RdxPopoverArrowToken,
|
@@ -1016,7 +1009,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
1016
1009
|
type: Directive,
|
1017
1010
|
args: [{
|
1018
1011
|
selector: '[rdxPopoverClose]',
|
1019
|
-
standalone: true,
|
1020
1012
|
host: {
|
1021
1013
|
type: 'button',
|
1022
1014
|
'(click)': 'popoverRoot.handleClose()'
|
@@ -1071,7 +1063,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
1071
1063
|
type: Component,
|
1072
1064
|
args: [{
|
1073
1065
|
selector: '[rdxPopoverContentAttributes]',
|
1074
|
-
standalone: true,
|
1075
1066
|
template: `
|
1076
1067
|
<ng-content />
|
1077
1068
|
`,
|