@ngstarter-ui/components 1.0.31 → 1.0.32

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.
Files changed (36) hide show
  1. package/fesm2022/ngstarter-ui-components-autocomplete.mjs +2 -2
  2. package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -1
  3. package/fesm2022/ngstarter-ui-components-chips.mjs +6 -6
  4. package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
  5. package/fesm2022/ngstarter-ui-components-comment-editor.mjs +2 -2
  6. package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -1
  7. package/fesm2022/ngstarter-ui-components-country-select.mjs +2 -2
  8. package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
  9. package/fesm2022/ngstarter-ui-components-currency-select.mjs +2 -2
  10. package/fesm2022/ngstarter-ui-components-currency-select.mjs.map +1 -1
  11. package/fesm2022/ngstarter-ui-components-empty-state.mjs +2 -2
  12. package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -1
  13. package/fesm2022/ngstarter-ui-components-icon.mjs +2 -2
  14. package/fesm2022/ngstarter-ui-components-icon.mjs.map +1 -1
  15. package/fesm2022/ngstarter-ui-components-menu.mjs +4 -4
  16. package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -1
  17. package/fesm2022/ngstarter-ui-components-option.mjs +4 -4
  18. package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -1
  19. package/fesm2022/ngstarter-ui-components-rail-nav.mjs +2 -2
  20. package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -1
  21. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +2 -2
  22. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -1
  23. package/fesm2022/ngstarter-ui-components-segmented.mjs +2 -2
  24. package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -1
  25. package/fesm2022/ngstarter-ui-components-select.mjs +4 -4
  26. package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -1
  27. package/fesm2022/ngstarter-ui-components-text-editor.mjs +2 -2
  28. package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -1
  29. package/fesm2022/ngstarter-ui-components-timepicker.mjs +2 -2
  30. package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -1
  31. package/fesm2022/ngstarter-ui-components-timezone-select.mjs +2 -2
  32. package/fesm2022/ngstarter-ui-components-timezone-select.mjs.map +1 -1
  33. package/fesm2022/ngstarter-ui-components-upload.mjs +2 -2
  34. package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -1
  35. package/package.json +1 -1
  36. package/styles/_tokens.scss +59 -7
@@ -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]\"/>\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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"}
@@ -100,7 +100,7 @@ class Option {
100
100
  provide: OPTION,
101
101
  useExisting: forwardRef(() => Option)
102
102
  }
