@ngstarter-ui/components 21.0.31 → 21.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-menu.mjs","sources":["../../../projects/components/menu/src/menu-tokens.ts","../../../projects/components/menu/src/menu-item/menu-item.ts","../../../projects/components/menu/src/menu-item/menu-item.html","../../../projects/components/menu/src/menu-content.ts","../../../projects/components/menu/src/menu/menu.ts","../../../projects/components/menu/src/menu/menu.html","../../../projects/components/menu/src/menu-divider/menu-divider.ts","../../../projects/components/menu/src/menu-divider/menu-divider.html","../../../projects/components/menu/src/menu-heading/menu-heading.ts","../../../projects/components/menu/src/menu-heading/menu-heading.html","../../../projects/components/menu/src/menu-trigger.ts","../../../projects/components/menu/src/context-menu-trigger.ts","../../../projects/components/menu/src/menu-header/menu-header.ts","../../../projects/components/menu/src/menu-header/menu-header.html","../../../projects/components/menu/src/menu-footer/menu-footer.ts","../../../projects/components/menu/src/menu-footer/menu-footer.html","../../../projects/components/menu/src/option-parent.ts","../../../projects/components/menu/src/menu-option-group.directive.ts","../../../projects/components/menu/ngstarter-ui-components-menu.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const MENU_ITEM = new InjectionToken<any>('MENU_ITEM');\nexport const MENU_TRIGGER = new InjectionToken<any>('MENU_TRIGGER');\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n booleanAttribute,\n inject,\n ElementRef,\n output,\n signal,\n forwardRef,\n Injector,\n OnInit\n} from '@angular/core';\nimport { MENU_ITEM, MENU_TRIGGER } from '../menu-tokens';\nimport type { MenuTrigger } from '../menu-trigger';\nimport { Menu } from '../menu/menu';\n\n@Component({\n selector: 'ngs-menu-item, [ngs-menu-item]',\n exportAs: 'ngsMenuItem',\n standalone: true,\n imports: [],\n templateUrl: './menu-item.html',\n styleUrl: './menu-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MENU_ITEM,\n useExisting: forwardRef(() => MenuItem)\n }\n ],\n host: {\n '[attr.role]': 'role()',\n '[class.ngs-menu-item]': 'true',\n '[class.ngs-menu-item-highlighted]': '_isHighlighted() || selected()',\n '[attr.disabled]': 'disabled() || null',\n '[attr.aria-disabled]': 'disabled()',\n '[tabindex]': 'disabled() ? -1 : 0',\n '(click)': '_handleClick($event)',\n '(mouseenter)': '_handleMouseEnter()',\n }\n})\nexport class MenuItem implements OnInit {\n private _injector = inject(Injector);\n protected _menuTrigger: MenuTrigger | null = null;\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly role = input<'menuitem' | 'menuitem-radio' | 'menuitem-checkbox'>('menuitem');\n\n selected = input(false, {\n transform: booleanAttribute\n });\n\n readonly _triggered = output<void>();\n\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _menu = inject(Menu, { optional: true });\n\n get label(): string {\n return this._elementRef.nativeElement.textContent?.trim() || '';\n }\n\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n ngOnInit() {\n this._menuTrigger = this._injector.get(MENU_TRIGGER, null);\n }\n\n _handleClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const menuTrigger = this._menuTrigger;\n const hasPopup = this._elementRef.nativeElement.getAttribute('aria-haspopup');\n if (menuTrigger || hasPopup === 'menu') {\n return;\n }\n\n this._triggered.emit();\n }\n\n _handleMouseEnter(): void {\n const menuTrigger = this._menuTrigger;\n if (this._menu && !menuTrigger) {\n this._menu._triggerOpened(null);\n }\n }\n\n protected readonly _isHighlighted = signal(false);\n}\n","<div class=\"icon\">\n <ng-content select=\"ngs-icon\"/>\n</div>\n\n<div class=\"ngs-menu-item-content\">\n <ng-content/>\n</div>\n\n@if (_menuTrigger) {\n <svg class=\"ngs-menu-item-submenu-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsMenuContent]',\n standalone: true\n})\nexport class MenuContent {\n readonly templateRef = inject(TemplateRef);\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n viewChild,\n TemplateRef,\n contentChildren,\n input,\n signal,\n inject,\n OnDestroy,\n output,\n effect,\n contentChild\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { MenuItem } from '../menu-item/menu-item';\nimport { MenuContent } from '../menu-content';\nimport { MenuCloseReason } from '../menu-types';\nimport { Subscription, merge, Subject, Observable } from 'rxjs';\nimport { MENU_TRIGGER } from '../menu-tokens';\nimport type { MenuTrigger } from '../menu-trigger';\n\n@Component({\n selector: 'ngs-menu',\n exportAs: 'ngsMenu',\n standalone: true,\n imports: [\n NgTemplateOutlet\n ],\n templateUrl: './menu.html',\n styleUrl: './menu.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.role]': 'role()',\n '[class.ngs-menu]': 'true',\n }\n})\nexport class Menu implements OnDestroy {\n readonly role = input<'menu' | 'menubar'>('menu');\n readonly classList = input<string>('');\n readonly xPosition = input<'before' | 'after'>('after');\n readonly yPosition = input<'above' | 'below'>('below');\n\n protected readonly _panelClasses = signal<string[]>([]);\n readonly closed = output<MenuCloseReason>();\n readonly _childMenuClosed = new Subject<void>();\n\n readonly templateRef = viewChild.required(TemplateRef);\n readonly content = contentChild(MenuContent);\n readonly items = contentChildren(MenuItem, { descendants: true });\n\n protected readonly _isNested = signal(false);\n protected readonly _context = signal<any>(undefined);\n private _parentMenu = inject(Menu, { optional: true, skipSelf: true });\n private _parentMenuTrigger = inject<MenuTrigger>(MENU_TRIGGER, { optional: true });\n private _itemSubscription = Subscription.EMPTY;\n private _openedTrigger: any = null;\n\n constructor() {\n if (this._parentMenu || this._parentMenuTrigger) {\n this._isNested.set(true);\n }\n\n effect(() => {\n const items = this.items();\n this._itemSubscription.unsubscribe();\n\n if (items.length > 0) {\n this._itemSubscription = merge(\n ...items.map(item => outputToObservable(item._triggered) as Observable<any>)\n )\n .subscribe(() => {\n this.close('click');\n });\n }\n });\n }\n\n ngOnDestroy() {\n this._itemSubscription.unsubscribe();\n }\n\n close(reason: MenuCloseReason): void {\n if (this._openedTrigger) {\n this._openedTrigger.closeMenu(reason);\n }\n this.closed.emit(reason);\n }\n\n _setPanelClasses(classes: string[]): void {\n this._panelClasses.set(classes);\n }\n\n _setContext(context: any): void {\n this._context.set(context);\n }\n\n _triggerOpened(trigger: any): void {\n if (this._openedTrigger && this._openedTrigger !== trigger) {\n this._openedTrigger.closeMenu('mouse', true);\n }\n this._openedTrigger = trigger;\n }\n\n _triggerClosed(trigger: any): void {\n if (this._openedTrigger === trigger) {\n this._openedTrigger = null;\n this._childMenuClosed.next();\n }\n }\n\n hasOpenChild(): boolean {\n return !!this._openedTrigger && this._openedTrigger.menuOpen();\n }\n}\n","<ng-template>\n <div\n class=\"ngs-menu-panel\"\n [class]=\"classList()\"\n [class.ngs-menu-before]=\"_panelClasses().includes('ngs-menu-before')\"\n [class.ngs-menu-after]=\"_panelClasses().includes('ngs-menu-after')\"\n [class.ngs-menu-above]=\"_panelClasses().includes('ngs-menu-above')\"\n [class.ngs-menu-below]=\"_panelClasses().includes('ngs-menu-below')\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content select=\"[ngs-menu-header]\"/>\n <div class=\"ngs-menu-content\">\n @if (content()) {\n <ng-container [ngTemplateOutlet]=\"content()!.templateRef\" [ngTemplateOutletContext]=\"_context()\" />\n } @else {\n <ng-content />\n }\n </div>\n <ng-content select=\"[ngs-menu-footer]\"/>\n </div>\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-divider',\n imports: [],\n templateUrl: './menu-divider.html',\n styleUrl: './menu-divider.scss',\n})\nexport class MenuDivider {\n\n}\n","","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-heading',\n imports: [],\n templateUrl: './menu-heading.html',\n styleUrl: './menu-heading.scss',\n})\nexport class MenuHeading {\n\n}\n","<ng-content/>\n","import {\n Directive,\n inject,\n ElementRef,\n ViewContainerRef,\n OnDestroy,\n booleanAttribute,\n input,\n signal,\n output,\n forwardRef,\n Injector, DestroyRef\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef, OverlayConfig, ConnectedPosition, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Menu } from './menu/menu';\nimport { MenuCloseReason } from './menu-types';\nimport { Subscription, merge, EMPTY, fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MENU_TRIGGER, MENU_ITEM } from './menu-tokens';\n\n@Directive({\n selector: '[ngsMenuTriggerFor]',\n exportAs: 'ngsMenuTrigger',\n standalone: true,\n host: {\n 'aria-haspopup': 'menu',\n '[attr.aria-expanded]': 'menuOpen()',\n '[attr.aria-controls]': 'menuOpen() ? menu()?.templateRef() : null',\n '[class.ngs-menu-item-highlighted]': 'menuOpen()',\n '(click)': '_handleClick($event)',\n '(mouseenter)': '_handleMouseEnter()',\n '(mouseleave)': '_handleMouseLeave()',\n },\n providers: [\n {\n provide: MENU_TRIGGER,\n useExisting: forwardRef(() => MenuTrigger)\n }\n ]\n})\nexport class MenuTrigger implements OnDestroy {\n private _overlay = inject(Overlay);\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _viewContainerRef = inject(ViewContainerRef);\n private destroyRef = inject(DestroyRef);\n private _injector = inject(Injector);\n private _parentMenu = inject(Menu, { optional: true, skipSelf: true });\n private _menu = inject(Menu, { optional: true });\n\n readonly menu = input<Menu | null>(null, { alias: 'ngsMenuTriggerFor' });\n readonly menuData = input<any>(undefined, { alias: 'ngsMenuTriggerData' });\n readonly menuDisabled = input(false, { transform: booleanAttribute, alias: 'ngsMenuDisabled' });\n readonly xPosition = input<'before' | 'after'>('after');\n readonly yPosition = input<'above' | 'below'>('below');\n\n readonly menuOpened = output<void>();\n readonly menuClosed = output<MenuCloseReason>();\n readonly restoreFocus = input(true, { transform: booleanAttribute, alias: 'ngsMenuTriggerRestoreFocus' });\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n private _hoverSubscription = Subscription.EMPTY;\n private _childMenuClosedSubscription = Subscription.EMPTY;\n private _closeTimeoutId: any;\n private _previouslyFocusedElement: HTMLElement | null = null;\n\n readonly menuOpen = signal(false);\n\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._closingSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n this._childMenuClosedSubscription.unsubscribe();\n this._clearCloseTimeout();\n }\n\n _handleMouseLeave() {\n }\n\n _clearCloseTimeout() {\n if (this._closeTimeoutId) {\n clearTimeout(this._closeTimeoutId);\n this._closeTimeoutId = null;\n }\n }\n\n _handleClick(event: MouseEvent): void {\n const menuItem = this._injector.get(MENU_ITEM, null);\n if (menuItem) {\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n this.toggleMenu();\n }\n\n toggleMenu(): void {\n if (this.menuDisabled()) {\n return;\n }\n\n if (this._parentMenu) {\n this.openMenu();\n } else {\n this.menuOpen() ? this.closeMenu('click') : this.openMenu();\n }\n }\n\n openMenu(): void {\n const menu = this.menu();\n if (this.menuOpen() || !menu) {\n return;\n }\n\n this._previouslyFocusedElement = document.activeElement as HTMLElement;\n const overlayRef = this._createOverlay();\n const strategy = overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n strategy.positionChanges.subscribe(change => {\n menu._setPanelClasses(this._getPanelClasses(change.connectionPair));\n });\n\n menu._setContext(this.menuData());\n this._portal = new TemplatePortal(menu.templateRef(), this._viewContainerRef, this._viewContainerRef.injector);\n overlayRef.attach(this._portal);\n\n if (overlayRef.hasAttached()) {\n this._setIsMenuOpen(true);\n\n const overlayElement = overlayRef.overlayElement;\n this._hoverSubscription.unsubscribe();\n this._hoverSubscription = merge(\n fromEvent<MouseEvent>(overlayElement, 'mouseenter'),\n fromEvent<MouseEvent>(overlayElement, 'mouseleave')\n ).subscribe(event => {\n if (event.type === 'mouseenter') {\n this._clearCloseTimeout();\n } else {\n this._handleMouseLeave();\n }\n });\n }\n\n if (this._menu) {\n this._menu._triggerOpened(this);\n\n this._childMenuClosedSubscription.unsubscribe();\n this._childMenuClosedSubscription = this._menu._childMenuClosed.subscribe(() => {\n this._handleMouseLeave();\n });\n }\n\n this._closingSubscription = this._menuClosingActions().subscribe(reason => this.closeMenu(reason));\n this.menuOpened.emit();\n }\n\n closeMenu(reason: MenuCloseReason, force = false): void {\n if (!this._overlayRef || !this.menuOpen()) {\n return;\n }\n\n if (!force && reason === 'mouse' && this.menu()?.hasOpenChild()) {\n return;\n }\n\n this._setIsMenuOpen(false);\n const menu = this.menu();\n\n if (menu) {\n menu.close(reason);\n }\n\n if (this._menu) {\n this._menu._triggerClosed(this);\n }\n\n this._overlayRef.detach();\n this._closingSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n this._childMenuClosedSubscription.unsubscribe();\n this._clearCloseTimeout();\n this.menuClosed.emit(reason);\n\n if (this.restoreFocus() && this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n }\n\n this._previouslyFocusedElement = null;\n\n if (reason === 'click' && this._parentMenu) {\n this._parentMenu.close('click');\n }\n }\n\n private _setIsMenuOpen(isOpen: boolean): void {\n this.menuOpen.set(isOpen);\n }\n\n private _getPanelClasses(connectionPair: ConnectedPosition): string[] {\n const classes = [];\n const isBelow = connectionPair.overlayY === 'top';\n const isBefore = connectionPair.overlayX === 'end';\n\n if (isBelow) {\n classes.push('ngs-menu-below');\n } else {\n classes.push('ngs-menu-above');\n }\n\n if (isBefore) {\n classes.push('ngs-menu-before');\n } else {\n classes.push('ngs-menu-after');\n }\n\n return classes;\n }\n\n private _createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n const config = this._getOverlayConfig();\n this._overlayRef = this._overlay.create(config);\n this._overlayRef\n .keydownEvents()\n .pipe(filter(event => event.key === 'Escape'))\n .subscribe(() => this.closeMenu('keydown'));\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (this._parentMenu && this._elementRef.nativeElement.contains(event.target as HTMLElement)) {\n return;\n }\n this.closeMenu('backdrop');\n });\n }\n return this._overlayRef;\n }\n\n private _getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this._overlay.position()\n .flexibleConnectedTo(this._elementRef)\n .withLockedPosition(false)\n .withTransformOriginOn('.ngs-menu-panel')\n .withPositions(this._getPositions())\n .withPush(false),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n hasBackdrop: !this._parentMenu,\n backdropClass: 'cdk-overlay-transparent-backdrop'\n });\n }\n\n private _getPositions(): ConnectedPosition[] {\n const menu = this.menu();\n\n if (this._parentMenu) {\n return [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0,\n }\n ];\n }\n\n const xPosition = menu?.xPosition() || this.xPosition();\n const yPosition = menu?.yPosition() || this.yPosition();\n\n if (yPosition === 'above') {\n return [\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'bottom',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'bottom',\n },\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'top',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'top',\n },\n ];\n }\n\n return [\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'top',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'top',\n },\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'bottom',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'bottom',\n },\n ];\n }\n\n private _menuClosingActions() {\n const menu = this.menu();\n const detachments = this._overlayRef!.detachments();\n const menuClosed = menu ? outputToObservable(menu.closed) : EMPTY;\n const parentMenuClosed = this._parentMenu ? outputToObservable(this._parentMenu.closed) : EMPTY;\n return merge(detachments, menuClosed, parentMenuClosed).pipe(\n filter((reason): reason is MenuCloseReason => !!reason)\n );\n }\n\n _handleMouseEnter() {\n this._clearCloseTimeout();\n if (this._parentMenu) {\n this.openMenu();\n } else if (this._menu) {\n this.openMenu();\n }\n }\n}\n","import {\n Directive,\n inject,\n ElementRef,\n ViewContainerRef,\n OnDestroy,\n input,\n signal,\n output,\n NgZone\n} from '@angular/core';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n ConnectedPosition,\n FlexibleConnectedPositionStrategy\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Menu } from './menu/menu';\nimport { MenuCloseReason } from './menu-types';\nimport { Subscription, merge, EMPTY } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[ngsContextMenuTriggerFor]',\n exportAs: 'ngsContextMenuTrigger',\n standalone: true,\n host: {\n '(contextmenu)': '_handleContextMenu($event)',\n }\n})\nexport class ContextMenuTrigger implements OnDestroy {\n private _overlay = inject(Overlay);\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _viewContainerRef = inject(ViewContainerRef);\n private _ngZone = inject(NgZone);\n\n readonly menu = input<Menu | null>(null, { alias: 'ngsContextMenuTriggerFor' });\n readonly menuData = input<any>(undefined, { alias: 'ngsContextMenuTriggerData' });\n\n readonly menuOpened = output<void>();\n readonly menuClosed = output<MenuCloseReason>();\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n\n readonly menuOpen = signal(false);\n\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._closingSubscription.unsubscribe();\n }\n\n openMenu(x: number, y: number): void {\n const menu = this.menu();\n if (this.menuOpen() || !menu) {\n return;\n }\n\n const overlayRef = this._createOverlay(x, y);\n const strategy = overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n strategy.positionChanges.subscribe(change => {\n menu._setPanelClasses(this._getPanelClasses(change.connectionPair));\n });\n\n menu._setContext(this.menuData());\n this._portal = new TemplatePortal(menu.templateRef(), this._viewContainerRef);\n overlayRef.attach(this._portal);\n\n if (overlayRef.hasAttached()) {\n this._setIsMenuOpen(true);\n }\n\n this._closingSubscription = this._menuClosingActions().subscribe(reason => this.closeMenu(reason));\n this.menuOpened.emit();\n }\n\n closeMenu(reason: MenuCloseReason): void {\n if (!this._overlayRef || !this.menuOpen()) {\n return;\n }\n\n this._setIsMenuOpen(false);\n const menu = this.menu();\n\n if (menu) {\n menu.close(reason);\n }\n\n this._overlayRef.detach();\n this._closingSubscription.unsubscribe();\n this.menuClosed.emit(reason);\n }\n\n private _setIsMenuOpen(isOpen: boolean): void {\n this.menuOpen.set(isOpen);\n }\n\n private _getPanelClasses(connectionPair: ConnectedPosition): string[] {\n const classes = [];\n const isBelow = connectionPair.overlayY === 'top';\n const isBefore = connectionPair.overlayX === 'end';\n\n if (isBelow) {\n classes.push('ngs-menu-below');\n } else {\n classes.push('ngs-menu-above');\n }\n\n if (isBefore) {\n classes.push('ngs-menu-before');\n } else {\n classes.push('ngs-menu-after');\n }\n\n return classes;\n }\n\n private _createOverlay(x: number, y: number): OverlayRef {\n if (this._overlayRef) {\n this._overlayRef.updatePositionStrategy(this._getPositionStrategy(x, y));\n return this._overlayRef;\n }\n\n const config = this._getOverlayConfig(x, y);\n this._overlayRef = this._overlay.create(config);\n\n this._overlayRef.keydownEvents()\n .pipe(filter(event => event.key === 'Escape'))\n .subscribe(() => this.closeMenu('keydown'));\n\n this._overlayRef.backdropClick().subscribe(() => this.closeMenu('backdrop'));\n\n return this._overlayRef;\n }\n\n private _getOverlayConfig(x: number, y: number): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this._getPositionStrategy(x, y),\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n\n private _getPositionStrategy(x: number, y: number): FlexibleConnectedPositionStrategy {\n return this._overlay.position()\n .flexibleConnectedTo({ x, y })\n .withPush(false)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ]);\n }\n\n private _menuClosingActions() {\n const menu = this.menu();\n const detachments = this._overlayRef!.detachments();\n const menuClosed = menu ? outputToObservable(menu.closed) : EMPTY;\n return merge(detachments, menuClosed).pipe(\n filter((reason): reason is MenuCloseReason => !!reason)\n );\n }\n\n _handleContextMenu(event: MouseEvent): void {\n event.preventDefault();\n\n if (this.menuOpen()) {\n this.closeMenu('click');\n }\n\n this.openMenu(event.clientX, event.clientY);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-header',\n imports: [],\n templateUrl: './menu-header.html',\n styleUrl: './menu-header.scss',\n})\nexport class MenuHeader {\n\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-footer',\n imports: [],\n templateUrl: './menu-footer.html',\n styleUrl: './menu-footer.scss',\n})\nexport class MenuFooter {\n\n}\n","<ng-content/>\n","import { InjectionToken, Signal } from '@angular/core';\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface OptionParentComponent {\n disableRipple?: boolean | Signal<boolean>;\n multiple?: boolean | Signal<boolean>;\n inertGroups?: boolean;\n hideSingleSelectionIndicator?: boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const OPTION_PARENT_COMPONENT = new InjectionToken<OptionParentComponent>('OPTION_PARENT_COMPONENT');\n","import {\n AfterContentInit,\n ChangeDetectorRef, DestroyRef,\n Directive,\n forwardRef,\n inject,\n OnInit,\n contentChildren, signal, Signal, input, booleanAttribute, computed,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { defer, merge, Observable, Subject, switchMap, EMPTY, map, startWith } from 'rxjs';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { Option, SELECT } from '@ngstarter-ui/components/select';\nimport { OptionParentComponent, OPTION_PARENT_COMPONENT } from './option-parent';\nimport { Menu } from './menu/menu';\n\n@Directive({\n selector: '[ngsMenuOptionGroup]',\n standalone: true,\n providers: [\n {\n provide: OPTION_PARENT_COMPONENT,\n useExisting: MenuOptionGroupDirective\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MenuOptionGroupDirective),\n multi: true\n },\n {\n provide: SELECT,\n useFactory: (directive: MenuOptionGroupDirective) => {\n return {\n multiple: directive.multipleSignal,\n hideCheckIcon: directive.hideCheckIcon,\n _optionsContentChanges: directive._optionsContentChanges\n };\n },\n deps: [forwardRef(() => MenuOptionGroupDirective)]\n }\n ]\n})\nexport class MenuOptionGroupDirective implements OptionParentComponent, OnInit, ControlValueAccessor, AfterContentInit {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _destroyRef = inject(DestroyRef);\n private _menu = inject(Menu, { optional: true });\n\n disableRipple = false;\n inertGroups = false;\n hideSingleSelectionIndicator = false;\n\n multiple = input(false, { transform: booleanAttribute });\n readonly multipleSignal: Signal<boolean> = computed(() => this.multiple());\n readonly hideCheckIcon = signal(false);\n readonly _optionsContentChanges = signal(0);\n\n _selectionModel: SelectionModel<any>;\n private _value: any;\n\n readonly options = contentChildren(Option, { descendants: true });\n readonly ngsOptions = contentChildren(forwardRef(() => Option), { descendants: true });\n\n private _options$ = toObservable(this.options);\n private _ngsOptions$ = toObservable(this.ngsOptions);\n\n private _initialized = new Subject();\n\n readonly valueChange = output<any>();\n\n readonly optionSelectionChanges: Observable<any> = merge(\n this._options$,\n this._ngsOptions$\n ).pipe(\n startWith(null),\n switchMap(() => {\n const options = this.options();\n const ngsOptions = this.ngsOptions();\n const streams = [\n ...options.map(option => outputToObservable(option.onSelectionChange) as Observable<any>),\n ...ngsOptions.map(option => outputToObservable(option.onSelectionChange) as Observable<any>)\n ];\n\n if (streams.length === 0) {\n return EMPTY;\n }\n\n return merge(...streams);\n })\n );\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<any>(this.multiple());\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n ngAfterContentInit() {\n this.optionSelectionChanges\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((res: any) => {\n let source: any;\n\n if (res instanceof Option) {\n source = res;\n } else if (res && res.source instanceof Option) {\n source = res.source;\n } else {\n source = res;\n }\n\n if (source instanceof Option) {\n this._value = source.value();\n } else if (source && typeof source.value === 'function') {\n this._value = source.value();\n } else {\n this._value = source.value;\n }\n this._selectOptionByValue();\n this.onChange(this._value);\n\n if (!this.multiple) {\n this._menu?.close('click');\n }\n })\n ;\n\n this._options$\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectOptionByValue();\n });\n\n this._ngsOptions$\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectOptionByValue();\n });\n }\n\n private _selectOptionByValue() {\n const options = this.options();\n const ngsOptions = this.ngsOptions();\n\n options.forEach(option => {\n if (option.value === this._value) {\n option.select();\n } else {\n option.deselect();\n }\n });\n\n ngsOptions.forEach(option => {\n if (option.value() === this._value) {\n option.select();\n } else {\n option.deselect();\n }\n });\n this._changeDetectorRef.markForCheck();\n }\n\n writeValue(newValue: any): void {\n if (newValue !== this._value) {\n this._value = newValue;\n this._selectOptionByValue();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-menu.mjs","sources":["../../../projects/components/menu/src/menu-tokens.ts","../../../projects/components/menu/src/menu-item/menu-item.ts","../../../projects/components/menu/src/menu-item/menu-item.html","../../../projects/components/menu/src/menu-content.ts","../../../projects/components/menu/src/menu/menu.ts","../../../projects/components/menu/src/menu/menu.html","../../../projects/components/menu/src/menu-divider/menu-divider.ts","../../../projects/components/menu/src/menu-divider/menu-divider.html","../../../projects/components/menu/src/menu-heading/menu-heading.ts","../../../projects/components/menu/src/menu-heading/menu-heading.html","../../../projects/components/menu/src/menu-trigger.ts","../../../projects/components/menu/src/context-menu-trigger.ts","../../../projects/components/menu/src/menu-header/menu-header.ts","../../../projects/components/menu/src/menu-header/menu-header.html","../../../projects/components/menu/src/menu-footer/menu-footer.ts","../../../projects/components/menu/src/menu-footer/menu-footer.html","../../../projects/components/menu/src/option-parent.ts","../../../projects/components/menu/src/menu-option-group.directive.ts","../../../projects/components/menu/ngstarter-ui-components-menu.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const MENU_ITEM = new InjectionToken<any>('MENU_ITEM');\nexport const MENU_TRIGGER = new InjectionToken<any>('MENU_TRIGGER');\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n booleanAttribute,\n inject,\n ElementRef,\n output,\n signal,\n forwardRef,\n Injector,\n OnInit\n} from '@angular/core';\nimport { MENU_ITEM, MENU_TRIGGER } from '../menu-tokens';\nimport type { MenuTrigger } from '../menu-trigger';\nimport { Menu } from '../menu/menu';\n\n@Component({\n selector: 'ngs-menu-item, [ngs-menu-item]',\n exportAs: 'ngsMenuItem',\n standalone: true,\n imports: [],\n templateUrl: './menu-item.html',\n styleUrl: './menu-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MENU_ITEM,\n useExisting: forwardRef(() => MenuItem)\n }\n ],\n host: {\n '[attr.role]': 'role()',\n '[class.ngs-menu-item]': 'true',\n '[class.ngs-menu-item-highlighted]': '_isHighlighted() || selected()',\n '[attr.disabled]': 'disabled() || null',\n '[attr.aria-disabled]': 'disabled()',\n '[tabindex]': 'disabled() ? -1 : 0',\n '(click)': '_handleClick($event)',\n '(mouseenter)': '_handleMouseEnter()',\n }\n})\nexport class MenuItem implements OnInit {\n private _injector = inject(Injector);\n protected _menuTrigger: MenuTrigger | null = null;\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly role = input<'menuitem' | 'menuitem-radio' | 'menuitem-checkbox'>('menuitem');\n\n selected = input(false, {\n transform: booleanAttribute\n });\n\n readonly _triggered = output<void>();\n\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _menu = inject(Menu, { optional: true });\n\n get label(): string {\n return this._elementRef.nativeElement.textContent?.trim() || '';\n }\n\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n ngOnInit() {\n this._menuTrigger = this._injector.get(MENU_TRIGGER, null);\n }\n\n _handleClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const menuTrigger = this._menuTrigger;\n const hasPopup = this._elementRef.nativeElement.getAttribute('aria-haspopup');\n if (menuTrigger || hasPopup === 'menu') {\n return;\n }\n\n this._triggered.emit();\n }\n\n _handleMouseEnter(): void {\n const menuTrigger = this._menuTrigger;\n if (this._menu && !menuTrigger) {\n this._menu._triggerOpened(null);\n }\n }\n\n protected readonly _isHighlighted = signal(false);\n}\n","<div class=\"icon\">\n <ng-content select=\"ngs-icon\"/>\n</div>\n\n<div class=\"ngs-menu-item-content\">\n <ng-content/>\n</div>\n\n@if (_menuTrigger) {\n <svg class=\"ngs-menu-item-submenu-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsMenuContent]',\n standalone: true\n})\nexport class MenuContent {\n readonly templateRef = inject(TemplateRef);\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n viewChild,\n TemplateRef,\n contentChildren,\n input,\n signal,\n inject,\n OnDestroy,\n output,\n effect,\n contentChild\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { MenuItem } from '../menu-item/menu-item';\nimport { MenuContent } from '../menu-content';\nimport { MenuCloseReason } from '../menu-types';\nimport { Subscription, merge, Subject, Observable } from 'rxjs';\nimport { MENU_TRIGGER } from '../menu-tokens';\nimport type { MenuTrigger } from '../menu-trigger';\n\n@Component({\n selector: 'ngs-menu',\n exportAs: 'ngsMenu',\n standalone: true,\n imports: [\n NgTemplateOutlet\n ],\n templateUrl: './menu.html',\n styleUrl: './menu.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.role]': 'role()',\n '[class.ngs-menu]': 'true',\n }\n})\nexport class Menu implements OnDestroy {\n readonly role = input<'menu' | 'menubar'>('menu');\n readonly classList = input<string>('');\n readonly xPosition = input<'before' | 'after'>('after');\n readonly yPosition = input<'above' | 'below'>('below');\n\n protected readonly _panelClasses = signal<string[]>([]);\n readonly closed = output<MenuCloseReason>();\n readonly _childMenuClosed = new Subject<void>();\n\n readonly templateRef = viewChild.required(TemplateRef);\n readonly content = contentChild(MenuContent);\n readonly items = contentChildren(MenuItem, { descendants: true });\n\n protected readonly _isNested = signal(false);\n protected readonly _context = signal<any>(undefined);\n private _parentMenu = inject(Menu, { optional: true, skipSelf: true });\n private _parentMenuTrigger = inject<MenuTrigger>(MENU_TRIGGER, { optional: true });\n private _itemSubscription = Subscription.EMPTY;\n private _openedTrigger: any = null;\n\n constructor() {\n if (this._parentMenu || this._parentMenuTrigger) {\n this._isNested.set(true);\n }\n\n effect(() => {\n const items = this.items();\n this._itemSubscription.unsubscribe();\n\n if (items.length > 0) {\n this._itemSubscription = merge(\n ...items.map(item => outputToObservable(item._triggered) as Observable<any>)\n )\n .subscribe(() => {\n this.close('click');\n });\n }\n });\n }\n\n ngOnDestroy() {\n this._itemSubscription.unsubscribe();\n }\n\n close(reason: MenuCloseReason): void {\n if (this._openedTrigger) {\n this._openedTrigger.closeMenu(reason);\n }\n this.closed.emit(reason);\n }\n\n _setPanelClasses(classes: string[]): void {\n this._panelClasses.set(classes);\n }\n\n _setContext(context: any): void {\n this._context.set(context);\n }\n\n _triggerOpened(trigger: any): void {\n if (this._openedTrigger && this._openedTrigger !== trigger) {\n this._openedTrigger.closeMenu('mouse', true);\n }\n this._openedTrigger = trigger;\n }\n\n _triggerClosed(trigger: any): void {\n if (this._openedTrigger === trigger) {\n this._openedTrigger = null;\n this._childMenuClosed.next();\n }\n }\n\n hasOpenChild(): boolean {\n return !!this._openedTrigger && this._openedTrigger.menuOpen();\n }\n}\n","<ng-template>\n <div\n class=\"ngs-menu-panel\"\n [class]=\"classList()\"\n [class.ngs-menu-before]=\"_panelClasses().includes('ngs-menu-before')\"\n [class.ngs-menu-after]=\"_panelClasses().includes('ngs-menu-after')\"\n [class.ngs-menu-above]=\"_panelClasses().includes('ngs-menu-above')\"\n [class.ngs-menu-below]=\"_panelClasses().includes('ngs-menu-below')\"\n tabindex=\"-1\"\n role=\"menu\"\n >\n <ng-content select=\"ngs-menu-header,[ngs-menu-header]\"/>\n <div class=\"ngs-menu-content\">\n @if (content()) {\n <ng-container [ngTemplateOutlet]=\"content()!.templateRef\" [ngTemplateOutletContext]=\"_context()\" />\n } @else {\n <ng-content />\n }\n </div>\n <ng-content select=\"ngs-menu-footer,[ngs-menu-footer]\"/>\n </div>\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-divider',\n imports: [],\n templateUrl: './menu-divider.html',\n styleUrl: './menu-divider.scss',\n})\nexport class MenuDivider {\n\n}\n","","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-heading',\n imports: [],\n templateUrl: './menu-heading.html',\n styleUrl: './menu-heading.scss',\n})\nexport class MenuHeading {\n\n}\n","<ng-content/>\n","import {\n Directive,\n inject,\n ElementRef,\n ViewContainerRef,\n OnDestroy,\n booleanAttribute,\n input,\n signal,\n output,\n forwardRef,\n Injector, DestroyRef\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef, OverlayConfig, ConnectedPosition, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Menu } from './menu/menu';\nimport { MenuCloseReason } from './menu-types';\nimport { Subscription, merge, EMPTY, fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MENU_TRIGGER, MENU_ITEM } from './menu-tokens';\n\n@Directive({\n selector: '[ngsMenuTriggerFor]',\n exportAs: 'ngsMenuTrigger',\n standalone: true,\n host: {\n 'aria-haspopup': 'menu',\n '[attr.aria-expanded]': 'menuOpen()',\n '[attr.aria-controls]': 'menuOpen() ? menu()?.templateRef() : null',\n '[class.ngs-menu-item-highlighted]': 'menuOpen()',\n '(click)': '_handleClick($event)',\n '(mouseenter)': '_handleMouseEnter()',\n '(mouseleave)': '_handleMouseLeave()',\n },\n providers: [\n {\n provide: MENU_TRIGGER,\n useExisting: forwardRef(() => MenuTrigger)\n }\n ]\n})\nexport class MenuTrigger implements OnDestroy {\n private _overlay = inject(Overlay);\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _viewContainerRef = inject(ViewContainerRef);\n private destroyRef = inject(DestroyRef);\n private _injector = inject(Injector);\n private _parentMenu = inject(Menu, { optional: true, skipSelf: true });\n private _menu = inject(Menu, { optional: true });\n\n readonly menu = input<Menu | null>(null, { alias: 'ngsMenuTriggerFor' });\n readonly menuData = input<any>(undefined, { alias: 'ngsMenuTriggerData' });\n readonly menuDisabled = input(false, { transform: booleanAttribute, alias: 'ngsMenuDisabled' });\n readonly xPosition = input<'before' | 'after'>('after');\n readonly yPosition = input<'above' | 'below'>('below');\n\n readonly menuOpened = output<void>();\n readonly menuClosed = output<MenuCloseReason>();\n readonly restoreFocus = input(true, { transform: booleanAttribute, alias: 'ngsMenuTriggerRestoreFocus' });\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n private _hoverSubscription = Subscription.EMPTY;\n private _childMenuClosedSubscription = Subscription.EMPTY;\n private _closeTimeoutId: any;\n private _previouslyFocusedElement: HTMLElement | null = null;\n\n readonly menuOpen = signal(false);\n\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._closingSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n this._childMenuClosedSubscription.unsubscribe();\n this._clearCloseTimeout();\n }\n\n _handleMouseLeave() {\n }\n\n _clearCloseTimeout() {\n if (this._closeTimeoutId) {\n clearTimeout(this._closeTimeoutId);\n this._closeTimeoutId = null;\n }\n }\n\n _handleClick(event: MouseEvent): void {\n const menuItem = this._injector.get(MENU_ITEM, null);\n if (menuItem) {\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n this.toggleMenu();\n }\n\n toggleMenu(): void {\n if (this.menuDisabled()) {\n return;\n }\n\n if (this._parentMenu) {\n this.openMenu();\n } else {\n this.menuOpen() ? this.closeMenu('click') : this.openMenu();\n }\n }\n\n openMenu(): void {\n const menu = this.menu();\n if (this.menuOpen() || !menu) {\n return;\n }\n\n this._previouslyFocusedElement = document.activeElement as HTMLElement;\n const overlayRef = this._createOverlay();\n const strategy = overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n strategy.positionChanges.subscribe(change => {\n menu._setPanelClasses(this._getPanelClasses(change.connectionPair));\n });\n\n menu._setContext(this.menuData());\n this._portal = new TemplatePortal(menu.templateRef(), this._viewContainerRef, this._viewContainerRef.injector);\n overlayRef.attach(this._portal);\n\n if (overlayRef.hasAttached()) {\n this._setIsMenuOpen(true);\n\n const overlayElement = overlayRef.overlayElement;\n this._hoverSubscription.unsubscribe();\n this._hoverSubscription = merge(\n fromEvent<MouseEvent>(overlayElement, 'mouseenter'),\n fromEvent<MouseEvent>(overlayElement, 'mouseleave')\n ).subscribe(event => {\n if (event.type === 'mouseenter') {\n this._clearCloseTimeout();\n } else {\n this._handleMouseLeave();\n }\n });\n }\n\n if (this._menu) {\n this._menu._triggerOpened(this);\n\n this._childMenuClosedSubscription.unsubscribe();\n this._childMenuClosedSubscription = this._menu._childMenuClosed.subscribe(() => {\n this._handleMouseLeave();\n });\n }\n\n this._closingSubscription = this._menuClosingActions().subscribe(reason => this.closeMenu(reason));\n this.menuOpened.emit();\n }\n\n closeMenu(reason: MenuCloseReason, force = false): void {\n if (!this._overlayRef || !this.menuOpen()) {\n return;\n }\n\n if (!force && reason === 'mouse' && this.menu()?.hasOpenChild()) {\n return;\n }\n\n this._setIsMenuOpen(false);\n const menu = this.menu();\n\n if (menu) {\n menu.close(reason);\n }\n\n if (this._menu) {\n this._menu._triggerClosed(this);\n }\n\n this._overlayRef.detach();\n this._closingSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n this._childMenuClosedSubscription.unsubscribe();\n this._clearCloseTimeout();\n this.menuClosed.emit(reason);\n\n if (this.restoreFocus() && this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n }\n\n this._previouslyFocusedElement = null;\n\n if (reason === 'click' && this._parentMenu) {\n this._parentMenu.close('click');\n }\n }\n\n private _setIsMenuOpen(isOpen: boolean): void {\n this.menuOpen.set(isOpen);\n }\n\n private _getPanelClasses(connectionPair: ConnectedPosition): string[] {\n const classes = [];\n const isBelow = connectionPair.overlayY === 'top';\n const isBefore = connectionPair.overlayX === 'end';\n\n if (isBelow) {\n classes.push('ngs-menu-below');\n } else {\n classes.push('ngs-menu-above');\n }\n\n if (isBefore) {\n classes.push('ngs-menu-before');\n } else {\n classes.push('ngs-menu-after');\n }\n\n return classes;\n }\n\n private _createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n const config = this._getOverlayConfig();\n this._overlayRef = this._overlay.create(config);\n this._overlayRef\n .keydownEvents()\n .pipe(filter(event => event.key === 'Escape'))\n .subscribe(() => this.closeMenu('keydown'));\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (this._parentMenu && this._elementRef.nativeElement.contains(event.target as HTMLElement)) {\n return;\n }\n this.closeMenu('backdrop');\n });\n }\n return this._overlayRef;\n }\n\n private _getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this._overlay.position()\n .flexibleConnectedTo(this._elementRef)\n .withLockedPosition(false)\n .withTransformOriginOn('.ngs-menu-panel')\n .withPositions(this._getPositions())\n .withPush(false),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n hasBackdrop: !this._parentMenu,\n backdropClass: 'cdk-overlay-transparent-backdrop'\n });\n }\n\n private _getPositions(): ConnectedPosition[] {\n const menu = this.menu();\n\n if (this._parentMenu) {\n return [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0,\n }\n ];\n }\n\n const xPosition = menu?.xPosition() || this.xPosition();\n const yPosition = menu?.yPosition() || this.yPosition();\n\n if (yPosition === 'above') {\n return [\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'bottom',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'bottom',\n },\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'top',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'top',\n },\n ];\n }\n\n return [\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'top',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'bottom',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'top',\n },\n {\n originX: xPosition === 'before' ? 'end' : 'start',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'end' : 'start',\n overlayY: 'bottom',\n },\n {\n originX: xPosition === 'before' ? 'start' : 'end',\n originY: 'top',\n overlayX: xPosition === 'before' ? 'start' : 'end',\n overlayY: 'bottom',\n },\n ];\n }\n\n private _menuClosingActions() {\n const menu = this.menu();\n const detachments = this._overlayRef!.detachments();\n const menuClosed = menu ? outputToObservable(menu.closed) : EMPTY;\n const parentMenuClosed = this._parentMenu ? outputToObservable(this._parentMenu.closed) : EMPTY;\n return merge(detachments, menuClosed, parentMenuClosed).pipe(\n filter((reason): reason is MenuCloseReason => !!reason)\n );\n }\n\n _handleMouseEnter() {\n this._clearCloseTimeout();\n if (this._parentMenu) {\n this.openMenu();\n } else if (this._menu) {\n this.openMenu();\n }\n }\n}\n","import {\n Directive,\n inject,\n ElementRef,\n ViewContainerRef,\n OnDestroy,\n input,\n signal,\n output,\n NgZone\n} from '@angular/core';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n ConnectedPosition,\n FlexibleConnectedPositionStrategy\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Menu } from './menu/menu';\nimport { MenuCloseReason } from './menu-types';\nimport { Subscription, merge, EMPTY } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[ngsContextMenuTriggerFor]',\n exportAs: 'ngsContextMenuTrigger',\n standalone: true,\n host: {\n '(contextmenu)': '_handleContextMenu($event)',\n }\n})\nexport class ContextMenuTrigger implements OnDestroy {\n private _overlay = inject(Overlay);\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _viewContainerRef = inject(ViewContainerRef);\n private _ngZone = inject(NgZone);\n\n readonly menu = input<Menu | null>(null, { alias: 'ngsContextMenuTriggerFor' });\n readonly menuData = input<any>(undefined, { alias: 'ngsContextMenuTriggerData' });\n\n readonly menuOpened = output<void>();\n readonly menuClosed = output<MenuCloseReason>();\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n\n readonly menuOpen = signal(false);\n\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._closingSubscription.unsubscribe();\n }\n\n openMenu(x: number, y: number): void {\n const menu = this.menu();\n if (this.menuOpen() || !menu) {\n return;\n }\n\n const overlayRef = this._createOverlay(x, y);\n const strategy = overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n strategy.positionChanges.subscribe(change => {\n menu._setPanelClasses(this._getPanelClasses(change.connectionPair));\n });\n\n menu._setContext(this.menuData());\n this._portal = new TemplatePortal(menu.templateRef(), this._viewContainerRef);\n overlayRef.attach(this._portal);\n\n if (overlayRef.hasAttached()) {\n this._setIsMenuOpen(true);\n }\n\n this._closingSubscription = this._menuClosingActions().subscribe(reason => this.closeMenu(reason));\n this.menuOpened.emit();\n }\n\n closeMenu(reason: MenuCloseReason): void {\n if (!this._overlayRef || !this.menuOpen()) {\n return;\n }\n\n this._setIsMenuOpen(false);\n const menu = this.menu();\n\n if (menu) {\n menu.close(reason);\n }\n\n this._overlayRef.detach();\n this._closingSubscription.unsubscribe();\n this.menuClosed.emit(reason);\n }\n\n private _setIsMenuOpen(isOpen: boolean): void {\n this.menuOpen.set(isOpen);\n }\n\n private _getPanelClasses(connectionPair: ConnectedPosition): string[] {\n const classes = [];\n const isBelow = connectionPair.overlayY === 'top';\n const isBefore = connectionPair.overlayX === 'end';\n\n if (isBelow) {\n classes.push('ngs-menu-below');\n } else {\n classes.push('ngs-menu-above');\n }\n\n if (isBefore) {\n classes.push('ngs-menu-before');\n } else {\n classes.push('ngs-menu-after');\n }\n\n return classes;\n }\n\n private _createOverlay(x: number, y: number): OverlayRef {\n if (this._overlayRef) {\n this._overlayRef.updatePositionStrategy(this._getPositionStrategy(x, y));\n return this._overlayRef;\n }\n\n const config = this._getOverlayConfig(x, y);\n this._overlayRef = this._overlay.create(config);\n\n this._overlayRef.keydownEvents()\n .pipe(filter(event => event.key === 'Escape'))\n .subscribe(() => this.closeMenu('keydown'));\n\n this._overlayRef.backdropClick().subscribe(() => this.closeMenu('backdrop'));\n\n return this._overlayRef;\n }\n\n private _getOverlayConfig(x: number, y: number): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this._getPositionStrategy(x, y),\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n\n private _getPositionStrategy(x: number, y: number): FlexibleConnectedPositionStrategy {\n return this._overlay.position()\n .flexibleConnectedTo({ x, y })\n .withPush(false)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n ]);\n }\n\n private _menuClosingActions() {\n const menu = this.menu();\n const detachments = this._overlayRef!.detachments();\n const menuClosed = menu ? outputToObservable(menu.closed) : EMPTY;\n return merge(detachments, menuClosed).pipe(\n filter((reason): reason is MenuCloseReason => !!reason)\n );\n }\n\n _handleContextMenu(event: MouseEvent): void {\n event.preventDefault();\n\n if (this.menuOpen()) {\n this.closeMenu('click');\n }\n\n this.openMenu(event.clientX, event.clientY);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-header',\n exportAs: 'ngsMenuHeader',\n imports: [],\n templateUrl: './menu-header.html',\n styleUrl: './menu-header.scss',\n host: {\n 'class': 'ngs-menu-header',\n }\n})\nexport class MenuHeader {\n\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-menu-footer',\n exportAs: 'ngsMenuFooter',\n imports: [],\n templateUrl: './menu-footer.html',\n styleUrl: './menu-footer.scss',\n host: {\n 'class': 'ngs-menu-footer',\n }\n})\nexport class MenuFooter {\n\n}\n","<ng-content/>\n","import { InjectionToken, Signal } from '@angular/core';\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface OptionParentComponent {\n disableRipple?: boolean | Signal<boolean>;\n multiple?: boolean | Signal<boolean>;\n inertGroups?: boolean;\n hideSingleSelectionIndicator?: boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const OPTION_PARENT_COMPONENT = new InjectionToken<OptionParentComponent>('OPTION_PARENT_COMPONENT');\n","import {\n AfterContentInit,\n ChangeDetectorRef, DestroyRef,\n Directive,\n forwardRef,\n inject,\n OnInit,\n contentChildren, signal, Signal, input, booleanAttribute, computed,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { defer, merge, Observable, Subject, switchMap, EMPTY, map, startWith } from 'rxjs';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { Option, SELECT } from '@ngstarter-ui/components/select';\nimport { OptionParentComponent, OPTION_PARENT_COMPONENT } from './option-parent';\nimport { Menu } from './menu/menu';\n\n@Directive({\n selector: '[ngsMenuOptionGroup]',\n standalone: true,\n providers: [\n {\n provide: OPTION_PARENT_COMPONENT,\n useExisting: MenuOptionGroupDirective\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MenuOptionGroupDirective),\n multi: true\n },\n {\n provide: SELECT,\n useFactory: (directive: MenuOptionGroupDirective) => {\n return {\n multiple: directive.multipleSignal,\n hideCheckIcon: directive.hideCheckIcon,\n _optionsContentChanges: directive._optionsContentChanges\n };\n },\n deps: [forwardRef(() => MenuOptionGroupDirective)]\n }\n ]\n})\nexport class MenuOptionGroupDirective implements OptionParentComponent, OnInit, ControlValueAccessor, AfterContentInit {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _destroyRef = inject(DestroyRef);\n private _menu = inject(Menu, { optional: true });\n\n disableRipple = false;\n inertGroups = false;\n hideSingleSelectionIndicator = false;\n\n multiple = input(false, { transform: booleanAttribute });\n readonly multipleSignal: Signal<boolean> = computed(() => this.multiple());\n readonly hideCheckIcon = signal(false);\n readonly _optionsContentChanges = signal(0);\n\n _selectionModel: SelectionModel<any>;\n private _value: any;\n\n readonly options = contentChildren(Option, { descendants: true });\n readonly ngsOptions = contentChildren(forwardRef(() => Option), { descendants: true });\n\n private _options$ = toObservable(this.options);\n private _ngsOptions$ = toObservable(this.ngsOptions);\n\n private _initialized = new Subject();\n\n readonly valueChange = output<any>();\n\n readonly optionSelectionChanges: Observable<any> = merge(\n this._options$,\n this._ngsOptions$\n ).pipe(\n startWith(null),\n switchMap(() => {\n const options = this.options();\n const ngsOptions = this.ngsOptions();\n const streams = [\n ...options.map(option => outputToObservable(option.onSelectionChange) as Observable<any>),\n ...ngsOptions.map(option => outputToObservable(option.onSelectionChange) as Observable<any>)\n ];\n\n if (streams.length === 0) {\n return EMPTY;\n }\n\n return merge(...streams);\n })\n );\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<any>(this.multiple());\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n ngAfterContentInit() {\n this.optionSelectionChanges\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((res: any) => {\n let source: any;\n\n if (res instanceof Option) {\n source = res;\n } else if (res && res.source instanceof Option) {\n source = res.source;\n } else {\n source = res;\n }\n\n if (source instanceof Option) {\n this._value = source.value();\n } else if (source && typeof source.value === 'function') {\n this._value = source.value();\n } else {\n this._value = source.value;\n }\n this._selectOptionByValue();\n this.onChange(this._value);\n\n if (!this.multiple) {\n this._menu?.close('click');\n }\n })\n ;\n\n this._options$\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectOptionByValue();\n });\n\n this._ngsOptions$\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectOptionByValue();\n });\n }\n\n private _selectOptionByValue() {\n const options = this.options();\n const ngsOptions = this.ngsOptions();\n\n options.forEach(option => {\n if (option.value === this._value) {\n option.select();\n } else {\n option.deselect();\n }\n });\n\n ngsOptions.forEach(option => {\n if (option.value() === this._value) {\n option.select();\n } else {\n option.deselect();\n }\n });\n this._changeDetectorRef.markForCheck();\n }\n\n writeValue(newValue: any): void {\n if (newValue !== this._value) {\n this._value = newValue;\n this._selectOptionByValue();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}