@spartan-ng/brain 0.0.1-alpha.697 → 0.0.1-alpha.698
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.
|
@@ -264,7 +264,7 @@ class BrnNavigationMenuLink {
|
|
|
264
264
|
this._navigationMenu.value.set(this._navigationMenuItem.id());
|
|
265
265
|
}
|
|
266
266
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnNavigationMenuLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
267
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.17", type: BrnNavigationMenuLink, isStandalone: true, selector: "a[brnNavigationMenuLink]", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "navigation-menu-link" }, listeners: { "click": "onClick()", "mouseenter": "activate()", "focus": "handleFocus()" }, properties: { "attr.data-active": "_isActive() ? \"\" : undefined", "attr.aria-current": "_isActive() ? \"page\" : undefined" } }, providers: [provideBrnNavigationMenuFocusable(BrnNavigationMenuLink)], hostDirectives: [{ directive: i1.BrnButton, inputs: ["disabled", "disabled"] }], ngImport: i0 });
|
|
267
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.17", type: BrnNavigationMenuLink, isStandalone: true, selector: "a[brnNavigationMenuLink]", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "navigation-menu-link" }, listeners: { "click": "onClick()", "mouseenter": "activate()", "focus": "handleFocus()" }, properties: { "attr.data-active": "_isActive() ? \"true\" : undefined", "attr.aria-current": "_isActive() ? \"page\" : undefined" } }, providers: [provideBrnNavigationMenuFocusable(BrnNavigationMenuLink)], hostDirectives: [{ directive: i1.BrnButton, inputs: ["disabled", "disabled"] }], ngImport: i0 });
|
|
268
268
|
}
|
|
269
269
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnNavigationMenuLink, decorators: [{
|
|
270
270
|
type: Directive,
|
|
@@ -281,7 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
281
281
|
'(click)': 'onClick()',
|
|
282
282
|
'(mouseenter)': 'activate()',
|
|
283
283
|
'(focus)': 'handleFocus()',
|
|
284
|
-
'[attr.data-active]': '_isActive() ? "" : undefined',
|
|
284
|
+
'[attr.data-active]': '_isActive() ? "true" : undefined',
|
|
285
285
|
'[attr.aria-current]': '_isActive() ? "page" : undefined',
|
|
286
286
|
'data-slot': 'navigation-menu-link',
|
|
287
287
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-navigation-menu.mjs","sources":["../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-content.service.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-item-focusable.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-item.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-item.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-link.ts","../../../../libs/brain/navigation-menu/src/lib/brn-parent-nav-menu.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-content.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-list.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-trigger.ts","../../../../libs/brain/navigation-menu/src/index.ts","../../../../libs/brain/navigation-menu/src/spartan-ng-brain-navigation-menu.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n\tConnectedPosition,\n\tFlexibleConnectedPositionStrategy,\n\tOverlay,\n\tOverlayConfig,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tElementRef,\n\tinject,\n\tInjectable,\n\tNgZone,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { createHoverObservable, waitForElementAnimations } from '@spartan-ng/brain/core';\nimport { BehaviorSubject, fromEvent, Observable, of, Subject } from 'rxjs';\nimport { map, share, switchMap, takeUntil } from 'rxjs/operators';\n\nexport type BrnNavigationMenuContentOptions = Partial<\n\t{\n\t\tattachTo: ElementRef<HTMLElement>;\n\t\torientation: 'horizontal' | 'vertical';\n\t} & OverlayConfig\n>;\n\nconst horizontalPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'start',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'start',\n\t\toverlayY: 'top',\n\t},\n];\n\nconst verticalPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'end',\n\t\toriginY: 'top',\n\t\toverlayX: 'start',\n\t\toverlayY: 'top',\n\t},\n\t{\n\t\toriginX: 'start',\n\t\toriginY: 'top',\n\t\toverlayX: 'end',\n\t\toverlayY: 'top',\n\t},\n];\n\n@Injectable()\nexport class BrnNavigationMenuContentService {\n\tprivate static _id = 0;\n\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _psBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _renderer = inject(Renderer2);\n\n\tprivate readonly _content = signal<TemplatePortal<unknown> | null>(null);\n\n\tpublic readonly id = `brn-navigation-menu-content-${++BrnNavigationMenuContentService._id}`;\n\n\tprivate _shouldDetach = false;\n\n\tprivate _config: BrnNavigationMenuContentOptions = {};\n\tprivate _overlayRef?: OverlayRef;\n\tprivate _positionStrategy?: FlexibleConnectedPositionStrategy;\n\tprivate _destroyed$ = new Subject<void>();\n\n\tprivate readonly _contentEl = signal<HTMLElement | undefined>(undefined);\n\tpublic readonly contentEl = this._contentEl.asReadonly();\n\n\tprivate readonly _overlayHoveredObservables$ = new BehaviorSubject<Observable<boolean> | undefined>(undefined);\n\n\tprivate readonly _overlayShiftTabObservables$ = new BehaviorSubject<Observable<KeyboardEvent> | undefined>(undefined);\n\n\tprivate readonly _overlayEscapeObservables$ = new BehaviorSubject<Observable<KeyboardEvent> | undefined>(undefined);\n\n\tpublic readonly hovered$: Observable<boolean> = this._overlayHoveredObservables$.pipe(\n\t\tswitchMap((overlayHoveredObservable) => (overlayHoveredObservable !== undefined ? overlayHoveredObservable : of())),\n\t\tshare(),\n\t);\n\n\tprivate readonly _shiftTabPressed$ = this._overlayShiftTabObservables$.pipe(\n\t\tswitchMap((contentFocused$) => (contentFocused$ !== undefined ? contentFocused$ : of())),\n\t);\n\n\tpublic readonly escapePressed$ = this._overlayEscapeObservables$.pipe(\n\t\tswitchMap((contentFocused$) => (contentFocused$ !== undefined ? contentFocused$ : of())),\n\t);\n\n\tconstructor() {\n\t\tthis._shiftTabPressed$.pipe(takeUntil(this._destroyed$)).subscribe((e) => {\n\t\t\tif (this._config.attachTo?.nativeElement) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis._config.attachTo.nativeElement.focus();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic setConfig(config: BrnNavigationMenuContentOptions) {\n\t\tthis._config = config;\n\n\t\tif (config.attachTo) {\n\t\t\tconst positions = this._getPositions(config.orientation);\n\t\t\tthis._positionStrategy = this._buildPositionStrategy(config.attachTo, positions);\n\n\t\t\tthis._config = {\n\t\t\t\t...this._config,\n\t\t\t\tpositionStrategy: this._positionStrategy,\n\t\t\t\tscrollStrategy: this._overlay.scrollStrategies.reposition(),\n\t\t\t};\n\t\t}\n\n\t\tthis._overlayRef = this._overlay.create(this._config);\n\t}\n\n\tpublic updateOrientation(orientation: 'horizontal' | 'vertical') {\n\t\tif (!this._config.attachTo) return;\n\n\t\tconst positions = this._getPositions(orientation);\n\t\tthis._positionStrategy = this._buildPositionStrategy(this._config.attachTo, positions);\n\n\t\tthis._config = {\n\t\t\t...this._config,\n\t\t\tpositionStrategy: this._positionStrategy,\n\t\t\tscrollStrategy: this._overlay.scrollStrategies.reposition(),\n\t\t};\n\n\t\tthis._overlayRef?.updatePositionStrategy(this._positionStrategy);\n\t}\n\n\tpublic updateDirection(dir: Direction) {\n\t\tthis._overlayRef?.setDirection(dir);\n\t}\n\n\tpublic setContent(value: TemplateRef<unknown>, vcr: ViewContainerRef) {\n\t\tthis._content.set(new TemplatePortal<unknown>(value, vcr));\n\n\t\tif (!this._overlayRef) {\n\t\t\tthis._overlayRef = this._overlay.create(this._config);\n\t\t}\n\t}\n\n\tpublic show() {\n\t\tconst content = this._content();\n\t\tif (!content || !this._overlayRef) return;\n\t\tthis._shouldDetach = false;\n\n\t\tthis._overlayRef?.detach();\n\t\tconst embededViewRef = this._overlayRef?.attach(content);\n\n\t\tthis._destroyed$ = new Subject<void>();\n\n\t\tconst contentEl = embededViewRef.rootNodes[0] as HTMLElement;\n\n\t\tconst attachToId = this._config.attachTo?.nativeElement.id;\n\n\t\tthis._renderer.setAttribute(contentEl, 'id', this.id);\n\t\tif (attachToId !== undefined) {\n\t\t\tthis._renderer.setAttribute(contentEl, 'aria-labelledby', attachToId);\n\t\t}\n\n\t\tthis._contentEl.set(contentEl);\n\n\t\tthis._overlayHoveredObservables$.next(\n\t\t\tcreateHoverObservable(this._overlayRef.hostElement, this._zone, this._destroyed$).pipe(map((e) => e.hover)),\n\t\t);\n\n\t\tthis._overlayShiftTabObservables$.next(\n\t\t\tfromEvent<KeyboardEvent>(contentEl, 'keydown').pipe(\n\t\t\t\tswitchMap((e) => (e.key === 'Tab' && e.shiftKey && e.target === this.contentEl() ? of(e) : of())),\n\t\t\t\ttakeUntil(this._destroyed$),\n\t\t\t),\n\t\t);\n\n\t\tthis._overlayEscapeObservables$.next(\n\t\t\tfromEvent<KeyboardEvent>(contentEl, 'keydown').pipe(\n\t\t\t\tswitchMap((e) => (e.key === 'Escape' && !hasModifierKey(e) ? of(e) : of())),\n\t\t\t\ttakeUntil(this._destroyed$),\n\t\t\t),\n\t\t);\n\t}\n\n\tpublic async hide() {\n\t\tconst contentEl = this._contentEl();\n\t\tif (!contentEl) return;\n\n\t\tthis._shouldDetach = true;\n\t\tif (!this._hasAnimation()) {\n\t\t\tthis._detach();\n\t\t}\n\n\t\tawait waitForElementAnimations(contentEl);\n\t\tthis._detach();\n\t}\n\n\tprivate readonly _detach = () => {\n\t\tif (!this._shouldDetach) return;\n\n\t\tthis._overlayRef?.detach();\n\t\tthis._contentEl.set(undefined);\n\n\t\tthis._destroyed$.next();\n\t\tthis._destroyed$.complete();\n\t\tthis._destroyed$ = new Subject<void>();\n\t};\n\n\tprivate _hasAnimation() {\n\t\tconst contentEl = this.contentEl();\n\t\tif (!contentEl) return;\n\n\t\treturn getComputedStyle(contentEl).animationName !== 'none';\n\t}\n\n\tprivate _getPositions(orientation?: 'horizontal' | 'vertical') {\n\t\treturn orientation === 'vertical' ? verticalPositions : horizontalPositions;\n\t}\n\n\tprivate _buildPositionStrategy(attachTo: ElementRef, positions: ConnectedPosition[]) {\n\t\treturn this._psBuilder\n\t\t\t.flexibleConnectedTo(attachTo)\n\t\t\t.withPositions(positions)\n\t\t\t.withDefaultOffsetY(0)\n\t\t\t.withDefaultOffsetX(0)\n\t\t\t.withPush(false);\n\t}\n}\n","import type { FocusableOption } from '@angular/cdk/a11y';\nimport { type ExistingProvider, InjectionToken, type Type } from '@angular/core';\n\nexport const BrnNavigationMenuFocusable = new InjectionToken<FocusableOption>('BrnNavigationMenuFocusable');\n\nexport function provideBrnNavigationMenuFocusable<T extends FocusableOption>(focusable: Type<T>): ExistingProvider {\n\treturn { provide: BrnNavigationMenuFocusable, useExisting: focusable };\n}\n","import { type ExistingProvider, inject, InjectionToken, type Type } from '@angular/core';\nimport type { BrnNavigationMenuItem } from './brn-navigation-menu-item';\n\nexport const BrnNavigationMenuItemToken = new InjectionToken<BrnNavigationMenuItem>('BrnNavigationMenuItemToken');\n\nexport function injectBrnNavigationMenuItem(): BrnNavigationMenuItem {\n\treturn inject(BrnNavigationMenuItemToken);\n}\n\nexport function provideBrnNavigationMenuItem(navigationMenuItem: Type<BrnNavigationMenuItem>): ExistingProvider {\n\treturn { provide: BrnNavigationMenuItemToken, useExisting: navigationMenuItem };\n}\n","import { type ExistingProvider, inject, InjectionToken, type Type } from '@angular/core';\nimport type { BrnNavigationMenu } from './brn-navigation-menu';\n\nexport const BrnNavigationMenuToken = new InjectionToken<BrnNavigationMenu>('BrnNavigationMenuToken');\n\nexport function injectBrnNavigationMenu(): BrnNavigationMenu {\n\treturn inject(BrnNavigationMenuToken);\n}\n\nexport function provideBrnNavigationMenu(navigationMenu: Type<BrnNavigationMenu>): ExistingProvider {\n\treturn { provide: BrnNavigationMenuToken, useExisting: navigationMenu };\n}\n","import { computed, contentChild, Directive, ElementRef, inject, input, signal, TemplateRef } from '@angular/core';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { Observable, Subject } from 'rxjs';\nimport { BrnNavigationMenuContentService } from './brn-navigation-menu-content.service';\nimport { BrnNavigationMenuFocusable } from './brn-navigation-menu-item-focusable.token';\nimport { provideBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\n@Directive({\n\tselector: 'li[brnNavigationMenuItem]',\n\tproviders: [provideBrnNavigationMenuItem(BrnNavigationMenuItem), BrnNavigationMenuContentService],\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'[attr.data-disabled]': 'disabled() || null',\n\t\t'data-slot': 'navigation-menu-item',\n\t},\n})\nexport class BrnNavigationMenuItem {\n\tprivate static _id = 0;\n\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _contentService = inject(BrnNavigationMenuContentService);\n\n\tpublic readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly navMenuElRef = this._navigationMenu.el;\n\n\t/** The id of the navigation menu item */\n\tpublic readonly id = input<string>(`brn-navigation-menu-item-${++BrnNavigationMenuItem._id}`);\n\n\tpublic readonly isActive = computed(() => this.id() === this._navigationMenu.value());\n\n\tpublic readonly wasActive = computed(() => this.id() === this._navigationMenu.previousValue());\n\n\tpublic readonly state = computed(() => (this.isActive() ? 'open' : 'closed'));\n\n\tpublic readonly contentTemplate = signal<TemplateRef<unknown> | null>(null);\n\n\tpublic readonly contentHovered$ = this._contentService.hovered$;\n\n\tpublic readonly subNavVisible$ = new Subject<Observable<boolean>>();\n\n\tpublic readonly focusable = contentChild.required(BrnNavigationMenuFocusable);\n\n\tprivate readonly _triggerOrLinkBtn = contentChild.required(BrnNavigationMenuFocusable, { read: BrnButton });\n\n\tpublic readonly disabled = computed(() => this._triggerOrLinkBtn().disabled());\n}\n","import type { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { provideBrnNavigationMenuFocusable } from './brn-navigation-menu-item-focusable.token';\nimport { injectBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\n@Directive({\n\tselector: 'a[brnNavigationMenuLink]',\n\tproviders: [provideBrnNavigationMenuFocusable(BrnNavigationMenuLink)],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnButton,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'(click)': 'onClick()',\n\t\t'(mouseenter)': 'activate()',\n\t\t'(focus)': 'handleFocus()',\n\t\t'[attr.data-active]': '_isActive() ? \"\" : undefined',\n\t\t'[attr.aria-current]': '_isActive() ? \"page\" : undefined',\n\t\t'data-slot': 'navigation-menu-link',\n\t},\n})\nexport class BrnNavigationMenuLink implements FocusableOption {\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _navigationMenuItem = injectBrnNavigationMenuItem();\n\tprivate readonly _el = inject<ElementRef<HTMLAnchorElement>>(ElementRef);\n\n\t// Returns false if this BrnNavigationMenuLink is used \"standalone\", meaning it doesn't have a parent BrnNavigationMenuItem element.\n\tprivate readonly _hasParentNavMenuItem =\n\t\tthis._el.nativeElement.parentElement === this._navigationMenuItem.el.nativeElement;\n\n\t/**\n\t * Used to identify the link as the currently active page.\n\t */\n\tpublic readonly active = input<boolean | undefined, BooleanInput>(undefined, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _isActive = computed(() => {\n\t\tconst active = this.active();\n\t\tif (active !== undefined) return active;\n\n\t\tif (!this._hasParentNavMenuItem) return false;\n\n\t\treturn this._navigationMenuItem.isActive();\n\t});\n\n\tpublic get disabled() {\n\t\treturn this._navigationMenuItem.disabled();\n\t}\n\n\tpublic focus(_origin?: FocusOrigin) {\n\t\tif (!this._hasParentNavMenuItem || this._navigationMenuItem.disabled()) return;\n\n\t\tthis._el.nativeElement.focus();\n\t}\n\n\tprotected handleFocus() {\n\t\tif (!this._hasParentNavMenuItem) return;\n\t\tthis._navigationMenu.setActiveItem(this);\n\t}\n\n\tprotected onClick() {\n\t\tif (!this._hasParentNavMenuItem) return;\n\t\tthis._navigationMenu.value.set(this._navigationMenuItem.id());\n\t}\n\n\tprotected activate() {\n\t\tif (!this._hasParentNavMenuItem) return;\n\n\t\t// Only activate on hover if openOn is 'hover' or menu is already open\n\t\tconst openOn = this._navigationMenu.openOn();\n\t\tconst isMenuOpen = this._navigationMenu.value() !== undefined;\n\t\tif (openOn === 'click' && !isMenuOpen) return;\n\n\t\tthis._navigationMenu.value.set(this._navigationMenuItem.id());\n\t}\n}\n","import { type FactoryProvider, inject, InjectionToken } from '@angular/core';\nimport type { Subject } from 'rxjs';\n\nexport interface BrnParentNavMenu {\n\tsubNavVisible$: Subject<boolean>;\n}\n\nexport const BrnParentNavMenu = new InjectionToken<BrnParentNavMenu>('BrnParentNavMenu');\n\nexport function injectBrnParentNavMenu(): BrnParentNavMenu | null {\n\treturn inject(BrnParentNavMenu, { optional: true });\n}\n\nexport function provideBrnParentNavMenu(parentNavMenu: () => BrnParentNavMenu): FactoryProvider {\n\treturn { provide: BrnParentNavMenu, useFactory: parentNavMenu };\n}\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n\tcomputed,\n\tcontentChildren,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tmodel,\n\tNgZone,\n\tOnDestroy,\n\tsignal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { computedPrevious, createHoverObservable } from '@spartan-ng/brain/core';\nimport { BehaviorSubject, combineLatest, merge, of, Subject } from 'rxjs';\nimport { debounceTime, delay, filter, map, pairwise, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { BrnNavigationMenuItem } from './brn-navigation-menu-item';\nimport { BrnNavigationMenuLink } from './brn-navigation-menu-link';\nimport { provideBrnNavigationMenu } from './brn-navigation-menu.token';\nimport { injectBrnParentNavMenu } from './brn-parent-nav-menu.token';\n\nfunction areArraysSameByElRef(arr1: unknown[], arr2: unknown[]) {\n\tif (arr1.length !== arr2.length) return false;\n\treturn arr1.every((item, index) => item === arr2[index]);\n}\n\n@Directive({\n\tselector: 'nav[brnNavigationMenu]',\n\tproviders: [provideBrnNavigationMenu(BrnNavigationMenu)],\n\thost: {\n\t\t'(keydown)': 'handleKeydown($event)',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t\t'[attr.dir]': 'direction()',\n\t\t'aria-label': 'Main',\n\t\t'data-slot': 'navigation-menu',\n\t},\n})\nexport class BrnNavigationMenu implements OnDestroy {\n\tprivate readonly _dir = inject(Directionality);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _anyTriggerHovered$ = new BehaviorSubject<boolean>(false);\n\n\tpublic readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\tpublic readonly parentNavMenu = injectBrnParentNavMenu();\n\n\t/**\n\t * The controlled value of the menu item to activate.\n\t */\n\tpublic readonly value = model<string>();\n\n\t/**\n\t * The duration from when the mouse enters a trigger until the content opens.\n\t */\n\tpublic readonly delayDuration = input<number>(200);\n\n\t/**\n\t * How much time a user has to enter another trigger without incurring a delay again.\n\t */\n\tpublic readonly skipDelayDuration = input<number>(300);\n\n\t/**\n\t * Controls whether the menu opens on hover or click.\n\t * When 'click', initial open requires a click, but hover still switches between items once open.\n\t */\n\tpublic readonly openOn = input<'hover' | 'click'>('hover');\n\n\t/** internal **/\n\tpublic readonly direction = this._dir.valueSignal;\n\n\t/**\n\t * The orientation of the menu.\n\t */\n\tpublic readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n\tprivate readonly _isOpenDelayed = signal(true);\n\tpublic readonly isOpenDelayed = this._isOpenDelayed.asReadonly();\n\n\tprivate _skipDelayTimerRef: ReturnType<typeof setTimeout> | undefined;\n\n\tprivate readonly _navAndSubnavMenuItems = contentChildren(BrnNavigationMenuItem, { descendants: true });\n\n\tpublic readonly menuItems = computed(\n\t\t() => this._navAndSubnavMenuItems().filter((mi) => mi.navMenuElRef === this.el),\n\t\t{\n\t\t\tequal: areArraysSameByElRef,\n\t\t},\n\t);\n\n\tpublic readonly menuItemIds = computed(() => this.menuItems().map((mi) => mi.id()));\n\n\tprivate readonly _triggersAndLinks = computed(() => this.menuItems().map((mi) => mi.focusable()));\n\n\tprivate readonly _linkMenuItems = computed(() =>\n\t\tthis.menuItems().filter((i) => i.focusable() instanceof BrnNavigationMenuLink),\n\t);\n\n\tprivate readonly _keyManager = computed(() => {\n\t\treturn new FocusKeyManager<FocusableOption>(this._triggersAndLinks())\n\t\t\t.withHorizontalOrientation(this.direction())\n\t\t\t.withHomeAndEnd()\n\t\t\t.withPageUpDown()\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((e) => !!e.disabled);\n\t});\n\n\tprivate readonly _reset$ = toObservable(this.value).pipe(\n\t\tpairwise(),\n\t\tfilter(([prev, curr]) => curr === undefined && curr !== prev),\n\t\tmap(() => undefined),\n\t);\n\n\tprivate readonly _hovered$ = merge(\n\t\tcreateHoverObservable(this.el.nativeElement, this._zone, this._destroy$).pipe(map((e) => e.hover)),\n\t\tthis._reset$,\n\t).pipe(startWith(undefined));\n\n\tprivate readonly _contentHovered$ = merge(\n\t\ttoObservable(this._navAndSubnavMenuItems).pipe(\n\t\t\tswitchMap((menuItems) => merge(...menuItems.map((mi) => mi.contentHovered$))),\n\t\t),\n\t\tthis._reset$,\n\t).pipe(startWith(undefined));\n\n\tpublic readonly previousValue = computedPrevious(this.value);\n\n\tpublic readonly context = computed(() => ({ orientation: this.orientation(), dir: this.direction() }));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst isOpen = this.value() !== undefined;\n\t\t\tconst hasSkipDelayDuration = this.skipDelayDuration() > 0;\n\n\t\t\tif (isOpen) {\n\t\t\t\tclearTimeout(this._skipDelayTimerRef);\n\t\t\t\tif (hasSkipDelayDuration) this._isOpenDelayed.set(false);\n\t\t\t} else {\n\t\t\t\tclearTimeout(this._skipDelayTimerRef);\n\t\t\t\tthis._skipDelayTimerRef = setTimeout(() => {\n\t\t\t\t\tthis._isOpenDelayed.set(true);\n\t\t\t\t}, this.skipDelayDuration());\n\t\t\t}\n\t\t});\n\n\t\tcombineLatest([this._hovered$, this._contentHovered$, this._anyTriggerHovered$])\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0),\n\t\t\t\tfilter(([hovered, contentHovered]) => !(hovered === undefined && contentHovered === undefined)),\n\t\t\t\tswitchMap(([hovered, contentHovered, triggerHovered]) => {\n\t\t\t\t\tconst shouldClose = !hovered && !contentHovered && !triggerHovered;\n\t\t\t\t\t// Add delay before closing in click mode to allow for sibling hover transitions\n\t\t\t\t\tif (shouldClose && this.openOn() === 'click') {\n\t\t\t\t\t\treturn of([hovered, contentHovered, triggerHovered] as const).pipe(delay(150));\n\t\t\t\t\t}\n\t\t\t\t\treturn of([hovered, contentHovered, triggerHovered] as const);\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this._destroy$),\n\t\t\t)\n\t\t\t.subscribe(([hovered, contentHovered, triggerHovered]) => {\n\t\t\t\tif (!hovered && !contentHovered && !triggerHovered) {\n\t\t\t\t\tthis.value.set(undefined);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\t/**\n\t * Called by triggers to report their hover state for coordination.\n\t * @internal\n\t */\n\tpublic setTriggerHovered(hovered: boolean) {\n\t\tthis._anyTriggerHovered$.next(hovered);\n\t}\n\n\tpublic isLink(id?: string): boolean {\n\t\treturn !!this._linkMenuItems().find((item) => item.id() === id);\n\t}\n\n\tpublic setActiveItem(item: FocusableOption) {\n\t\tthis._keyManager().setActiveItem(item);\n\t}\n\n\tprotected handleKeydown(event: KeyboardEvent) {\n\t\tthis._keyManager().onKeydown(event);\n\t}\n\n\tngOnDestroy() {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t\tclearTimeout(this._skipDelayTimerRef);\n\t}\n}\n","import { computed, Directive, effect, inject, Renderer2, TemplateRef, untracked } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BrnNavigationMenuContentService } from './brn-navigation-menu-content.service';\nimport { injectBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\nimport { BrnParentNavMenu, provideBrnParentNavMenu } from './brn-parent-nav-menu.token';\n\n@Directive({\n\tselector: '[brnNavigationMenuContent]',\n\tproviders: [provideBrnParentNavMenu(() => ({ subNavVisible$: new Subject<boolean>() }))],\n})\nexport class BrnNavigationMenuContent {\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _navigationMenuItem = injectBrnNavigationMenuItem();\n\tprivate readonly _contentService = inject(BrnNavigationMenuContentService);\n\tprivate readonly _tpl = inject(TemplateRef);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _subNavContext = inject(BrnParentNavMenu);\n\n\tprivate readonly _navMenuValue = this._navigationMenu.value;\n\tprivate readonly _prevNavMenuValue = this._navigationMenu.previousValue;\n\n\tprivate readonly _id = this._navigationMenuItem.id;\n\tprivate readonly _isActive = this._navigationMenuItem.isActive;\n\tprivate readonly _wasActive = this._navigationMenuItem.wasActive;\n\tprivate readonly _state = this._navigationMenuItem.state;\n\n\tprivate readonly _contentEl = this._contentService.contentEl;\n\n\tprivate readonly _menuItemsIds = this._navigationMenu.menuItemIds;\n\tprivate readonly _orientation = computed(() => this._navigationMenu.context().orientation);\n\tprivate readonly _dir = computed(() => this._navigationMenu.context().dir);\n\n\tconstructor() {\n\t\tif (!this._tpl) return;\n\t\tthis._navigationMenuItem.contentTemplate.set(this._tpl);\n\t\tthis._navigationMenuItem.subNavVisible$.next(this._subNavContext.subNavVisible$);\n\n\t\teffect(() => {\n\t\t\tconst el = this._contentEl();\n\t\t\tif (el) {\n\t\t\t\tthis._renderer.setAttribute(el, 'tabindex', '0');\n\t\t\t\tthis._renderer.setAttribute(el, 'data-slot', 'navigation-menu-content');\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst el = this._contentEl();\n\t\t\tif (el) {\n\t\t\t\tthis._renderer.setAttribute(el, 'data-state', this._state());\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst el = this._contentEl();\n\t\t\tif (el) {\n\t\t\t\tthis._renderer.setAttribute(el, 'data-orientation', this._orientation());\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst isActive = this._isActive();\n\t\t\tconst wasActive = this._wasActive();\n\t\t\tconst dir = this._dir();\n\t\t\tconst orientation = this._orientation();\n\n\t\t\tconst el = untracked(this._contentEl);\n\t\t\tif (!el) return;\n\n\t\t\tconst id = this._id();\n\t\t\tconst menuItemsIds =\n\t\t\t\tdir === 'rtl' && orientation === 'horizontal' ? this._menuItemsIds().slice().reverse() : this._menuItemsIds();\n\n\t\t\tif (isActive) {\n\t\t\t\tconst prevNavMenuValue = this._prevNavMenuValue();\n\t\t\t\tconst isPrevLink = untracked(() => this._navigationMenu.isLink(prevNavMenuValue));\n\n\t\t\t\tif (prevNavMenuValue && !isPrevLink) {\n\t\t\t\t\tconst motion = menuItemsIds.indexOf(id) > menuItemsIds.indexOf(prevNavMenuValue) ? 'from-end' : 'from-start';\n\t\t\t\t\tthis._renderer.setAttribute(el, 'data-motion', motion);\n\t\t\t\t}\n\t\t\t} else if (wasActive) {\n\t\t\t\tconst navMenuValue = this._navMenuValue();\n\t\t\t\tconst isLink = untracked(() => this._navigationMenu.isLink(navMenuValue));\n\t\t\t\tif (!navMenuValue || isLink) return;\n\n\t\t\t\tconst motion = menuItemsIds.indexOf(id) > menuItemsIds.indexOf(navMenuValue) ? 'to-end' : 'to-start';\n\t\t\t\tthis._renderer.setAttribute(el, 'data-motion', motion);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\n@Directive({\n\tselector: 'ul[brnNavigationMenuList]',\n\thost: {\n\t\t'[attr.data-orientation]': '_orientation()',\n\t\t'data-slot': 'navigation-menu-list',\n\t},\n})\nexport class BrnNavigationMenuList {\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\n\tprotected readonly _orientation = computed(() => this._navigationMenu.context().orientation);\n}\n","import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tcomputed,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tNgZone,\n\tOnDestroy,\n\tOnInit,\n\tPLATFORM_ID,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { createHoverObservable, isElement } from '@spartan-ng/brain/core';\nimport { fromEvent, merge, Observable, of, Subject } from 'rxjs';\nimport {\n\tdebounceTime,\n\tdelay,\n\tdistinctUntilChanged,\n\tfilter,\n\tmap,\n\tshare,\n\tswitchMap,\n\ttakeUntil,\n\ttap,\n} from 'rxjs/operators';\nimport { BrnNavigationMenuContentService } from './brn-navigation-menu-content.service';\nimport { BrnNavigationMenuItem } from './brn-navigation-menu-item';\nimport { provideBrnNavigationMenuFocusable } from './brn-navigation-menu-item-focusable.token';\nimport { injectBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\ninterface TriggerEvent {\n\ttype: 'click' | 'hover' | 'set';\n\tvisible: boolean;\n\trelatedTarget?: EventTarget | null;\n}\n\n@Directive({\n\tselector: 'button[brnNavigationMenuTrigger]',\n\tproviders: [provideBrnNavigationMenuFocusable(BrnNavigationMenuTrigger)],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnButton,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'(keydown.escape)': 'onEscape($event)',\n\t\t'(keydown.tab)': 'onTab($event)',\n\t\t'(focus)': 'handleFocus()',\n\t\t'[id]': '_id',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.aria-expanded]': '_isActive()',\n\t\t'[attr.aria-controls]': '_contentId',\n\t\t'data-slot': 'navigation-menu-trigger',\n\t},\n})\nexport class BrnNavigationMenuTrigger implements OnInit, OnDestroy, FocusableOption {\n\tprivate static _id = 0;\n\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _navigationMenuItem = injectBrnNavigationMenuItem();\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _el = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _contentService = inject(BrnNavigationMenuContentService);\n\n\tprotected readonly _id = `brn-navigation-menu-trigger-${++BrnNavigationMenuTrigger._id}`;\n\n\tprivate readonly _parentNavMenu = this._navigationMenu.parentNavMenu;\n\n\tprotected readonly _isActive = this._navigationMenuItem.isActive;\n\n\tprotected readonly _contentId = this._contentService.id;\n\n\tprotected readonly _state = this._navigationMenuItem.state;\n\n\tprivate readonly _dir = computed(() => this._navigationMenu.context().dir);\n\n\tprivate readonly _orientation = computed(() => this._navigationMenu.context().orientation);\n\n\tprivate readonly _isOpenDelayed = this._navigationMenu.isOpenDelayed;\n\n\tprivate readonly _delayDuration = this._navigationMenu.delayDuration;\n\n\tprivate readonly _contentTemplate = this._navigationMenuItem.contentTemplate;\n\n\tprivate readonly _isSubNavVisible = toSignal(this._navigationMenuItem.subNavVisible$.pipe(switchMap((c) => c)), {\n\t\tinitialValue: false,\n\t});\n\n\tprivate readonly _isActive$: Observable<TriggerEvent> = toObservable(this._navigationMenuItem.isActive).pipe(\n\t\tmap((value) => ({ type: 'set', visible: value })),\n\t);\n\n\tprivate readonly _clicked$: Observable<TriggerEvent> = fromEvent(this._el.nativeElement, 'click').pipe(\n\t\tmap(() => !this._navigationMenuItem.isActive()),\n\t\tmap((value) => ({ type: 'click', visible: value })),\n\t);\n\n\tprivate readonly _hovered$: Observable<TriggerEvent> = merge(\n\t\tcreateHoverObservable(this._el.nativeElement, this._zone, this._destroy$),\n\t\tthis._contentService.hovered$.pipe(map((v) => ({ hover: v, relatedTarget: null }))),\n\t).pipe(\n\t\t// Report hover state to parent for coordination\n\t\ttap((e) => this._navigationMenu.setTriggerHovered(e.hover)),\n\t\t// Hover event is NOT allowed when a sub-navigation is currently visible, AND the current hover event is false.\n\t\tfilter((e) => !(this._isSubNavVisible() && !e.hover)),\n\t\t// Block hover-open when openOn='click' and no menu is currently open\n\t\tfilter((e) => {\n\t\t\tconst openOn = this._navigationMenu.openOn();\n\t\t\tconst isMenuOpen = this._navigationMenu.value() !== undefined;\n\t\t\t// Allow if: openOn is 'hover', OR menu is already open, OR this is hover-out\n\t\t\treturn openOn === 'hover' || isMenuOpen || !e.hover;\n\t\t}),\n\t\t// Add stabilization delay for hover-out in click mode to prevent race conditions\n\t\tswitchMap((e) => {\n\t\t\tif (!e.hover && this._navigationMenu.openOn() === 'click') {\n\t\t\t\treturn of(e).pipe(delay(50));\n\t\t\t}\n\t\t\treturn of(e);\n\t\t}),\n\t\tmap((e) => ({ type: 'hover' as const, visible: e.hover, relatedTarget: e.relatedTarget })),\n\t);\n\n\tprivate readonly _showing$ = merge(this._isActive$, this._clicked$, this._hovered$).pipe(\n\t\tdebounceTime(0),\n\t\tdistinctUntilChanged((prev, curr) => prev.visible === curr.visible),\n\t\tswitchMap((ev) => {\n\t\t\tconst shouldDelay = ev.visible && ev.type !== 'click' && this._isOpenDelayed();\n\t\t\treturn of(ev).pipe(delay(shouldDelay ? this._delayDuration() : 0));\n\t\t}),\n\t\t// Deactivate needs to be called if the menu item content is hidden with a user click OR\n\t\t// If nav item is hovered out to a disabled sibling nav item\n\t\ttap((ev) => {\n\t\t\tif (ev.visible) {\n\t\t\t\tthis._activate();\n\t\t\t} else {\n\t\t\t\tconst shouldDeactivate =\n\t\t\t\t\t(ev.type === 'click' || !this._isHoverOnSibling(ev)) && this._navigationMenuItem.isActive();\n\n\t\t\t\tif (shouldDeactivate) {\n\t\t\t\t\tthis._deactivate();\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t\tshare(),\n\t\ttakeUntil(this._destroy$),\n\t);\n\n\tpublic get disabled() {\n\t\treturn this._navigationMenuItem.disabled();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst value = this._contentTemplate();\n\t\t\tuntracked(() => {\n\t\t\t\tif (value) {\n\t\t\t\t\tthis._contentService.setContent(value, this._vcr);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst orientation = this._orientation();\n\t\t\tuntracked(() => {\n\t\t\t\tthis._contentService.updateOrientation(orientation);\n\t\t\t});\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst dir = this._dir();\n\t\t\tuntracked(() => {\n\t\t\t\tthis._contentService.updateDirection(dir);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._contentService.setConfig({ attachTo: this._el, direction: this._dir(), orientation: this._orientation() });\n\t\tthis._showing$.pipe(takeUntil(this._destroy$)).subscribe((ev) => {\n\t\t\tif (this._parentNavMenu) {\n\t\t\t\tthis._parentNavMenu.subNavVisible$.next(ev.visible);\n\t\t\t}\n\n\t\t\tif (ev.visible) {\n\t\t\t\tif (this._isBrowser) {\n\t\t\t\t\tthis._contentService.show();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._contentService.hide();\n\t\t\t}\n\t\t});\n\n\t\tthis._contentService.escapePressed$.pipe(takeUntil(this._destroy$)).subscribe((e) => {\n\t\t\te.preventDefault();\n\t\t\tthis._el.nativeElement.focus();\n\t\t\tthis._deactivate();\n\t\t});\n\t}\n\n\tpublic ngOnDestroy() {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t}\n\n\tpublic focus(_origin?: FocusOrigin) {\n\t\tif (this._navigationMenuItem.disabled()) return;\n\n\t\tthis._el.nativeElement.focus();\n\t}\n\n\tprotected handleFocus() {\n\t\tthis._navigationMenu.setActiveItem(this);\n\t}\n\n\tprotected onTab(e: Event) {\n\t\tconst contentEl = this._contentService.contentEl();\n\n\t\tif (contentEl && !hasModifierKey(e as KeyboardEvent)) {\n\t\t\te.preventDefault();\n\t\t\tcontentEl.focus();\n\t\t}\n\t}\n\n\tprotected onEscape(e: Event) {\n\t\te.preventDefault();\n\t\tthis._deactivate();\n\t}\n\n\tprivate _activate() {\n\t\tthis._navigationMenu.value.set(this._navigationMenuItem.id());\n\t}\n\n\tprivate _deactivate() {\n\t\tthis._navigationMenu.value.set(undefined);\n\t}\n\n\tprivate _isHoverOnSibling(ev: TriggerEvent): boolean {\n\t\tif (ev.type !== 'hover' || !isElement(ev.relatedTarget)) return false;\n\n\t\tconst menuItem = this._isMenuItemOrChild(ev.relatedTarget);\n\n\t\treturn !!menuItem && !menuItem.disabled();\n\t}\n\n\tprivate _isMenuItemOrChild(node: Node): BrnNavigationMenuItem | undefined {\n\t\treturn this._navigationMenu\n\t\t\t.menuItems()\n\t\t\t.find((ref) => ref.el.nativeElement === node || ref.el.nativeElement.contains(node));\n\t}\n}\n","import { BrnNavigationMenu } from './lib/brn-navigation-menu';\nimport { BrnNavigationMenuContent } from './lib/brn-navigation-menu-content';\nimport { BrnNavigationMenuItem } from './lib/brn-navigation-menu-item';\nimport { BrnNavigationMenuLink } from './lib/brn-navigation-menu-link';\nimport { BrnNavigationMenuList } from './lib/brn-navigation-menu-list';\nimport { BrnNavigationMenuTrigger } from './lib/brn-navigation-menu-trigger';\n\nexport * from './lib/brn-navigation-menu';\nexport * from './lib/brn-navigation-menu-content';\nexport * from './lib/brn-navigation-menu-item';\nexport * from './lib/brn-navigation-menu-link';\nexport * from './lib/brn-navigation-menu-list';\nexport * from './lib/brn-navigation-menu-trigger';\n\nexport const BrnNavigationMenuImports = [\n\tBrnNavigationMenu,\n\tBrnNavigationMenuItem,\n\tBrnNavigationMenuList,\n\tBrnNavigationMenuTrigger,\n\tBrnNavigationMenuContent,\n\tBrnNavigationMenuLink,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-navigation-menu.mjs","sources":["../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-content.service.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-item-focusable.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-item.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-item.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-link.ts","../../../../libs/brain/navigation-menu/src/lib/brn-parent-nav-menu.token.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-content.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-list.ts","../../../../libs/brain/navigation-menu/src/lib/brn-navigation-menu-trigger.ts","../../../../libs/brain/navigation-menu/src/index.ts","../../../../libs/brain/navigation-menu/src/spartan-ng-brain-navigation-menu.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n\tConnectedPosition,\n\tFlexibleConnectedPositionStrategy,\n\tOverlay,\n\tOverlayConfig,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tElementRef,\n\tinject,\n\tInjectable,\n\tNgZone,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { createHoverObservable, waitForElementAnimations } from '@spartan-ng/brain/core';\nimport { BehaviorSubject, fromEvent, Observable, of, Subject } from 'rxjs';\nimport { map, share, switchMap, takeUntil } from 'rxjs/operators';\n\nexport type BrnNavigationMenuContentOptions = Partial<\n\t{\n\t\tattachTo: ElementRef<HTMLElement>;\n\t\torientation: 'horizontal' | 'vertical';\n\t} & OverlayConfig\n>;\n\nconst horizontalPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'start',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'start',\n\t\toverlayY: 'top',\n\t},\n];\n\nconst verticalPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'end',\n\t\toriginY: 'top',\n\t\toverlayX: 'start',\n\t\toverlayY: 'top',\n\t},\n\t{\n\t\toriginX: 'start',\n\t\toriginY: 'top',\n\t\toverlayX: 'end',\n\t\toverlayY: 'top',\n\t},\n];\n\n@Injectable()\nexport class BrnNavigationMenuContentService {\n\tprivate static _id = 0;\n\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _psBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _renderer = inject(Renderer2);\n\n\tprivate readonly _content = signal<TemplatePortal<unknown> | null>(null);\n\n\tpublic readonly id = `brn-navigation-menu-content-${++BrnNavigationMenuContentService._id}`;\n\n\tprivate _shouldDetach = false;\n\n\tprivate _config: BrnNavigationMenuContentOptions = {};\n\tprivate _overlayRef?: OverlayRef;\n\tprivate _positionStrategy?: FlexibleConnectedPositionStrategy;\n\tprivate _destroyed$ = new Subject<void>();\n\n\tprivate readonly _contentEl = signal<HTMLElement | undefined>(undefined);\n\tpublic readonly contentEl = this._contentEl.asReadonly();\n\n\tprivate readonly _overlayHoveredObservables$ = new BehaviorSubject<Observable<boolean> | undefined>(undefined);\n\n\tprivate readonly _overlayShiftTabObservables$ = new BehaviorSubject<Observable<KeyboardEvent> | undefined>(undefined);\n\n\tprivate readonly _overlayEscapeObservables$ = new BehaviorSubject<Observable<KeyboardEvent> | undefined>(undefined);\n\n\tpublic readonly hovered$: Observable<boolean> = this._overlayHoveredObservables$.pipe(\n\t\tswitchMap((overlayHoveredObservable) => (overlayHoveredObservable !== undefined ? overlayHoveredObservable : of())),\n\t\tshare(),\n\t);\n\n\tprivate readonly _shiftTabPressed$ = this._overlayShiftTabObservables$.pipe(\n\t\tswitchMap((contentFocused$) => (contentFocused$ !== undefined ? contentFocused$ : of())),\n\t);\n\n\tpublic readonly escapePressed$ = this._overlayEscapeObservables$.pipe(\n\t\tswitchMap((contentFocused$) => (contentFocused$ !== undefined ? contentFocused$ : of())),\n\t);\n\n\tconstructor() {\n\t\tthis._shiftTabPressed$.pipe(takeUntil(this._destroyed$)).subscribe((e) => {\n\t\t\tif (this._config.attachTo?.nativeElement) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis._config.attachTo.nativeElement.focus();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic setConfig(config: BrnNavigationMenuContentOptions) {\n\t\tthis._config = config;\n\n\t\tif (config.attachTo) {\n\t\t\tconst positions = this._getPositions(config.orientation);\n\t\t\tthis._positionStrategy = this._buildPositionStrategy(config.attachTo, positions);\n\n\t\t\tthis._config = {\n\t\t\t\t...this._config,\n\t\t\t\tpositionStrategy: this._positionStrategy,\n\t\t\t\tscrollStrategy: this._overlay.scrollStrategies.reposition(),\n\t\t\t};\n\t\t}\n\n\t\tthis._overlayRef = this._overlay.create(this._config);\n\t}\n\n\tpublic updateOrientation(orientation: 'horizontal' | 'vertical') {\n\t\tif (!this._config.attachTo) return;\n\n\t\tconst positions = this._getPositions(orientation);\n\t\tthis._positionStrategy = this._buildPositionStrategy(this._config.attachTo, positions);\n\n\t\tthis._config = {\n\t\t\t...this._config,\n\t\t\tpositionStrategy: this._positionStrategy,\n\t\t\tscrollStrategy: this._overlay.scrollStrategies.reposition(),\n\t\t};\n\n\t\tthis._overlayRef?.updatePositionStrategy(this._positionStrategy);\n\t}\n\n\tpublic updateDirection(dir: Direction) {\n\t\tthis._overlayRef?.setDirection(dir);\n\t}\n\n\tpublic setContent(value: TemplateRef<unknown>, vcr: ViewContainerRef) {\n\t\tthis._content.set(new TemplatePortal<unknown>(value, vcr));\n\n\t\tif (!this._overlayRef) {\n\t\t\tthis._overlayRef = this._overlay.create(this._config);\n\t\t}\n\t}\n\n\tpublic show() {\n\t\tconst content = this._content();\n\t\tif (!content || !this._overlayRef) return;\n\t\tthis._shouldDetach = false;\n\n\t\tthis._overlayRef?.detach();\n\t\tconst embededViewRef = this._overlayRef?.attach(content);\n\n\t\tthis._destroyed$ = new Subject<void>();\n\n\t\tconst contentEl = embededViewRef.rootNodes[0] as HTMLElement;\n\n\t\tconst attachToId = this._config.attachTo?.nativeElement.id;\n\n\t\tthis._renderer.setAttribute(contentEl, 'id', this.id);\n\t\tif (attachToId !== undefined) {\n\t\t\tthis._renderer.setAttribute(contentEl, 'aria-labelledby', attachToId);\n\t\t}\n\n\t\tthis._contentEl.set(contentEl);\n\n\t\tthis._overlayHoveredObservables$.next(\n\t\t\tcreateHoverObservable(this._overlayRef.hostElement, this._zone, this._destroyed$).pipe(map((e) => e.hover)),\n\t\t);\n\n\t\tthis._overlayShiftTabObservables$.next(\n\t\t\tfromEvent<KeyboardEvent>(contentEl, 'keydown').pipe(\n\t\t\t\tswitchMap((e) => (e.key === 'Tab' && e.shiftKey && e.target === this.contentEl() ? of(e) : of())),\n\t\t\t\ttakeUntil(this._destroyed$),\n\t\t\t),\n\t\t);\n\n\t\tthis._overlayEscapeObservables$.next(\n\t\t\tfromEvent<KeyboardEvent>(contentEl, 'keydown').pipe(\n\t\t\t\tswitchMap((e) => (e.key === 'Escape' && !hasModifierKey(e) ? of(e) : of())),\n\t\t\t\ttakeUntil(this._destroyed$),\n\t\t\t),\n\t\t);\n\t}\n\n\tpublic async hide() {\n\t\tconst contentEl = this._contentEl();\n\t\tif (!contentEl) return;\n\n\t\tthis._shouldDetach = true;\n\t\tif (!this._hasAnimation()) {\n\t\t\tthis._detach();\n\t\t}\n\n\t\tawait waitForElementAnimations(contentEl);\n\t\tthis._detach();\n\t}\n\n\tprivate readonly _detach = () => {\n\t\tif (!this._shouldDetach) return;\n\n\t\tthis._overlayRef?.detach();\n\t\tthis._contentEl.set(undefined);\n\n\t\tthis._destroyed$.next();\n\t\tthis._destroyed$.complete();\n\t\tthis._destroyed$ = new Subject<void>();\n\t};\n\n\tprivate _hasAnimation() {\n\t\tconst contentEl = this.contentEl();\n\t\tif (!contentEl) return;\n\n\t\treturn getComputedStyle(contentEl).animationName !== 'none';\n\t}\n\n\tprivate _getPositions(orientation?: 'horizontal' | 'vertical') {\n\t\treturn orientation === 'vertical' ? verticalPositions : horizontalPositions;\n\t}\n\n\tprivate _buildPositionStrategy(attachTo: ElementRef, positions: ConnectedPosition[]) {\n\t\treturn this._psBuilder\n\t\t\t.flexibleConnectedTo(attachTo)\n\t\t\t.withPositions(positions)\n\t\t\t.withDefaultOffsetY(0)\n\t\t\t.withDefaultOffsetX(0)\n\t\t\t.withPush(false);\n\t}\n}\n","import type { FocusableOption } from '@angular/cdk/a11y';\nimport { type ExistingProvider, InjectionToken, type Type } from '@angular/core';\n\nexport const BrnNavigationMenuFocusable = new InjectionToken<FocusableOption>('BrnNavigationMenuFocusable');\n\nexport function provideBrnNavigationMenuFocusable<T extends FocusableOption>(focusable: Type<T>): ExistingProvider {\n\treturn { provide: BrnNavigationMenuFocusable, useExisting: focusable };\n}\n","import { type ExistingProvider, inject, InjectionToken, type Type } from '@angular/core';\nimport type { BrnNavigationMenuItem } from './brn-navigation-menu-item';\n\nexport const BrnNavigationMenuItemToken = new InjectionToken<BrnNavigationMenuItem>('BrnNavigationMenuItemToken');\n\nexport function injectBrnNavigationMenuItem(): BrnNavigationMenuItem {\n\treturn inject(BrnNavigationMenuItemToken);\n}\n\nexport function provideBrnNavigationMenuItem(navigationMenuItem: Type<BrnNavigationMenuItem>): ExistingProvider {\n\treturn { provide: BrnNavigationMenuItemToken, useExisting: navigationMenuItem };\n}\n","import { type ExistingProvider, inject, InjectionToken, type Type } from '@angular/core';\nimport type { BrnNavigationMenu } from './brn-navigation-menu';\n\nexport const BrnNavigationMenuToken = new InjectionToken<BrnNavigationMenu>('BrnNavigationMenuToken');\n\nexport function injectBrnNavigationMenu(): BrnNavigationMenu {\n\treturn inject(BrnNavigationMenuToken);\n}\n\nexport function provideBrnNavigationMenu(navigationMenu: Type<BrnNavigationMenu>): ExistingProvider {\n\treturn { provide: BrnNavigationMenuToken, useExisting: navigationMenu };\n}\n","import { computed, contentChild, Directive, ElementRef, inject, input, signal, TemplateRef } from '@angular/core';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { Observable, Subject } from 'rxjs';\nimport { BrnNavigationMenuContentService } from './brn-navigation-menu-content.service';\nimport { BrnNavigationMenuFocusable } from './brn-navigation-menu-item-focusable.token';\nimport { provideBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\n@Directive({\n\tselector: 'li[brnNavigationMenuItem]',\n\tproviders: [provideBrnNavigationMenuItem(BrnNavigationMenuItem), BrnNavigationMenuContentService],\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'[attr.data-disabled]': 'disabled() || null',\n\t\t'data-slot': 'navigation-menu-item',\n\t},\n})\nexport class BrnNavigationMenuItem {\n\tprivate static _id = 0;\n\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _contentService = inject(BrnNavigationMenuContentService);\n\n\tpublic readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly navMenuElRef = this._navigationMenu.el;\n\n\t/** The id of the navigation menu item */\n\tpublic readonly id = input<string>(`brn-navigation-menu-item-${++BrnNavigationMenuItem._id}`);\n\n\tpublic readonly isActive = computed(() => this.id() === this._navigationMenu.value());\n\n\tpublic readonly wasActive = computed(() => this.id() === this._navigationMenu.previousValue());\n\n\tpublic readonly state = computed(() => (this.isActive() ? 'open' : 'closed'));\n\n\tpublic readonly contentTemplate = signal<TemplateRef<unknown> | null>(null);\n\n\tpublic readonly contentHovered$ = this._contentService.hovered$;\n\n\tpublic readonly subNavVisible$ = new Subject<Observable<boolean>>();\n\n\tpublic readonly focusable = contentChild.required(BrnNavigationMenuFocusable);\n\n\tprivate readonly _triggerOrLinkBtn = contentChild.required(BrnNavigationMenuFocusable, { read: BrnButton });\n\n\tpublic readonly disabled = computed(() => this._triggerOrLinkBtn().disabled());\n}\n","import type { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { provideBrnNavigationMenuFocusable } from './brn-navigation-menu-item-focusable.token';\nimport { injectBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\n@Directive({\n\tselector: 'a[brnNavigationMenuLink]',\n\tproviders: [provideBrnNavigationMenuFocusable(BrnNavigationMenuLink)],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnButton,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'(click)': 'onClick()',\n\t\t'(mouseenter)': 'activate()',\n\t\t'(focus)': 'handleFocus()',\n\t\t'[attr.data-active]': '_isActive() ? \"true\" : undefined',\n\t\t'[attr.aria-current]': '_isActive() ? \"page\" : undefined',\n\t\t'data-slot': 'navigation-menu-link',\n\t},\n})\nexport class BrnNavigationMenuLink implements FocusableOption {\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _navigationMenuItem = injectBrnNavigationMenuItem();\n\tprivate readonly _el = inject<ElementRef<HTMLAnchorElement>>(ElementRef);\n\n\t// Returns false if this BrnNavigationMenuLink is used \"standalone\", meaning it doesn't have a parent BrnNavigationMenuItem element.\n\tprivate readonly _hasParentNavMenuItem =\n\t\tthis._el.nativeElement.parentElement === this._navigationMenuItem.el.nativeElement;\n\n\t/**\n\t * Used to identify the link as the currently active page.\n\t */\n\tpublic readonly active = input<boolean | undefined, BooleanInput>(undefined, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _isActive = computed(() => {\n\t\tconst active = this.active();\n\t\tif (active !== undefined) return active;\n\n\t\tif (!this._hasParentNavMenuItem) return false;\n\n\t\treturn this._navigationMenuItem.isActive();\n\t});\n\n\tpublic get disabled() {\n\t\treturn this._navigationMenuItem.disabled();\n\t}\n\n\tpublic focus(_origin?: FocusOrigin) {\n\t\tif (!this._hasParentNavMenuItem || this._navigationMenuItem.disabled()) return;\n\n\t\tthis._el.nativeElement.focus();\n\t}\n\n\tprotected handleFocus() {\n\t\tif (!this._hasParentNavMenuItem) return;\n\t\tthis._navigationMenu.setActiveItem(this);\n\t}\n\n\tprotected onClick() {\n\t\tif (!this._hasParentNavMenuItem) return;\n\t\tthis._navigationMenu.value.set(this._navigationMenuItem.id());\n\t}\n\n\tprotected activate() {\n\t\tif (!this._hasParentNavMenuItem) return;\n\n\t\t// Only activate on hover if openOn is 'hover' or menu is already open\n\t\tconst openOn = this._navigationMenu.openOn();\n\t\tconst isMenuOpen = this._navigationMenu.value() !== undefined;\n\t\tif (openOn === 'click' && !isMenuOpen) return;\n\n\t\tthis._navigationMenu.value.set(this._navigationMenuItem.id());\n\t}\n}\n","import { type FactoryProvider, inject, InjectionToken } from '@angular/core';\nimport type { Subject } from 'rxjs';\n\nexport interface BrnParentNavMenu {\n\tsubNavVisible$: Subject<boolean>;\n}\n\nexport const BrnParentNavMenu = new InjectionToken<BrnParentNavMenu>('BrnParentNavMenu');\n\nexport function injectBrnParentNavMenu(): BrnParentNavMenu | null {\n\treturn inject(BrnParentNavMenu, { optional: true });\n}\n\nexport function provideBrnParentNavMenu(parentNavMenu: () => BrnParentNavMenu): FactoryProvider {\n\treturn { provide: BrnParentNavMenu, useFactory: parentNavMenu };\n}\n","import { FocusableOption, FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n\tcomputed,\n\tcontentChildren,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tmodel,\n\tNgZone,\n\tOnDestroy,\n\tsignal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { computedPrevious, createHoverObservable } from '@spartan-ng/brain/core';\nimport { BehaviorSubject, combineLatest, merge, of, Subject } from 'rxjs';\nimport { debounceTime, delay, filter, map, pairwise, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { BrnNavigationMenuItem } from './brn-navigation-menu-item';\nimport { BrnNavigationMenuLink } from './brn-navigation-menu-link';\nimport { provideBrnNavigationMenu } from './brn-navigation-menu.token';\nimport { injectBrnParentNavMenu } from './brn-parent-nav-menu.token';\n\nfunction areArraysSameByElRef(arr1: unknown[], arr2: unknown[]) {\n\tif (arr1.length !== arr2.length) return false;\n\treturn arr1.every((item, index) => item === arr2[index]);\n}\n\n@Directive({\n\tselector: 'nav[brnNavigationMenu]',\n\tproviders: [provideBrnNavigationMenu(BrnNavigationMenu)],\n\thost: {\n\t\t'(keydown)': 'handleKeydown($event)',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t\t'[attr.dir]': 'direction()',\n\t\t'aria-label': 'Main',\n\t\t'data-slot': 'navigation-menu',\n\t},\n})\nexport class BrnNavigationMenu implements OnDestroy {\n\tprivate readonly _dir = inject(Directionality);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _anyTriggerHovered$ = new BehaviorSubject<boolean>(false);\n\n\tpublic readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\tpublic readonly parentNavMenu = injectBrnParentNavMenu();\n\n\t/**\n\t * The controlled value of the menu item to activate.\n\t */\n\tpublic readonly value = model<string>();\n\n\t/**\n\t * The duration from when the mouse enters a trigger until the content opens.\n\t */\n\tpublic readonly delayDuration = input<number>(200);\n\n\t/**\n\t * How much time a user has to enter another trigger without incurring a delay again.\n\t */\n\tpublic readonly skipDelayDuration = input<number>(300);\n\n\t/**\n\t * Controls whether the menu opens on hover or click.\n\t * When 'click', initial open requires a click, but hover still switches between items once open.\n\t */\n\tpublic readonly openOn = input<'hover' | 'click'>('hover');\n\n\t/** internal **/\n\tpublic readonly direction = this._dir.valueSignal;\n\n\t/**\n\t * The orientation of the menu.\n\t */\n\tpublic readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n\tprivate readonly _isOpenDelayed = signal(true);\n\tpublic readonly isOpenDelayed = this._isOpenDelayed.asReadonly();\n\n\tprivate _skipDelayTimerRef: ReturnType<typeof setTimeout> | undefined;\n\n\tprivate readonly _navAndSubnavMenuItems = contentChildren(BrnNavigationMenuItem, { descendants: true });\n\n\tpublic readonly menuItems = computed(\n\t\t() => this._navAndSubnavMenuItems().filter((mi) => mi.navMenuElRef === this.el),\n\t\t{\n\t\t\tequal: areArraysSameByElRef,\n\t\t},\n\t);\n\n\tpublic readonly menuItemIds = computed(() => this.menuItems().map((mi) => mi.id()));\n\n\tprivate readonly _triggersAndLinks = computed(() => this.menuItems().map((mi) => mi.focusable()));\n\n\tprivate readonly _linkMenuItems = computed(() =>\n\t\tthis.menuItems().filter((i) => i.focusable() instanceof BrnNavigationMenuLink),\n\t);\n\n\tprivate readonly _keyManager = computed(() => {\n\t\treturn new FocusKeyManager<FocusableOption>(this._triggersAndLinks())\n\t\t\t.withHorizontalOrientation(this.direction())\n\t\t\t.withHomeAndEnd()\n\t\t\t.withPageUpDown()\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((e) => !!e.disabled);\n\t});\n\n\tprivate readonly _reset$ = toObservable(this.value).pipe(\n\t\tpairwise(),\n\t\tfilter(([prev, curr]) => curr === undefined && curr !== prev),\n\t\tmap(() => undefined),\n\t);\n\n\tprivate readonly _hovered$ = merge(\n\t\tcreateHoverObservable(this.el.nativeElement, this._zone, this._destroy$).pipe(map((e) => e.hover)),\n\t\tthis._reset$,\n\t).pipe(startWith(undefined));\n\n\tprivate readonly _contentHovered$ = merge(\n\t\ttoObservable(this._navAndSubnavMenuItems).pipe(\n\t\t\tswitchMap((menuItems) => merge(...menuItems.map((mi) => mi.contentHovered$))),\n\t\t),\n\t\tthis._reset$,\n\t).pipe(startWith(undefined));\n\n\tpublic readonly previousValue = computedPrevious(this.value);\n\n\tpublic readonly context = computed(() => ({ orientation: this.orientation(), dir: this.direction() }));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst isOpen = this.value() !== undefined;\n\t\t\tconst hasSkipDelayDuration = this.skipDelayDuration() > 0;\n\n\t\t\tif (isOpen) {\n\t\t\t\tclearTimeout(this._skipDelayTimerRef);\n\t\t\t\tif (hasSkipDelayDuration) this._isOpenDelayed.set(false);\n\t\t\t} else {\n\t\t\t\tclearTimeout(this._skipDelayTimerRef);\n\t\t\t\tthis._skipDelayTimerRef = setTimeout(() => {\n\t\t\t\t\tthis._isOpenDelayed.set(true);\n\t\t\t\t}, this.skipDelayDuration());\n\t\t\t}\n\t\t});\n\n\t\tcombineLatest([this._hovered$, this._contentHovered$, this._anyTriggerHovered$])\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0),\n\t\t\t\tfilter(([hovered, contentHovered]) => !(hovered === undefined && contentHovered === undefined)),\n\t\t\t\tswitchMap(([hovered, contentHovered, triggerHovered]) => {\n\t\t\t\t\tconst shouldClose = !hovered && !contentHovered && !triggerHovered;\n\t\t\t\t\t// Add delay before closing in click mode to allow for sibling hover transitions\n\t\t\t\t\tif (shouldClose && this.openOn() === 'click') {\n\t\t\t\t\t\treturn of([hovered, contentHovered, triggerHovered] as const).pipe(delay(150));\n\t\t\t\t\t}\n\t\t\t\t\treturn of([hovered, contentHovered, triggerHovered] as const);\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this._destroy$),\n\t\t\t)\n\t\t\t.subscribe(([hovered, contentHovered, triggerHovered]) => {\n\t\t\t\tif (!hovered && !contentHovered && !triggerHovered) {\n\t\t\t\t\tthis.value.set(undefined);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\t/**\n\t * Called by triggers to report their hover state for coordination.\n\t * @internal\n\t */\n\tpublic setTriggerHovered(hovered: boolean) {\n\t\tthis._anyTriggerHovered$.next(hovered);\n\t}\n\n\tpublic isLink(id?: string): boolean {\n\t\treturn !!this._linkMenuItems().find((item) => item.id() === id);\n\t}\n\n\tpublic setActiveItem(item: FocusableOption) {\n\t\tthis._keyManager().setActiveItem(item);\n\t}\n\n\tprotected handleKeydown(event: KeyboardEvent) {\n\t\tthis._keyManager().onKeydown(event);\n\t}\n\n\tngOnDestroy() {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t\tclearTimeout(this._skipDelayTimerRef);\n\t}\n}\n","import { computed, Directive, effect, inject, Renderer2, TemplateRef, untracked } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BrnNavigationMenuContentService } from './brn-navigation-menu-content.service';\nimport { injectBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\nimport { BrnParentNavMenu, provideBrnParentNavMenu } from './brn-parent-nav-menu.token';\n\n@Directive({\n\tselector: '[brnNavigationMenuContent]',\n\tproviders: [provideBrnParentNavMenu(() => ({ subNavVisible$: new Subject<boolean>() }))],\n})\nexport class BrnNavigationMenuContent {\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _navigationMenuItem = injectBrnNavigationMenuItem();\n\tprivate readonly _contentService = inject(BrnNavigationMenuContentService);\n\tprivate readonly _tpl = inject(TemplateRef);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _subNavContext = inject(BrnParentNavMenu);\n\n\tprivate readonly _navMenuValue = this._navigationMenu.value;\n\tprivate readonly _prevNavMenuValue = this._navigationMenu.previousValue;\n\n\tprivate readonly _id = this._navigationMenuItem.id;\n\tprivate readonly _isActive = this._navigationMenuItem.isActive;\n\tprivate readonly _wasActive = this._navigationMenuItem.wasActive;\n\tprivate readonly _state = this._navigationMenuItem.state;\n\n\tprivate readonly _contentEl = this._contentService.contentEl;\n\n\tprivate readonly _menuItemsIds = this._navigationMenu.menuItemIds;\n\tprivate readonly _orientation = computed(() => this._navigationMenu.context().orientation);\n\tprivate readonly _dir = computed(() => this._navigationMenu.context().dir);\n\n\tconstructor() {\n\t\tif (!this._tpl) return;\n\t\tthis._navigationMenuItem.contentTemplate.set(this._tpl);\n\t\tthis._navigationMenuItem.subNavVisible$.next(this._subNavContext.subNavVisible$);\n\n\t\teffect(() => {\n\t\t\tconst el = this._contentEl();\n\t\t\tif (el) {\n\t\t\t\tthis._renderer.setAttribute(el, 'tabindex', '0');\n\t\t\t\tthis._renderer.setAttribute(el, 'data-slot', 'navigation-menu-content');\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst el = this._contentEl();\n\t\t\tif (el) {\n\t\t\t\tthis._renderer.setAttribute(el, 'data-state', this._state());\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst el = this._contentEl();\n\t\t\tif (el) {\n\t\t\t\tthis._renderer.setAttribute(el, 'data-orientation', this._orientation());\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst isActive = this._isActive();\n\t\t\tconst wasActive = this._wasActive();\n\t\t\tconst dir = this._dir();\n\t\t\tconst orientation = this._orientation();\n\n\t\t\tconst el = untracked(this._contentEl);\n\t\t\tif (!el) return;\n\n\t\t\tconst id = this._id();\n\t\t\tconst menuItemsIds =\n\t\t\t\tdir === 'rtl' && orientation === 'horizontal' ? this._menuItemsIds().slice().reverse() : this._menuItemsIds();\n\n\t\t\tif (isActive) {\n\t\t\t\tconst prevNavMenuValue = this._prevNavMenuValue();\n\t\t\t\tconst isPrevLink = untracked(() => this._navigationMenu.isLink(prevNavMenuValue));\n\n\t\t\t\tif (prevNavMenuValue && !isPrevLink) {\n\t\t\t\t\tconst motion = menuItemsIds.indexOf(id) > menuItemsIds.indexOf(prevNavMenuValue) ? 'from-end' : 'from-start';\n\t\t\t\t\tthis._renderer.setAttribute(el, 'data-motion', motion);\n\t\t\t\t}\n\t\t\t} else if (wasActive) {\n\t\t\t\tconst navMenuValue = this._navMenuValue();\n\t\t\t\tconst isLink = untracked(() => this._navigationMenu.isLink(navMenuValue));\n\t\t\t\tif (!navMenuValue || isLink) return;\n\n\t\t\t\tconst motion = menuItemsIds.indexOf(id) > menuItemsIds.indexOf(navMenuValue) ? 'to-end' : 'to-start';\n\t\t\t\tthis._renderer.setAttribute(el, 'data-motion', motion);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\n@Directive({\n\tselector: 'ul[brnNavigationMenuList]',\n\thost: {\n\t\t'[attr.data-orientation]': '_orientation()',\n\t\t'data-slot': 'navigation-menu-list',\n\t},\n})\nexport class BrnNavigationMenuList {\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\n\tprotected readonly _orientation = computed(() => this._navigationMenu.context().orientation);\n}\n","import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tcomputed,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tNgZone,\n\tOnDestroy,\n\tOnInit,\n\tPLATFORM_ID,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { createHoverObservable, isElement } from '@spartan-ng/brain/core';\nimport { fromEvent, merge, Observable, of, Subject } from 'rxjs';\nimport {\n\tdebounceTime,\n\tdelay,\n\tdistinctUntilChanged,\n\tfilter,\n\tmap,\n\tshare,\n\tswitchMap,\n\ttakeUntil,\n\ttap,\n} from 'rxjs/operators';\nimport { BrnNavigationMenuContentService } from './brn-navigation-menu-content.service';\nimport { BrnNavigationMenuItem } from './brn-navigation-menu-item';\nimport { provideBrnNavigationMenuFocusable } from './brn-navigation-menu-item-focusable.token';\nimport { injectBrnNavigationMenuItem } from './brn-navigation-menu-item.token';\nimport { injectBrnNavigationMenu } from './brn-navigation-menu.token';\n\ninterface TriggerEvent {\n\ttype: 'click' | 'hover' | 'set';\n\tvisible: boolean;\n\trelatedTarget?: EventTarget | null;\n}\n\n@Directive({\n\tselector: 'button[brnNavigationMenuTrigger]',\n\tproviders: [provideBrnNavigationMenuFocusable(BrnNavigationMenuTrigger)],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnButton,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'(keydown.escape)': 'onEscape($event)',\n\t\t'(keydown.tab)': 'onTab($event)',\n\t\t'(focus)': 'handleFocus()',\n\t\t'[id]': '_id',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.aria-expanded]': '_isActive()',\n\t\t'[attr.aria-controls]': '_contentId',\n\t\t'data-slot': 'navigation-menu-trigger',\n\t},\n})\nexport class BrnNavigationMenuTrigger implements OnInit, OnDestroy, FocusableOption {\n\tprivate static _id = 0;\n\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\tprivate readonly _navigationMenu = injectBrnNavigationMenu();\n\tprivate readonly _navigationMenuItem = injectBrnNavigationMenuItem();\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _el = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _contentService = inject(BrnNavigationMenuContentService);\n\n\tprotected readonly _id = `brn-navigation-menu-trigger-${++BrnNavigationMenuTrigger._id}`;\n\n\tprivate readonly _parentNavMenu = this._navigationMenu.parentNavMenu;\n\n\tprotected readonly _isActive = this._navigationMenuItem.isActive;\n\n\tprotected readonly _contentId = this._contentService.id;\n\n\tprotected readonly _state = this._navigationMenuItem.state;\n\n\tprivate readonly _dir = computed(() => this._navigationMenu.context().dir);\n\n\tprivate readonly _orientation = computed(() => this._navigationMenu.context().orientation);\n\n\tprivate readonly _isOpenDelayed = this._navigationMenu.isOpenDelayed;\n\n\tprivate readonly _delayDuration = this._navigationMenu.delayDuration;\n\n\tprivate readonly _contentTemplate = this._navigationMenuItem.contentTemplate;\n\n\tprivate readonly _isSubNavVisible = toSignal(this._navigationMenuItem.subNavVisible$.pipe(switchMap((c) => c)), {\n\t\tinitialValue: false,\n\t});\n\n\tprivate readonly _isActive$: Observable<TriggerEvent> = toObservable(this._navigationMenuItem.isActive).pipe(\n\t\tmap((value) => ({ type: 'set', visible: value })),\n\t);\n\n\tprivate readonly _clicked$: Observable<TriggerEvent> = fromEvent(this._el.nativeElement, 'click').pipe(\n\t\tmap(() => !this._navigationMenuItem.isActive()),\n\t\tmap((value) => ({ type: 'click', visible: value })),\n\t);\n\n\tprivate readonly _hovered$: Observable<TriggerEvent> = merge(\n\t\tcreateHoverObservable(this._el.nativeElement, this._zone, this._destroy$),\n\t\tthis._contentService.hovered$.pipe(map((v) => ({ hover: v, relatedTarget: null }))),\n\t).pipe(\n\t\t// Report hover state to parent for coordination\n\t\ttap((e) => this._navigationMenu.setTriggerHovered(e.hover)),\n\t\t// Hover event is NOT allowed when a sub-navigation is currently visible, AND the current hover event is false.\n\t\tfilter((e) => !(this._isSubNavVisible() && !e.hover)),\n\t\t// Block hover-open when openOn='click' and no menu is currently open\n\t\tfilter((e) => {\n\t\t\tconst openOn = this._navigationMenu.openOn();\n\t\t\tconst isMenuOpen = this._navigationMenu.value() !== undefined;\n\t\t\t// Allow if: openOn is 'hover', OR menu is already open, OR this is hover-out\n\t\t\treturn openOn === 'hover' || isMenuOpen || !e.hover;\n\t\t}),\n\t\t// Add stabilization delay for hover-out in click mode to prevent race conditions\n\t\tswitchMap((e) => {\n\t\t\tif (!e.hover && this._navigationMenu.openOn() === 'click') {\n\t\t\t\treturn of(e).pipe(delay(50));\n\t\t\t}\n\t\t\treturn of(e);\n\t\t}),\n\t\tmap((e) => ({ type: 'hover' as const, visible: e.hover, relatedTarget: e.relatedTarget })),\n\t);\n\n\tprivate readonly _showing$ = merge(this._isActive$, this._clicked$, this._hovered$).pipe(\n\t\tdebounceTime(0),\n\t\tdistinctUntilChanged((prev, curr) => prev.visible === curr.visible),\n\t\tswitchMap((ev) => {\n\t\t\tconst shouldDelay = ev.visible && ev.type !== 'click' && this._isOpenDelayed();\n\t\t\treturn of(ev).pipe(delay(shouldDelay ? this._delayDuration() : 0));\n\t\t}),\n\t\t// Deactivate needs to be called if the menu item content is hidden with a user click OR\n\t\t// If nav item is hovered out to a disabled sibling nav item\n\t\ttap((ev) => {\n\t\t\tif (ev.visible) {\n\t\t\t\tthis._activate();\n\t\t\t} else {\n\t\t\t\tconst shouldDeactivate =\n\t\t\t\t\t(ev.type === 'click' || !this._isHoverOnSibling(ev)) && this._navigationMenuItem.isActive();\n\n\t\t\t\tif (shouldDeactivate) {\n\t\t\t\t\tthis._deactivate();\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t\tshare(),\n\t\ttakeUntil(this._destroy$),\n\t);\n\n\tpublic get disabled() {\n\t\treturn this._navigationMenuItem.disabled();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst value = this._contentTemplate();\n\t\t\tuntracked(() => {\n\t\t\t\tif (value) {\n\t\t\t\t\tthis._contentService.setContent(value, this._vcr);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst orientation = this._orientation();\n\t\t\tuntracked(() => {\n\t\t\t\tthis._contentService.updateOrientation(orientation);\n\t\t\t});\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst dir = this._dir();\n\t\t\tuntracked(() => {\n\t\t\t\tthis._contentService.updateDirection(dir);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._contentService.setConfig({ attachTo: this._el, direction: this._dir(), orientation: this._orientation() });\n\t\tthis._showing$.pipe(takeUntil(this._destroy$)).subscribe((ev) => {\n\t\t\tif (this._parentNavMenu) {\n\t\t\t\tthis._parentNavMenu.subNavVisible$.next(ev.visible);\n\t\t\t}\n\n\t\t\tif (ev.visible) {\n\t\t\t\tif (this._isBrowser) {\n\t\t\t\t\tthis._contentService.show();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._contentService.hide();\n\t\t\t}\n\t\t});\n\n\t\tthis._contentService.escapePressed$.pipe(takeUntil(this._destroy$)).subscribe((e) => {\n\t\t\te.preventDefault();\n\t\t\tthis._el.nativeElement.focus();\n\t\t\tthis._deactivate();\n\t\t});\n\t}\n\n\tpublic ngOnDestroy() {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t}\n\n\tpublic focus(_origin?: FocusOrigin) {\n\t\tif (this._navigationMenuItem.disabled()) return;\n\n\t\tthis._el.nativeElement.focus();\n\t}\n\n\tprotected handleFocus() {\n\t\tthis._navigationMenu.setActiveItem(this);\n\t}\n\n\tprotected onTab(e: Event) {\n\t\tconst contentEl = this._contentService.contentEl();\n\n\t\tif (contentEl && !hasModifierKey(e as KeyboardEvent)) {\n\t\t\te.preventDefault();\n\t\t\tcontentEl.focus();\n\t\t}\n\t}\n\n\tprotected onEscape(e: Event) {\n\t\te.preventDefault();\n\t\tthis._deactivate();\n\t}\n\n\tprivate _activate() {\n\t\tthis._navigationMenu.value.set(this._navigationMenuItem.id());\n\t}\n\n\tprivate _deactivate() {\n\t\tthis._navigationMenu.value.set(undefined);\n\t}\n\n\tprivate _isHoverOnSibling(ev: TriggerEvent): boolean {\n\t\tif (ev.type !== 'hover' || !isElement(ev.relatedTarget)) return false;\n\n\t\tconst menuItem = this._isMenuItemOrChild(ev.relatedTarget);\n\n\t\treturn !!menuItem && !menuItem.disabled();\n\t}\n\n\tprivate _isMenuItemOrChild(node: Node): BrnNavigationMenuItem | undefined {\n\t\treturn this._navigationMenu\n\t\t\t.menuItems()\n\t\t\t.find((ref) => ref.el.nativeElement === node || ref.el.nativeElement.contains(node));\n\t}\n}\n","import { BrnNavigationMenu } from './lib/brn-navigation-menu';\nimport { BrnNavigationMenuContent } from './lib/brn-navigation-menu-content';\nimport { BrnNavigationMenuItem } from './lib/brn-navigation-menu-item';\nimport { BrnNavigationMenuLink } from './lib/brn-navigation-menu-link';\nimport { BrnNavigationMenuList } from './lib/brn-navigation-menu-list';\nimport { BrnNavigationMenuTrigger } from './lib/brn-navigation-menu-trigger';\n\nexport * from './lib/brn-navigation-menu';\nexport * from './lib/brn-navigation-menu-content';\nexport * from './lib/brn-navigation-menu-item';\nexport * from './lib/brn-navigation-menu-link';\nexport * from './lib/brn-navigation-menu-list';\nexport * from './lib/brn-navigation-menu-trigger';\n\nexport const BrnNavigationMenuImports = [\n\tBrnNavigationMenu,\n\tBrnNavigationMenuItem,\n\tBrnNavigationMenuList,\n\tBrnNavigationMenuTrigger,\n\tBrnNavigationMenuContent,\n\tBrnNavigationMenuLink,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|