103
- ], exportAs: ["ngsOption"], ngImport: i0, template: "@if (multiple) {\n <ngs-checkbox [checked]=\"selected\" [disabled]=\"disabled\" class=\"pointer-events-none me-1\"/>\n}\n<span class=\"ngs-option-text\"><ng-content /></span>\n@if (!multiple && selected && !hideCheckIcon) {\n <ngs-icon name=\"fluent:checkmark-24-regular\" class=\"ms-3\"/>\n}\n", styles: [":host{--ngs-option-padding: 0 16px;--ngs-option-font-size: 14px;--ngs-option-color: var(--ngs-color-on-surface);--ngs-option-hover-background: var(--ngs-color-surface-container-high);--ngs-option-selected-background: var(--ngs-color-primary-container);--ngs-option-selected-color: var(--ngs-color-on-primary-container);--ngs-option-active-background: var(--ngs-color-surface-container-highest);--ngs-option-disabled-color: var(--ngs-color-on-surface-variant);display:flex;align-items:center;height:var(--option-height, 48px);padding:var(--ngs-option-padding);font-size:var(--ngs-option-font-size);color:var(--ngs-option-color);cursor:pointer;outline:none;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;gap:calc(var(--spacing, .25rem) * 2)}:host:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background)}:host.ngs-option-active:not(.ngs-option-disabled){background:var(--ngs-option-active-background)}:host.ngs-option-selected:not(.ngs-option-multiple){background:var(--ngs-option-selected-background);color:var(--ngs-option-selected-color)}:host.ngs-option-multiple.ngs-option-selected{background:transparent}:host.ngs-option-multiple.ngs-option-selected:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background)}:host.ngs-option-disabled{color:var(--ngs-option-disabled-color);cursor:default;pointer-events:none}.ngs-optgroup :host{padding-left:32px}.ngs-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Checkbox, selector: "ngs-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["checkedChange", "disabledChange", "indeterminateChange", "change"], exportAs: ["ngsCheckbox"] }, { kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }] });
103
+ ], exportAs: ["ngsOption"], ngImport: i0, template: "@if (multiple) {\n <ngs-checkbox [checked]=\"selected\" [disabled]=\"disabled\" class=\"pointer-events-none me-1\"/>\n}\n<span class=\"ngs-option-text\"><ng-content /></span>\n@if (!multiple && selected && !hideCheckIcon) {\n <ngs-icon name=\"fluent:checkmark-24-regular\" class=\"ms-3\"/>\n}\n", styles: [":host{display:flex;align-items:center;height:var(--ngs-option-height, var(--ngs-dropdown-height, var(--option-height, 48px)));padding:var(--ngs-option-padding, var(--ngs-dropdown-item-padding, 0 calc(var(--spacing, .25rem) * 3)));border-radius:var(--ngs-option-radius, var(--ngs-dropdown-item-radius, var(--ngs-control-radius)));font-size:var(--ngs-option-font-size, var(--ngs-dropdown-item-font-size, var(--ngs-font-size-sm)));color:var(--ngs-option-color, var(--ngs-dropdown-item-color, var(--ngs-color-on-surface)));cursor:pointer;outline:none;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;gap:var(--ngs-option-gap, var(--ngs-dropdown-item-gap, calc(var(--spacing, .25rem) * 2)))}:host:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background, var(--ngs-dropdown-item-hover-bg, var(--ngs-color-surface-container-high)))}:host.ngs-option-active:not(.ngs-option-disabled){background:var(--ngs-option-active-background, var(--ngs-dropdown-item-active-bg, var(--ngs-color-surface-container-highest)))}:host.ngs-option-selected:not(.ngs-option-multiple){background:var(--ngs-option-selected-background, var(--ngs-dropdown-item-selected-bg, var(--ngs-color-primary-container)));color:var(--ngs-option-selected-color, var(--ngs-dropdown-item-selected-color, var(--ngs-color-on-primary-container)))}:host.ngs-option-multiple.ngs-option-selected{background:transparent}:host.ngs-option-multiple.ngs-option-selected:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background, var(--ngs-dropdown-item-hover-bg, var(--ngs-color-surface-container-high)))}:host.ngs-option-disabled{color:var(--ngs-option-disabled-color, var(--ngs-dropdown-item-disabled-color, var(--ngs-color-on-surface-variant)));cursor:default;pointer-events:none}.ngs-optgroup :host{padding-inline-start:var(--ngs-option-group-padding-start, var(--ngs-dropdown-item-nested-padding-start, calc(var(--ngs-dropdown-item-padding-x, calc(var(--spacing, .25rem) * 3)) + calc(var(--spacing, .25rem) * 4))))}.ngs-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Checkbox, selector: "ngs-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["checkedChange", "disabledChange", "indeterminateChange", "change"], exportAs: ["ngsCheckbox"] }, { kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }] });
104
104
  }
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Option, decorators: [{
106
106
  type: Component,
@@ -122,7 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
122
122
  '[attr.aria-selected]': 'selected',
123
123
  '[attr.aria-disabled]': 'disabled',
124
124
  '(click)': '_onClick($event)'
125
- }, template: "@if (multiple) {\n <ngs-checkbox [checked]=\"selected\" [disabled]=\"disabled\" class=\"pointer-events-none me-1\"/>\n}\n<span class=\"ngs-option-text\"><ng-content /></span>\n@if (!multiple && selected && !hideCheckIcon) {\n <ngs-icon name=\"fluent:checkmark-24-regular\" class=\"ms-3\"/>\n}\n", styles: [":host{--ngs-option-padding: 0 16px;--ngs-option-font-size: 14px;--ngs-option-color: var(--ngs-color-on-surface);--ngs-option-hover-background: var(--ngs-color-surface-container-high);--ngs-option-selected-background: var(--ngs-color-primary-container);--ngs-option-selected-color: var(--ngs-color-on-primary-container);--ngs-option-active-background: var(--ngs-color-surface-container-highest);--ngs-option-disabled-color: var(--ngs-color-on-surface-variant);display:flex;align-items:center;height:var(--option-height, 48px);padding:var(--ngs-option-padding);font-size:var(--ngs-option-font-size);color:var(--ngs-option-color);cursor:pointer;outline:none;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;gap:calc(var(--spacing, .25rem) * 2)}:host:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background)}:host.ngs-option-active:not(.ngs-option-disabled){background:var(--ngs-option-active-background)}:host.ngs-option-selected:not(.ngs-option-multiple){background:var(--ngs-option-selected-background);color:var(--ngs-option-selected-color)}:host.ngs-option-multiple.ngs-option-selected{background:transparent}:host.ngs-option-multiple.ngs-option-selected:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background)}:host.ngs-option-disabled{color:var(--ngs-option-disabled-color);cursor:default;pointer-events:none}.ngs-optgroup :host{padding-left:32px}.ngs-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
125
+ }, template: "@if (multiple) {\n <ngs-checkbox [checked]=\"selected\" [disabled]=\"disabled\" class=\"pointer-events-none me-1\"/>\n}\n<span class=\"ngs-option-text\"><ng-content /></span>\n@if (!multiple && selected && !hideCheckIcon) {\n <ngs-icon name=\"fluent:checkmark-24-regular\" class=\"ms-3\"/>\n}\n", styles: [":host{display:flex;align-items:center;height:var(--ngs-option-height, var(--ngs-dropdown-height, var(--option-height, 48px)));padding:var(--ngs-option-padding, var(--ngs-dropdown-item-padding, 0 calc(var(--spacing, .25rem) * 3)));border-radius:var(--ngs-option-radius, var(--ngs-dropdown-item-radius, var(--ngs-control-radius)));font-size:var(--ngs-option-font-size, var(--ngs-dropdown-item-font-size, var(--ngs-font-size-sm)));color:var(--ngs-option-color, var(--ngs-dropdown-item-color, var(--ngs-color-on-surface)));cursor:pointer;outline:none;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;gap:var(--ngs-option-gap, var(--ngs-dropdown-item-gap, calc(var(--spacing, .25rem) * 2)))}:host:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background, var(--ngs-dropdown-item-hover-bg, var(--ngs-color-surface-container-high)))}:host.ngs-option-active:not(.ngs-option-disabled){background:var(--ngs-option-active-background, var(--ngs-dropdown-item-active-bg, var(--ngs-color-surface-container-highest)))}:host.ngs-option-selected:not(.ngs-option-multiple){background:var(--ngs-option-selected-background, var(--ngs-dropdown-item-selected-bg, var(--ngs-color-primary-container)));color:var(--ngs-option-selected-color, var(--ngs-dropdown-item-selected-color, var(--ngs-color-on-primary-container)))}:host.ngs-option-multiple.ngs-option-selected{background:transparent}:host.ngs-option-multiple.ngs-option-selected:hover:not(.ngs-option-disabled){background:var(--ngs-option-hover-background, var(--ngs-dropdown-item-hover-bg, var(--ngs-color-surface-container-high)))}:host.ngs-option-disabled{color:var(--ngs-option-disabled-color, var(--ngs-dropdown-item-disabled-color, var(--ngs-color-on-surface-variant)));cursor:default;pointer-events:none}.ngs-optgroup :host{padding-inline-start:var(--ngs-option-group-padding-start, var(--ngs-dropdown-item-nested-padding-start, calc(var(--ngs-dropdown-item-padding-x, calc(var(--spacing, .25rem) * 3)) + calc(var(--spacing, .25rem) * 4))))}.ngs-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
126
126
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabledSignal: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], selectedInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }] } });
127
127
 
