import { ElementRef, EventEmitter, Renderer2 } from '@angular/core'; import { Subject } from 'rxjs'; import { GasClickOutsideDirective } from '../../../utils/click-outside-directive/gas-click-outside.directive'; import { GasContextGroup, GasContextMenu, GasMenySize } from '../gas-menu.interface'; export declare class GasContextMenuComponent { private renderer; el: ElementRef; private gasClickOutsideDirective; onMenuClicked$: EventEmitter; /** элемент вложенного меню */ subMenuRef: ElementRef; /** навешиваем класс с размером меню */ get largeSize(): boolean; get smallSize(): boolean; /** пункты меню */ gasContextMenu: GasContextGroup[]; /** Размер элемента меню */ size: GasMenySize | string; /** вложенное меню отображаемое на экране */ subMenu: GasContextMenu[]; closeContextMenuSubject$: Subject; constructor(renderer: Renderer2, el: ElementRef, gasClickOutsideDirective: GasClickOutsideDirective); /** скрываем вложенное меню по потере фокуса */ hideContextMenu(): void; /** * отображаем вложенное меню по наведению на пункт меню */ showContextMenu(index: number, contextItem: GasContextGroup, link: GasContextMenu, menuItem: HTMLElement, groupMenu: HTMLElement): void; /** Эмиттим выбранный пункт меню */ emitSelectedLink(link: GasContextMenu): void; contextItemClicked(item: GasContextMenu): void; /** * Рассчитываем координаты для top. Если это пункт из группы меню, к отступу прибавляем произведение высоты пункта меню и его * индекса увеличенного на 1 (если индекс = 0, то потеряем всю высоту). Если меню не из группы - просто возвращает отступ */ private calculatedOffsetTop; }