@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
141 lines (140 loc) • 5.03 kB
TypeScript
import { AfterViewChecked, ChangeDetectorRef, ComponentRef, ElementRef, OnDestroy, OnInit, Renderer2, TemplateRef } from '@angular/core';
import { Router } from '@angular/router';
import { Subject, Subscription } from 'rxjs';
import { WindowRef } from '@spartacus/core';
import { PopoverEvent, PopoverPosition } from './popover.model';
import { PositioningService } from '../../services/positioning/positioning.service';
import { FocusConfig } from '../../../layout/a11y/keyboard-focus/keyboard-focus.model';
import { ICON_TYPE } from '../../../cms-components/misc/icon/icon.model';
import * as i0 from "@angular/core";
export declare class PopoverComponent implements OnInit, OnDestroy, AfterViewChecked {
protected positioningService: PositioningService;
protected winRef: WindowRef;
protected changeDetectionRef: ChangeDetectorRef;
protected renderer: Renderer2;
protected router: Router;
/**
* String or template to be rendered inside popover wrapper component.
*/
content: string | TemplateRef<any>;
/**
* Element which triggers displaying popover component.
* This property is needed to calculate valid position for popover.
*/
triggerElement: ElementRef;
/**
* Current initiated popover instance.
*/
popoverInstance: ComponentRef<PopoverComponent>;
/**
* Flag which informs positioning service if popover component
* should be appended to body. Otherwise popover is displayed right after
* trigger element in DOM.
*/
appendToBody?: boolean;
/**
* The preferred placement of the popover. Default popover position is 'top'.
*
* Allowed popover positions: 'auto', 'top', 'bottom', 'left', 'right',
* 'top-left', 'top-right', 'bottom-left', 'bottom-right',
* 'left-top', 'left-bottom', 'right-top', 'right-bottom'.
*/
position?: PopoverPosition;
/**
* Flag used to define if popover should look for the best placement
* in case if there is not enough space in viewport for preferred position.
*
* By default this property is set to `true`.
*
* Value of this flag is omitted if preferred position is set to `auto`.
*/
autoPositioning?: boolean;
/**
* Custom class name passed to popover component.
*
* If this property is not set the default popover class is `cx-popover`.
*/
customClass?: string;
/**
* Flag used to show/hide close button in popover component.
*/
displayCloseButton?: boolean;
/**
* Flag which indicates if passed content is a TemplateRef or string.
*/
isTemplate: boolean;
/**
* After popover component is initialized position needs to be changing dynamically
* in case if any viewport changes happened.
*/
resizeSub: Subscription;
/**
* After popover component is initialized popover should be closed in case
* if current route has been changed.
*/
routeChangeSub: Subscription;
/**
* Class name generated by positioning service indicating position of popover.
*/
popoverClass: PopoverPosition;
/**
* Configuration for a11y improvements.
*/
focusConfig: FocusConfig;
/**
* Flag indicates if popover should be re-positioned on scroll event.
*/
positionOnScroll?: boolean;
/**
* Icon types for close button icon.
*/
iconTypes: typeof ICON_TYPE;
/**
* Subject which emits specific type of `PopoverEvent`.
*/
eventSubject: Subject<PopoverEvent>;
/**
* Scroll event unlistener.
*/
scrollEventUnlistener: () => void;
/**
* Binding class name property.
*/
baseClass: string;
/**
* Listens for click inside popover component wrapper.
*/
insideClick(): void;
/**
* Listens for every document click and ignores clicks
* inside component.
*/
outsideClick(event: MouseEvent): void;
/**
* Listens for `escape` keydown event.
*/
escapeKeydown(): void;
protected isClickedOnPopover(event: any): any;
protected isClickedOnDirective(event: any): any;
/**
* Emits close event trigger.
*/
close(event: MouseEvent | KeyboardEvent): void;
/**
* Method uses `Renderer2` service to listen window scroll event.
*
* Registered only if property `positionOnScroll` is set to `true`.
*/
triggerScrollEvent(): void;
/**
* Method uses positioning service calculation and based on that
* updates class name for popover component instance.
*/
positionPopover(): void;
ngOnInit(): void;
ngAfterViewChecked(): void;
ngOnDestroy(): void;
constructor(positioningService: PositioningService, winRef: WindowRef, changeDetectionRef: ChangeDetectorRef, renderer: Renderer2, router: Router);
static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "cx-popover", never, {}, {}, never, never>;
}