128
128
  class Optgroup {
@@ -133,7 +133,7 @@ class Optgroup {
133
133
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: Optgroup, isStandalone: true, selector: "ngs-optgroup", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ngs-optgroup-disabled": "disabled()", "attr.role": "\"group\"", "attr.aria-disabled": "disabled().toString()", "attr.aria-labelledby": "id" }, classAttribute: "ngs-optgroup" }, exportAs: ["ngsOptgroup"], ngImport: i0, template: `
134
134
  <span class="ngs-optgroup-label">{{ label() }}</span>
135
135
  <ng-content select="ngs-option" />
136
- `, isInline: true, styles: [":host{display:block;--ngs-optgroup-label-padding: 0 16px;--ngs-optgroup-label-height: 48px;--ngs-optgroup-label-font-size: 12px;--ngs-optgroup-label-font-weight: 600;--ngs-optgroup-label-color: rgba(0, 0, 0, .54)}.ngs-optgroup-label{display:flex;align-items:center;padding:var(--ngs-optgroup-label-padding);height:var(--ngs-optgroup-label-height);font-size:var(--ngs-optgroup-label-font-size);font-weight:var(--ngs-optgroup-label-font-weight);color:var(--ngs-optgroup-label-color);text-transform:uppercase}\n"] });
136
+ `, isInline: true, styles: [":host{display:block;--ngs-optgroup-label-padding: var(--ngs-dropdown-item-padding, 0 .75rem);--ngs-optgroup-label-height: var(--ngs-dropdown-height, var(--option-height, 48px));--ngs-optgroup-label-font-size: var(--ngs-font-size-xs, .75rem);--ngs-optgroup-label-font-weight: 600;--ngs-optgroup-label-color: var(--ngs-color-on-surface-variant, rgba(0, 0, 0, .54))}.ngs-optgroup-label{display:flex;align-items:center;padding:var(--ngs-optgroup-label-padding);height:var(--ngs-optgroup-label-height);font-size:var(--ngs-optgroup-label-font-size);font-weight:var(--ngs-optgroup-label-font-weight);color:var(--ngs-optgroup-label-color);text-transform:uppercase}\n"] });
137
137
  }
138
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Optgroup, decorators: [{
139
139
  type: Component,
@@ -146,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
146
146
  '[attr.role]': '"group"',
147
147
  '[attr.aria-disabled]': 'disabled().toString()',
148
148
  '[attr.aria-labelledby]': 'id',
149
- }, styles: [":host{display:block;--ngs-optgroup-label-padding: 0 16px;--ngs-optgroup-label-height: 48px;--ngs-optgroup-label-font-size: 12px;--ngs-optgroup-label-font-weight: 600;--ngs-optgroup-label-color: rgba(0, 0, 0, .54)}.ngs-optgroup-label{display:flex;align-items:center;padding:var(--ngs-optgroup-label-padding);height:var(--ngs-optgroup-label-height);font-size:var(--ngs-optgroup-label-font-size);font-weight:var(--ngs-optgroup-label-font-weight);color:var(--ngs-optgroup-label-color);text-transform:uppercase}\n"] }]
149
+ }, styles: [":host{display:block;--ngs-optgroup-label-padding: var(--ngs-dropdown-item-padding, 0 .75rem);--ngs-optgroup-label-height: var(--ngs-dropdown-height, var(--option-height, 48px));--ngs-optgroup-label-font-size: var(--ngs-font-size-xs, .75rem);--ngs-optgroup-label-font-weight: 600;--ngs-optgroup-label-color: var(--ngs-color-on-surface-variant, rgba(0, 0, 0, .54))}.ngs-optgroup-label{display:flex;align-items:center;padding:var(--ngs-optgroup-label-padding);height:var(--ngs-optgroup-label-height);font-size:var(--ngs-optgroup-label-font-size);font-weight:var(--ngs-optgroup-label-font-weight);color:var(--ngs-optgroup-label-color);text-transform:uppercase}\n"] }]
150
150
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
151
151
 
152
152
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-option.mjs","sources":["../../../projects/components/option/src/option/option-tokens.ts","../../../projects/components/option/src/option/option.ts","../../../projects/components/option/src/option/option.html","../../../projects/components/option/src/option/optgroup.ts","../../../projects/components/option/ngstarter-ui-components-option.ts"],"sourcesContent":["import { InjectionToken, Signal, ElementRef, OutputEmitterRef, WritableSignal } from '@angular/core';\n\nexport abstract class _Option {\n abstract value: Signal<any>;\n abstract elementRef: ElementRef<HTMLElement>;\n abstract select(): void;\n abstract deselect(): void;\n abstract selected: boolean;\n abstract viewValue: string;\n abstract onSelectionChange: OutputEmitterRef<_Option>;\n abstract disabled: boolean;\n}\n\nexport abstract class _OptionParent {\n abstract multiple: Signal<boolean>;\n abstract hideCheckIcon?: Signal<boolean>;\n abstract _optionsContentChanges?: WritableSignal<number>;\n}\n\nexport const OPTION_PARENT = new InjectionToken<_OptionParent>('OPTION_PARENT');\nexport const OPTION = new InjectionToken<_Option>('OPTION');\n","import {\n Component,\n ElementRef,\n booleanAttribute,\n output,\n input,\n signal,\n inject,\n forwardRef,\n AfterViewInit, OnDestroy, ChangeDetectorRef\n} from '@angular/core';\nimport { OPTION, OPTION_PARENT, _Option, _OptionParent } from './option-tokens';\nimport { Checkbox } from '@ngstarter-ui/components/checkbox';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { Highlightable } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'ngs-option',\n exportAs: 'ngsOption',\n standalone: true,\n imports: [\n Checkbox,\n Icon\n ],\n templateUrl: './option.html',\n styleUrl: './option.scss',\n providers: [\n {\n provide: OPTION,\n useExisting: forwardRef(() => Option)\n }\n ],\n host: {\n 'role': 'option',\n '[attr.tabindex]': '-1',\n '[class.ngs-option-selected]': 'selected',\n '[class.ngs-option-disabled]': 'disabled',\n '[class.ngs-option-multiple]': 'multiple',\n '[class.ngs-option-active]': 'active',\n '[attr.aria-selected]': 'selected',\n '[attr.aria-disabled]': 'disabled',\n '(click)': '_onClick($event)'\n }\n})\nexport class Option implements AfterViewInit, OnDestroy, _Option, Highlightable {\n private _parent = inject<_OptionParent>(OPTION_PARENT, { optional: true });\n private _cdr = inject(ChangeDetectorRef);\n\n value = input<any>();\n disabledSignal = input(false, { alias: 'disabled', transform: booleanAttribute });\n selectedInput = input(false, { alias: 'selected', transform: booleanAttribute });\n\n get disabled(): boolean {\n return this.disabledSignal();\n }\n\n readonly onSelectionChange = output<_Option>();\n\n private _selected = signal(false);\n private _active = signal(false);\n private _mutationObserver?: MutationObserver;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterViewInit() {\n this._parent?._optionsContentChanges?.update(v => v + 1);\n\n if (typeof MutationObserver !== 'undefined') {\n this._mutationObserver = new MutationObserver(() => {\n this._parent?._optionsContentChanges?.update(v => v + 1);\n });\n this._mutationObserver.observe(this.elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n ngOnDestroy() {\n this._mutationObserver?.disconnect();\n }\n\n get selected(): boolean {\n return this.selectedInput() || this._selected();\n }\n\n get multiple(): boolean {\n return this._parent?.multiple() ?? false;\n }\n\n get hideCheckIcon(): boolean {\n return this._parent?.hideCheckIcon?.() ?? false;\n }\n\n get active(): boolean {\n return this._active();\n }\n\n select(): void {\n if (!this._selected()) {\n this._selected.set(true);\n this._cdr.markForCheck();\n }\n }\n\n deselect(): void {\n if (this._selected()) {\n this._selected.set(false);\n this._cdr.markForCheck();\n }\n }\n\n setActiveStyles(): void {\n this._active.set(true);\n this._cdr.markForCheck();\n }\n\n setInactiveStyles(): void {\n this._active.set(false);\n this._cdr.markForCheck();\n }\n\n _onClick(event: MouseEvent): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.onSelectionChange.emit(this);\n }\n\n get viewValue(): string {\n const element = this.elementRef.nativeElement;\n const textElement = element.querySelector('.ngs-option-text');\n\n if (textElement) {\n return (textElement.textContent || '').trim();\n }\n\n return (element.textContent || '').trim();\n }\n\n getLabel?(): string {\n return this.viewValue;\n }\n}\n","@if (multiple) {\n <ngs-checkbox [checked]=\"selected\" [disabled]=\"disabled\" class=\"pointer-events-none me-1\"/>\n}\n<span class=\"ngs-option-text\"><ng-content /></span>\n@if (!multiple && selected && !hideCheckIcon) {\n <ngs-icon name=\"fluent:checkmark-24-regular\" class=\"ms-3\"/>\n}\n","import { Component, input, booleanAttribute } from '@angular/core';\n\n@Component({\n selector: 'ngs-optgroup',\n exportAs: 'ngsOptgroup',\n standalone: true,\n template: `\n <span class=\"ngs-optgroup-label\">{{ label() }}</span>\n <ng-content select=\"ngs-option\" />\n `,\n styles: [`\n :host {\n display: block;\n --ngs-optgroup-label-padding: 0 16px;\n --ngs-optgroup-label-height: 48px;\n --ngs-optgroup-label-font-size: 12px;\n --ngs-optgroup-label-font-weight: 600;\n --ngs-optgroup-label-color: rgba(0, 0, 0, 0.54);\n }\n .ngs-optgroup-label {\n display: flex;\n align-items: center;\n padding: var(--ngs-optgroup-label-padding);\n height: var(--ngs-optgroup-label-height);\n font-size: var(--ngs-optgroup-label-font-size);\n font-weight: var(--ngs-optgroup-label-font-weight);\n color: var(--ngs-optgroup-label-color);\n text-transform: uppercase;\n }\n `],\n host: {\n 'class': 'ngs-optgroup',\n '[class.ngs-optgroup-disabled]': 'disabled()',\n '[attr.role]': '\"group\"',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-labelledby]': 'id',\n }\n})\nexport class Optgroup {\n label = input<string>();\n disabled = input(false, { transform: booleanAttribute });\n id = `ngs-optgroup-${Math.random().toString(36).substr(2, 9)}`;\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-option.mjs","sources":["../../../projects/components/option/src/option/option-tokens.ts","../../../projects/components/option/src/option/option.ts","../../../projects/components/option/src/option/option.html","../../../projects/components/option/src/option/optgroup.ts","../../../projects/components/option/ngstarter-ui-components-option.ts"],"sourcesContent":["import { InjectionToken, Signal, ElementRef, OutputEmitterRef, WritableSignal } from '@angular/core';\n\nexport abstract class _Option {\n abstract value: Signal<any>;\n abstract elementRef: ElementRef<HTMLElement>;\n abstract select(): void;\n abstract deselect(): void;\n abstract selected: boolean;\n abstract viewValue: string;\n abstract onSelectionChange: OutputEmitterRef<_Option>;\n abstract disabled: boolean;\n}\n\nexport abstract class _OptionParent {\n abstract multiple: Signal<boolean>;\n abstract hideCheckIcon?: Signal<boolean>;\n abstract _optionsContentChanges?: WritableSignal<number>;\n}\n\nexport const OPTION_PARENT = new InjectionToken<_OptionParent>('OPTION_PARENT');\nexport const OPTION = new InjectionToken<_Option>('OPTION');\n","import {\n Component,\n ElementRef,\n booleanAttribute,\n output,\n input,\n signal,\n inject,\n forwardRef,\n AfterViewInit, OnDestroy, ChangeDetectorRef\n} from '@angular/core';\nimport { OPTION, OPTION_PARENT, _Option, _OptionParent } from './option-tokens';\nimport { Checkbox } from '@ngstarter-ui/components/checkbox';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { Highlightable } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'ngs-option',\n exportAs: 'ngsOption',\n standalone: true,\n imports: [\n Checkbox,\n Icon\n ],\n templateUrl: './option.html',\n styleUrl: './option.scss',\n providers: [\n {\n provide: OPTION,\n useExisting: forwardRef(() => Option)\n }\n ],\n host: {\n 'role': 'option',\n '[attr.tabindex]': '-1',\n '[class.ngs-option-selected]': 'selected',\n '[class.ngs-option-disabled]': 'disabled',\n '[class.ngs-option-multiple]': 'multiple',\n '[class.ngs-option-active]': 'active',\n '[attr.aria-selected]': 'selected',\n '[attr.aria-disabled]': 'disabled',\n '(click)': '_onClick($event)'\n }\n})\nexport class Option implements AfterViewInit, OnDestroy, _Option, Highlightable {\n private _parent = inject<_OptionParent>(OPTION_PARENT, { optional: true });\n private _cdr = inject(ChangeDetectorRef);\n\n value = input<any>();\n disabledSignal = input(false, { alias: 'disabled', transform: booleanAttribute });\n selectedInput = input(false, { alias: 'selected', transform: booleanAttribute });\n\n get disabled(): boolean {\n return this.disabledSignal();\n }\n\n readonly onSelectionChange = output<_Option>();\n\n private _selected = signal(false);\n private _active = signal(false);\n private _mutationObserver?: MutationObserver;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterViewInit() {\n this._parent?._optionsContentChanges?.update(v => v + 1);\n\n if (typeof MutationObserver !== 'undefined') {\n this._mutationObserver = new MutationObserver(() => {\n this._parent?._optionsContentChanges?.update(v => v + 1);\n });\n this._mutationObserver.observe(this.elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n ngOnDestroy() {\n this._mutationObserver?.disconnect();\n }\n\n get selected(): boolean {\n return this.selectedInput() || this._selected();\n }\n\n get multiple(): boolean {\n return this._parent?.multiple() ?? false;\n }\n\n get hideCheckIcon(): boolean {\n return this._parent?.hideCheckIcon?.() ?? false;\n }\n\n get active(): boolean {\n return this._active();\n }\n\n select(): void {\n if (!this._selected()) {\n this._selected.set(true);\n this._cdr.markForCheck();\n }\n }\n\n deselect(): void {\n if (this._selected()) {\n this._selected.set(false);\n this._cdr.markForCheck();\n }\n }\n\n setActiveStyles(): void {\n this._active.set(true);\n this._cdr.markForCheck();\n }\n\n setInactiveStyles(): void {\n this._active.set(false);\n this._cdr.markForCheck();\n }\n\n _onClick(event: MouseEvent): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.onSelectionChange.emit(this);\n }\n\n get viewValue(): string {\n const element = this.elementRef.nativeElement;\n const textElement = element.querySelector('.ngs-option-text');\n\n if (textElement) {\n return (textElement.textContent || '').trim();\n }\n\n return (element.textContent || '').trim();\n }\n\n getLabel?(): string {\n return this.viewValue;\n }\n}\n","@if (multiple) {\n <ngs-checkbox [checked]=\"selected\" [disabled]=\"disabled\" class=\"pointer-events-none me-1\"/>\n}\n<span class=\"ngs-option-text\"><ng-content /></span>\n@if (!multiple && selected && !hideCheckIcon) {\n <ngs-icon name=\"fluent:checkmark-24-regular\" class=\"ms-3\"/>\n}\n","import { Component, input, booleanAttribute } from '@angular/core';\n\n@Component({\n selector: 'ngs-optgroup',\n exportAs: 'ngsOptgroup',\n standalone: true,\n template: `\n <span class=\"ngs-optgroup-label\">{{ label() }}</span>\n <ng-content select=\"ngs-option\" />\n `,\n styles: [`\n :host {\n display: block;\n --ngs-optgroup-label-padding: var(--ngs-dropdown-item-padding, 0 0.75rem);\n --ngs-optgroup-label-height: var(--ngs-dropdown-height, var(--option-height, 48px));\n --ngs-optgroup-label-font-size: var(--ngs-font-size-xs, 0.75rem);\n --ngs-optgroup-label-font-weight: 600;\n --ngs-optgroup-label-color: var(--ngs-color-on-surface-variant, rgba(0, 0, 0, 0.54));\n }\n .ngs-optgroup-label {\n display: flex;\n align-items: center;\n padding: var(--ngs-optgroup-label-padding);\n height: var(--ngs-optgroup-label-height);\n font-size: var(--ngs-optgroup-label-font-size);\n font-weight: var(--ngs-optgroup-label-font-weight);\n color: var(--ngs-optgroup-label-color);\n text-transform: uppercase;\n }\n `],\n host: {\n 'class': 'ngs-optgroup',\n '[class.ngs-optgroup-disabled]': 'disabled()',\n '[attr.role]': '\"group\"',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-labelledby]': 'id',\n }\n})\nexport class Optgroup {\n label = input<string>();\n disabled = input(false, { transform: booleanAttribute });\n id = `ngs-optgroup-${Math.random().toString(36).substr(2, 9)}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ class RailNavItem {
54
54
  this._railNav.api.activateItem(this.key());
55
55
  }
