UNPKG

ng-devui

Version:

DevUI components based on Angular

1 lines 25.1 kB
{"version":3,"file":"ng-devui-menu.mjs","sources":["../../devui/menu/menu.component.ts","../../devui/menu/submenu.service.ts","../../devui/menu/menu-item.directive.ts","../../devui/menu/sub-menu.component.ts","../../devui/menu/sub-menu.component.html","../../devui/menu/menu.module.ts","../../devui/menu/ng-devui-menu.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MenuItemClickType } from './type';\n\n@Component({\n selector: 'd-menu, [dMenu]',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n })\nexport class MenuComponent implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class.collapsed') @Input() collapsed = false;\n @HostBinding('class.devui-menu') menuClass = true;\n collapsedSubject = new BehaviorSubject(this.collapsed);\n collapsed$ = this.collapsedSubject.asObservable();\n\n @Output() readonly menuItemClick = new EventEmitter<MenuItemClickType>();\n\n ngOnChanges({ collapsed }: SimpleChanges): void {\n if (collapsed) {\n this.collapsedSubject.next(collapsed.currentValue);\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this.collapsedSubject.next(false);\n this.collapsedSubject.complete();\n }\n}\n","import {\n ChangeDetectorRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport { MenuHoverTypes } from './type';\nimport { MenuItemDirective } from './menu-item.directive';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable()\nexport class SubMenuService {\n readonly parentSubMenuService = inject(SubMenuService, {\n skipSelf: true,\n optional: true\n });\n\n menuItems: MenuItemDirective[] = [];\n readonly childState$ = new Subject<MenuHoverTypes>();\n readonly parentPopoverOpen$ = new BehaviorSubject(false);\n\n readonly childActive$ = new Subject<boolean>();\n readonly parentSubMenuActive$ = new BehaviorSubject(false);\n protected cdr = inject(ChangeDetectorRef);\n level = 1;\n constructor() {\n if (this.parentSubMenuService) {\n this.level = this.parentSubMenuService.level + 1;\n }\n }\n\n setChildActive() {\n const active = this.menuItems.some(item => item.active);\n this.childActive$.next(active);\n }\n}\n","import {\n Input,\n OnInit,\n Directive,\n HostBinding,\n EventEmitter,\n Output,\n inject,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef\n} from '@angular/core';\nimport { MenuHoverTypes } from './type';\nimport { HostListener } from '@angular/core';\nimport { MenuComponent } from './menu.component';\nimport { SubMenuService } from './submenu.service';\n\n@Directive({\n selector: '[dMenuItem]',\n exportAs: 'dMenuItem',\n })\nexport class MenuItemDirective implements OnInit, OnChanges {\n @Input() subMenuHost = false;\n @HostBinding('class.no-style') @Input() noStyle = false;\n @HostBinding('class.disabled') @Input() disabled = false;\n @HostBinding('class.active') @Input() active = false;\n @HostBinding('class.devui-menu-item') menuItemClass = true;\n\n @Output() itemClick = new EventEmitter<MouseEvent>();\n @Output() titleHover = new EventEmitter<MenuHoverTypes>();\n protected cdr = inject(ChangeDetectorRef);\n\n protected menuComponent = inject(MenuComponent, {\n skipSelf: true\n });\n\n protected submenuService = inject(SubMenuService, {\n skipSelf: true,\n optional: true\n });\n\n @HostListener('mouseenter', ['$event']) hostMouseEnter(event: MouseEvent) {\n this.hostHover('enter');\n }\n\n @HostListener('mouseleave', ['$event']) hostMouseLeave(event: MouseEvent) {\n this.hostHover('leave');\n }\n\n @HostListener('click', ['$event']) hostClick(event: MouseEvent) {\n if (!this.disabled) {\n this.itemClick.emit(event);\n if (!this.subMenuHost) {\n this.menuComponent.menuItemClick.emit({\n item: this,\n event\n });\n if (this.submenuService) {\n this.submenuService.childState$.next('leave');\n }\n }\n }\n }\n\n hostHover(type: MenuHoverTypes) {\n if (!this.disabled && this.submenuService) {\n this.titleHover.emit(type);\n }\n }\n\n ngOnChanges({ active }: SimpleChanges): void {\n if (active && this.submenuService) {\n if (active.firstChange) {\n setTimeout(() => {\n this.submenuService.setChildActive();\n this.cdr.markForCheck();\n }, 0);\n } else {\n this.submenuService.setChildActive();\n }\n }\n }\n\n ngOnInit() { }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n inject,\n TemplateRef,\n QueryList,\n ContentChildren,\n AfterContentInit,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { collapseMotion, scaleInOut } from 'ng-devui/utils';\nimport { MenuComponent } from './menu.component';\nimport { MenuHoverTypes, SubTitleContextType } from './type';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { MenuItemDirective } from './menu-item.directive';\nimport { auditTime, combineLatest, distinctUntilChanged, filter } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SubMenuService } from './submenu.service';\n\n@Component({\n selector: 'd-sub-menu, [dSubMenu]',\n templateUrl: './sub-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [collapseMotion, scaleInOut],\n providers: [SubMenuService],\n })\nexport class SubMenuComponent implements OnInit, AfterContentInit {\n @ContentChildren(MenuItemDirective) menuItemDirectives: QueryList<MenuItemDirective>;\n @HostBinding('class.devui-sub-menu') subMenuClass = true;\n @HostBinding('class.no-style') @Input() noStyle = false;\n @HostBinding('class.open') _open = false;\n @Input()\n set open(value: boolean) {\n this._open = value;\n }\n\n get open() {\n return this._open;\n }\n\n @Input() disabled = false;\n @Input() title: string | TemplateRef<SubTitleContextType> = '';\n @Input() icon = '';\n @Output() openChange = new EventEmitter<boolean>();\n\n get titleContext(): SubTitleContextType {\n return {\n $implicit: this.title instanceof TemplateRef ? '' : this.title,\n open: this.open,\n disabled: this.disabled,\n icon: this.icon,\n };\n }\n\n protected submenuService = inject(SubMenuService, { self: true });\n protected parentMenu = inject(MenuComponent, { skipSelf: true });\n\n protected cdr = inject(ChangeDetectorRef);\n\n afterInitAnimate = true;\n\n positions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 4\n }\n ];\n\n private childActive = false;\n\n collapsed = false;\n\n popoverOpen = false;\n\n constructor() {\n // 如果不在constructor里,takeUntilDestroyed就得传入 destroyRef = inject(DestroyRef);\n this.parentMenu.collapsed$.pipe(takeUntilDestroyed()).subscribe(res => {\n this.collapsed = res;\n this.togglePopOpen(false);\n this.cdr.markForCheck();\n });\n\n const currentActive$ = this.submenuService.childActive$;\n combineLatest([this.submenuService.parentSubMenuActive$, currentActive$])\n .pipe(\n map((([parentActive, currentActive]) => parentActive || currentActive)),\n distinctUntilChanged(),\n takeUntilDestroyed()\n ).subscribe(res => {\n this.toggleActive(res);\n this.submenuService.parentSubMenuService?.parentSubMenuActive$?.next(res);\n this.cdr.markForCheck();\n });\n\n const currentPopoverOpen$ = this.submenuService.childState$.pipe(map((value => value === 'enter')));\n combineLatest([this.submenuService.parentPopoverOpen$, currentPopoverOpen$])\n .pipe(\n filter(() => this.collapsed && !this.disabled),\n map((([parentPopoverOpen, currentPopoverOpen]) => {\n return parentPopoverOpen || currentPopoverOpen;\n })),\n auditTime(150),\n distinctUntilChanged(),\n takeUntilDestroyed()\n ).subscribe(open => {\n this.togglePopOpen(open);\n this.submenuService.parentSubMenuService?.parentPopoverOpen$.next(open);\n this.cdr.markForCheck();\n });\n }\n\n ngOnInit() { }\n ngAfterContentInit(): void {\n if (this.menuItemDirectives?.length) {\n this.submenuService.menuItems.push(...this.menuItemDirectives.toArray());\n if (this.submenuService.parentSubMenuService) {\n this.submenuService.parentSubMenuService.menuItems.push(...this.menuItemDirectives.toArray());\n }\n }\n }\n\n titleClick() {\n if (this.disabled || this.collapsed) { return; }\n this.toggleOpen(!this.open);\n }\n\n\n titleHover(type: MenuHoverTypes) {\n this.submenuService.childState$.next(type);\n }\n\n toggleOpen(open: boolean) {\n if (open !== this.open) {\n this.open = open;\n this.openChange.emit(open);\n }\n }\n\n togglePopOpen(open: boolean) {\n if (open !== this.popoverOpen) {\n this.popoverOpen = open;\n }\n }\n\n get expandState() {\n return this.open ? 'expanded' : 'collapsed';\n }\n\n stateCls(base: string) {\n return `${base} ${this.childActive ? 'active' : ''} ${this.disabled ? 'disabled' : ''} ${this.noStyle ? 'no-style' : ''}`;\n }\n\n toggleActive(active: boolean) {\n if (active !== this.childActive) {\n this.childActive = active;\n }\n }\n}\n","<div\n [class]=\"stateCls('devui-sub-menu-item')\"\n dMenuItem\n [subMenuHost]=\"true\"\n (itemClick)=\"titleClick()\"\n (titleHover)=\"titleHover($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n>\n <div class=\"devui-sub-menu-item-title\" role=\"menu\" *dStrTplOutlet=\"title; context: titleContext\">\n <ng-content select=\"[title]\" *ngIf=\"!title\" />\n <d-icon class=\"devui-menu-item-icon\" *ngIf=\"icon\" [disabled]=\"disabled\" [icon]=\"icon\" />\n <span class=\"devui-menu-item-name over-flow-ellipsis\" [title]=\"title\">{{ title }}</span>\n </div>\n <d-icon class=\"devui-sub-menu-item-arrow\" [disabled]=\"disabled\" icon=\"icon-select-arrow\" />\n</div>\n\n<ng-container *ngIf=\"collapsed; else defaultChildrenTpl\">\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayPush\n cdkConnectedOverlayPanelClass=\"devui-menu-popover-panel\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"popoverOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n cdkConnectedOverlayTransformOriginOn=\".devui-sub-menu\"\n >\n <div [class]=\"stateCls('devui-menu-popover')\" @scaleInOut (mouseenter)=\"titleHover('enter')\" (mouseleave)=\"titleHover('leave')\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #defaultChildrenTpl>\n <div class=\"devui-sub-menu-children\" [style.--level]=\"submenuService.level\" [@collapseMotion]=\"expandState\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\" />\n </div>\n</ng-template>\n\n<ng-template #contentTpl>\n <ng-content />\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MenuComponent } from './menu.component';\nimport { IconModule } from 'ng-devui/icon';\nimport { MenuItemDirective } from './menu-item.directive';\nimport { SubMenuComponent } from './sub-menu.component';\nimport { StrTplOutletModule } from 'ng-devui/utils';\n\n@NgModule({\n imports: [CommonModule, IconModule, OverlayModule, StrTplOutletModule,],\n exports: [\n MenuComponent,\n MenuItemDirective,\n SubMenuComponent,\n ],\n declarations: [\n MenuComponent,\n MenuItemDirective,\n SubMenuComponent,\n ],\n })\nexport class MenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5.MenuItemDirective"],"mappings":"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"}