56
56
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: RailNavItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: RailNavItem, isStandalone: true, selector: "ngs-rail-nav-item,[ngs-rail-nav-item]", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "click($event)" }, properties: { "class.is-active": "isActive" }, classAttribute: "ngs-rail-nav-item" }, exportAs: ["ngsRailNavItem"], ngImport: i0, template: "<div class=\"icon\" ngsRipple>\n <ng-content select=\"[ngsRailNavItemIcon]\"/>\n</div>\n<div class=\"label\">\n <ng-content/>\n</div>\n", styles: [":host{display:flex;flex:none;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;gap:var(--ngs-rail-nav-item-gap);color:var(--ngs-rail-nav-bg-item-color)}:host .icon{padding:var(--ngs-rail-nav-item-icon-padding);border-radius:var(--ngs-rail-nav-item-icon-radius);color:var(--ngs-rail-nav-bg-item-icon-color);display:flex;align-items:center;justify-content:center}:host .icon:empty{display:none}:host:hover .icon{background:var(--ngs-rail-nav-bg-item-icon-hover-bg)}:host:hover .icon ::ng-deep *{scale:1.025;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.25s}:host:active .icon{background:var(--ngs-rail-nav-bg-item-icon-active-bg)}:host.is-active{--icon-color: var(--ngs-rail-nav-bg-item-icon-is-active-color)}:host.is-active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-bg)}:host.is-active{color:var(--ngs-rail-nav-bg-item-active-color)}:host.is-active:active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-active-bg)}:host .label{font-size:var(--ngs-rail-nav-label-font-size)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: Ripple, selector: "[ngsRipple]", inputs: ["ngsRippleColor", "ngsRippleUnbounded", "ngsRippleCentered", "ngsRippleRadius", "ngsRippleAnimation", "ngsRippleDisabled", "ngsRippleTrigger"], outputs: ["ngsRippleCenteredChange", "ngsRippleDisabledChange", "ngsRippleTriggerChange"], exportAs: ["ngsRipple"] }] });
57
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: RailNavItem, isStandalone: true, selector: "ngs-rail-nav-item,[ngs-rail-nav-item]", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "click($event)" }, properties: { "class.is-active": "isActive" }, classAttribute: "ngs-rail-nav-item" }, exportAs: ["ngsRailNavItem"], ngImport: i0, template: "<div class=\"icon\" ngsRipple>\n <ng-content select=\"[ngsRailNavItemIcon]\"/>\n</div>\n<div class=\"label\">\n <ng-content/>\n</div>\n", styles: [":host{display:flex;flex:none;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;gap:var(--ngs-rail-nav-item-gap);color:var(--ngs-rail-nav-bg-item-color)}:host .icon{padding:var(--ngs-rail-nav-item-icon-padding);border-radius:var(--ngs-rail-nav-item-icon-radius);color:var(--ngs-rail-nav-bg-item-icon-color);display:flex;align-items:center;justify-content:center}:host .icon:empty{display:none}:host:hover .icon{background:var(--ngs-rail-nav-bg-item-icon-hover-bg)}:host:hover .icon ::ng-deep *{scale:1.025;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.25s}:host:active .icon{background:var(--ngs-rail-nav-bg-item-icon-active-bg)}:host.is-active{--ngs-icon-color: var(--ngs-rail-nav-bg-item-icon-is-active-color)}:host.is-active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-bg)}:host.is-active{color:var(--ngs-rail-nav-bg-item-active-color)}:host.is-active:active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-active-bg)}:host .label{font-size:var(--ngs-rail-nav-label-font-size)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: Ripple, selector: "[ngsRipple]", inputs: ["ngsRippleColor", "ngsRippleUnbounded", "ngsRippleCentered", "ngsRippleRadius", "ngsRippleAnimation", "ngsRippleDisabled", "ngsRippleTrigger"], outputs: ["ngsRippleCenteredChange", "ngsRippleDisabledChange", "ngsRippleTriggerChange"], exportAs: ["ngsRipple"] }] });
58
58
  }
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: RailNavItem, decorators: [{
60
60
  type: Component,
@@ -64,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
64
64
  'class': 'ngs-rail-nav-item',
65
65
  '[class.is-active]': 'isActive',
66
66
  '(click)': 'click($event)'
67
- }, template: "<div class=\"icon\" ngsRipple>\n <ng-content select=\"[ngsRailNavItemIcon]\"/>\n</div>\n<div class=\"label\">\n <ng-content/>\n</div>\n", styles: [":host{display:flex;flex:none;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;gap:var(--ngs-rail-nav-item-gap);color:var(--ngs-rail-nav-bg-item-color)}:host .icon{padding:var(--ngs-rail-nav-item-icon-padding);border-radius:var(--ngs-rail-nav-item-icon-radius);color:var(--ngs-rail-nav-bg-item-icon-color);display:flex;align-items:center;justify-content:center}:host .icon:empty{display:none}:host:hover .icon{background:var(--ngs-rail-nav-bg-item-icon-hover-bg)}:host:hover .icon ::ng-deep *{scale:1.025;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.25s}:host:active .icon{background:var(--ngs-rail-nav-bg-item-icon-active-bg)}:host.is-active{--icon-color: var(--ngs-rail-nav-bg-item-icon-is-active-color)}:host.is-active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-bg)}:host.is-active{color:var(--ngs-rail-nav-bg-item-active-color)}:host.is-active:active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-active-bg)}:host .label{font-size:var(--ngs-rail-nav-label-font-size)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
67
+ }, template: "<div class=\"icon\" ngsRipple>\n <ng-content select=\"[ngsRailNavItemIcon]\"/>\n</div>\n<div class=\"label\">\n <ng-content/>\n</div>\n", styles: [":host{display:flex;flex:none;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;gap:var(--ngs-rail-nav-item-gap);color:var(--ngs-rail-nav-bg-item-color)}:host .icon{padding:var(--ngs-rail-nav-item-icon-padding);border-radius:var(--ngs-rail-nav-item-icon-radius);color:var(--ngs-rail-nav-bg-item-icon-color);display:flex;align-items:center;justify-content:center}:host .icon:empty{display:none}:host:hover .icon{background:var(--ngs-rail-nav-bg-item-icon-hover-bg)}:host:hover .icon ::ng-deep *{scale:1.025;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.25s}:host:active .icon{background:var(--ngs-rail-nav-bg-item-icon-active-bg)}:host.is-active{--ngs-icon-color: var(--ngs-rail-nav-bg-item-icon-is-active-color)}:host.is-active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-bg)}:host.is-active{color:var(--ngs-rail-nav-bg-item-active-color)}:host.is-active:active .icon{background:var(--ngs-rail-nav-bg-item-icon-is-active-active-bg)}:host .label{font-size:var(--ngs-rail-nav-label-font-size)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
68
68
  }], propDecorators: { key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }] } });
69
69
 
70
70
  class RailNavItemIconDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-rail-nav.mjs","sources":["../../../projects/components/rail-nav/src/types.ts","../../../projects/components/rail-nav/src/rail-nav/rail-nav.ts","../../../projects/components/rail-nav/src/rail-nav/rail-nav.html","../../../projects/components/rail-nav/src/rail-nav-item/rail-nav-item.ts","../../../projects/components/rail-nav/src/rail-nav-item/rail-nav-item.html","../../../projects/components/rail-nav/src/rail-nav-item-icon.directive.ts","../../../projects/components/rail-nav/ngstarter-ui-components-rail-nav.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const RAIL_NAV = new InjectionToken('RAIL_NAV');\n\nexport interface RailNavAPI {\n getActiveKey: () => any;\n activateItem: (key: any) => void;\n isActive: (key: any) => boolean;\n}\n\nexport interface RailNavComponent {\n api: RailNavAPI;\n}\n","import { Component, forwardRef, input, OnInit } from '@angular/core';\nimport { RAIL_NAV, RailNavAPI } from '../types';\n\n@Component({\n selector: 'ngs-rail-nav',\n exportAs: 'ngsRailNav',\n imports: [],\n templateUrl: './rail-nav.html',\n styleUrl: './rail-nav.scss',\n providers: [\n {\n provide: RAIL_NAV,\n useExisting: forwardRef(() => RailNav),\n }\n ],\n host: {\n 'class': 'ngs-rail-nav'\n }\n})\nexport class RailNav implements OnInit {\n activeKey = input();\n\n private _activeKey: any;\n\n readonly api: RailNavAPI = {\n activateItem: (key: any) => {\n this._activeKey = key;\n },\n getActiveKey: () => this._activeKey,\n isActive: (key: any) => key === this._activeKey,\n };\n\n ngOnInit() {\n this._activeKey = this.activeKey();\n }\n}\n","<ng-content/>\n","import { Component, inject, input } from '@angular/core';\nimport { v7 as uuid } from 'uuid';\nimport { RAIL_NAV, RailNavComponent } from '../types';\nimport { Ripple } from '@ngstarter-ui/components/core';\n\n@Component({\n selector: 'ngs-rail-nav-item,[ngs-rail-nav-item]',\n exportAs: 'ngsRailNavItem',\n templateUrl: './rail-nav-item.html',\n styleUrl: './rail-nav-item.scss',\n imports: [\n Ripple\n ],\n host: {\n 'class': 'ngs-rail-nav-item',\n '[class.is-active]': 'isActive',\n '(click)': 'click($event)'\n }\n})\nexport class RailNavItem {\n protected _railNav = inject<RailNavComponent>(RAIL_NAV);\n\n key = input(uuid());\n\n get isActive(): boolean {\n if (!this.key() || !this._railNav.api.getActiveKey()) {\n return false;\n }\n\n return this._railNav.api.isActive(this.key());\n }\n\n click(event: MouseEvent) {\n if (!this.key()) {\n return;\n }\n\n this._railNav.api.activateItem(this.key());\n }\n}\n","<div class=\"icon\" ngsRipple>\n <ng-content select=\"[ngsRailNavItemIcon]\"/>\n</div>\n<div class=\"label\">\n <ng-content/>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsRailNavItemIcon]',\n standalone: true\n})\nexport class RailNavItemIconDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid"],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-rail-nav.mjs","sources":["../../../projects/components/rail-nav/src/types.ts","../../../projects/components/rail-nav/src/rail-nav/rail-nav.ts","../../../projects/components/rail-nav/src/rail-nav/rail-nav.html","../../../projects/components/rail-nav/src/rail-nav-item/rail-nav-item.ts","../../../projects/components/rail-nav/src/rail-nav-item/rail-nav-item.html","../../../projects/components/rail-nav/src/rail-nav-item-icon.directive.ts","../../../projects/components/rail-nav/ngstarter-ui-components-rail-nav.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const RAIL_NAV = new InjectionToken('RAIL_NAV');\n\nexport interface RailNavAPI {\n getActiveKey: () => any;\n activateItem: (key: any) => void;\n isActive: (key: any) => boolean;\n}\n\nexport interface RailNavComponent {\n api: RailNavAPI;\n}\n","import { Component, forwardRef, input, OnInit } from '@angular/core';\nimport { RAIL_NAV, RailNavAPI } from '../types';\n\n@Component({\n selector: 'ngs-rail-nav',\n exportAs: 'ngsRailNav',\n imports: [],\n templateUrl: './rail-nav.html',\n styleUrl: './rail-nav.scss',\n providers: [\n {\n provide: RAIL_NAV,\n useExisting: forwardRef(() => RailNav),\n }\n ],\n host: {\n 'class': 'ngs-rail-nav'\n }\n})\nexport class RailNav implements OnInit {\n activeKey = input();\n\n private _activeKey: any;\n\n readonly api: RailNavAPI = {\n activateItem: (key: any) => {\n this._activeKey = key;\n },\n getActiveKey: () => this._activeKey,\n isActive: (key: any) => key === this._activeKey,\n };\n\n ngOnInit() {\n this._activeKey = this.activeKey();\n }\n}\n","<ng-content/>\n","import { Component, inject, input } from '@angular/core';\nimport { v7 as uuid } from 'uuid';\nimport { RAIL_NAV, RailNavComponent } from '../types';\nimport { Ripple } from '@ngstarter-ui/components/core';\n\n@Component({\n selector: 'ngs-rail-nav-item,[ngs-rail-nav-item]',\n exportAs: 'ngsRailNavItem',\n templateUrl: './rail-nav-item.html',\n styleUrl: './rail-nav-item.scss',\n imports: [\n Ripple\n ],\n host: {\n 'class': 'ngs-rail-nav-item',\n '[class.is-active]': 'isActive',\n '(click)': 'click($event)'\n }\n})\nexport class RailNavItem {\n protected _railNav = inject<RailNavComponent>(RAIL_NAV);\n\n key = input(uuid());\n\n get isActive(): boolean {\n if (!this.key() || !this._railNav.api.getActiveKey()) {\n return false;\n }\n\n return this._railNav.api.isActive(this.key());\n }\n\n click(event: MouseEvent) {\n if (!this.key()) {\n return;\n }\n\n this._railNav.api.activateItem(this.key());\n }\n}\n","<div class=\"icon\" ngsRipple>\n <ng-content select=\"[ngsRailNavItemIcon]\"/>\n</div>\n<div class=\"label\">\n <ng-content/>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsRailNavItemIcon]',\n standalone: true\n})\nexport class RailNavItemIconDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid"],"mappings":"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"}
@@ -200,7 +200,7 @@ class ScrollSpyBackToTop {
200
200
  }
201
201
  }
202
202
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ScrollSpyBackToTop, deps: [], target: i0.ɵɵFactoryTarget.Component });
203
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: ScrollSpyBackToTop, isStandalone: true, selector: "ngs-scroll-spy-back-to-top,[ngs-scroll-spy-back-to-top]", host: { listeners: { "click": "scrollToTop()" } }, exportAs: ["ngsScrollSpyBackToTop"], ngImport: i0, template: "<ngs-icon name=\"fluent:arrow-up-24-regular\"/>\n<ng-content/>\n", styles: [":host{display:inline-flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1);font-size:var(--ngs-font-size-sm);font-weight:600;cursor:pointer;--icon-size: calc(var(--spacing, .25rem) * 4.5)}:host:hover{color:var(--ngs-color-primary)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }] });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: ScrollSpyBackToTop, isStandalone: true, selector: "ngs-scroll-spy-back-to-top,[ngs-scroll-spy-back-to-top]", host: { listeners: { "click": "scrollToTop()" } }, exportAs: ["ngsScrollSpyBackToTop"], ngImport: i0, template: "<ngs-icon name=\"fluent:arrow-up-24-regular\"/>\n<ng-content/>\n", styles: [":host{display:inline-flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1);font-size:var(--ngs-font-size-sm);font-weight:600;cursor:pointer;--ngs-icon-size: calc(var(--spacing, .25rem) * 4.5)}:host:hover{color:var(--ngs-color-primary)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }] });
204
204
  }
205
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ScrollSpyBackToTop, decorators: [{
206
206
  type: Component,
@@ -208,7 +208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
208
208
  Icon
209
209
  ], host: {
210
210
  '(click)': 'scrollToTop()'
211
- }, template: "<ngs-icon name=\"fluent:arrow-up-24-regular\"/>\n<ng-content/>\n", styles: [":host{display:inline-flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1);font-size:var(--ngs-font-size-sm);font-weight:600;cursor:pointer;--icon-size: calc(var(--spacing, .25rem) * 4.5)}:host:hover{color:var(--ngs-color-primary)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
211
+ }, template: "<ngs-icon name=\"fluent:arrow-up-24-regular\"/>\n<ng-content/>\n", styles: [":host{display:inline-flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1);font-size:var(--ngs-font-size-sm);font-weight:600;cursor:pointer;--ngs-icon-size: calc(var(--spacing, .25rem) * 4.5)}:host:hover{color:var(--ngs-color-primary)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
212
212
  }] });
213
213
 
214
214
  /**