{"version":3,"file":"fgrid-ngx-mde.mjs","sources":["../../../../projects/material-extended/mde/src/lib/popover/popover-errors.ts","../../../../projects/material-extended/mde/src/lib/popover/popover.ts","../../../../projects/material-extended/mde/src/lib/popover/popover.html","../../../../projects/material-extended/mde/src/lib/popover/popover-trigger.ts","../../../../projects/material-extended/mde/src/lib/popover/popover-target.ts","../../../../projects/material-extended/mde/src/lib/popover/popover-module.ts","../../../../projects/material-extended/mde/src/public_api.ts","../../../../projects/material-extended/mde/src/fgrid-ngx-mde.ts"],"sourcesContent":["/**\r\n * Throws an exception for the case when popover trigger doesn't have a valid mde-popover instance\r\n */\r\nexport function throwMdePopoverMissingError() {\r\n  throw Error(`mde-popover-trigger: must pass in an mde-popover instance.\r\n\r\n    Example:\r\n      <mde-popover #popover=\"mdePopover\"></mde-popover>\r\n      <button [mdePopoverTriggerFor]=\"popover\"></button>`);\r\n}\r\n\r\n/**\r\n * Throws an exception for the case when popover's mdePopoverPositionX value isn't valid.\r\n * In other words, it doesn't match 'before' or 'after'.\r\n */\r\nexport function throwMdePopoverInvalidPositionX() {\r\n  throw Error(`mdePopoverPositionX value must be either 'before' or after'.\r\n      Example: <mde-popover mdePopoverPositionX=\"before\" #popover=\"mdePopover\"></mde-popover>`);\r\n}\r\n\r\n/**\r\n * Throws an exception for the case when popover's mdePopoverPositionY value isn't valid.\r\n * In other words, it doesn't match 'above' or 'below'.\r\n */\r\nexport function throwMdePopoverInvalidPositionY() {\r\n  throw Error(`mdePopoverPositionY value must be either 'above' or below'.\r\n      Example: <mde-popover mdePopoverPositionY=\"above\" #popover=\"mdePopover\"></mde-popover>`);\r\n}\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewEncapsulation,\r\n  ElementRef,\r\n  ChangeDetectionStrategy,\r\n  HostBinding,\r\n  NgZone\r\n} from '@angular/core';\r\n\r\nimport { AnimationEvent } from '@angular/animations';\r\n\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ESCAPE } from '@angular/cdk/keycodes';\r\n\r\nimport { MdePopoverPositionX, MdePopoverPositionY, MdePopoverTriggerEvent, MdePopoverScrollStrategy } from './popover-types';\r\nimport { throwMdePopoverInvalidPositionX, throwMdePopoverInvalidPositionY } from './popover-errors';\r\nimport { MdePopoverPanel } from './popover-interfaces';\r\n\r\n@Component({\r\n  selector: 'mde-popover',\r\n  templateUrl: './popover.html',\r\n  styleUrls: ['./popover.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  exportAs: 'mdePopover'\r\n})\r\nexport class MdePopover implements MdePopoverPanel, OnDestroy { // tslint:disable-line:component-class-suffix\r\n\r\n  @HostBinding('attr.role') role = 'dialog';\r\n\r\n  /** Settings for popover, view setters and getters for more detail */\r\n  private _positionX: MdePopoverPositionX = 'after';\r\n  private _positionY: MdePopoverPositionY = 'below';\r\n  private _triggerEvent: MdePopoverTriggerEvent = 'hover';\r\n  private _scrollStrategy: MdePopoverScrollStrategy = 'reposition';\r\n  private _enterDelay = 200;\r\n  private _leaveDelay = 200;\r\n  private _overlapTrigger = true;\r\n  private _disableAnimation = false;\r\n  private _targetOffsetX = 0;\r\n  private _targetOffsetY = 0;\r\n  private _arrowOffsetX = 20;\r\n  private _arrowWidth = 8;\r\n  private _arrowColor = 'rgba(0, 0, 0, 0.12)';\r\n  private _closeOnClick = true;\r\n  private _focusTrapEnabled = true;\r\n  private _focusTrapAutoCaptureEnabled = true;\r\n\r\n  /** Config object to be passed into the popover's ngClass */\r\n  _classList: {[key: string]: boolean} = {};\r\n\r\n  // TODO: Write comment description\r\n  /** */\r\n  public containerPositioning = false;\r\n\r\n  /** Closing disabled on popover */\r\n  public closeDisabled = false;\r\n\r\n  /** Config object to be passed into the popover's arrow ngStyle */\r\n  public popoverPanelStyles: {};\r\n\r\n  /** Config object to be passed into the popover's arrow ngStyle */\r\n  public popoverArrowStyles: {};\r\n\r\n  /** Config object to be passed into the popover's content ngStyle */\r\n  public popoverContentStyles: {};\r\n\r\n  /** Emits the current animation state whenever it changes. */\r\n  _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n\r\n  /** Position of the popover in the X axis. */\r\n  @Input('mdePopoverPositionX')\r\n  get positionX() { return this._positionX; }\r\n  set positionX(value: MdePopoverPositionX) {\r\n    if (value !== 'before' && value !== 'after') {\r\n      throwMdePopoverInvalidPositionX();\r\n    }\r\n    this._positionX = value;\r\n    this.setPositionClasses();\r\n  }\r\n\r\n  /** Position of the popover in the Y axis. */\r\n  @Input('mdePopoverPositionY')\r\n  get positionY() { return this._positionY; }\r\n  set positionY(value: MdePopoverPositionY) {\r\n    if (value !== 'above' && value !== 'below') {\r\n      throwMdePopoverInvalidPositionY();\r\n    }\r\n    this._positionY = value;\r\n    this.setPositionClasses();\r\n  }\r\n\r\n  /** Popover trigger event */\r\n  @Input('mdePopoverTriggerOn')\r\n  get triggerEvent(): MdePopoverTriggerEvent { return this._triggerEvent; }\r\n  set triggerEvent(value: MdePopoverTriggerEvent) { this._triggerEvent = value; }\r\n\r\n  /** Popover scroll strategy */\r\n  @Input('mdePopoverScrollStrategy')\r\n  get scrollStrategy(): MdePopoverScrollStrategy { return this._scrollStrategy; }\r\n  set scrollStrategy(value: MdePopoverScrollStrategy) { this._scrollStrategy = value; }\r\n\r\n  /** Popover enter delay */\r\n  @Input('mdePopoverEnterDelay')\r\n  get enterDelay(): number { return this._enterDelay; }\r\n  set enterDelay(value: number) { this._enterDelay = value; }\r\n\r\n  /** Popover leave delay */\r\n  @Input('mdePopoverLeaveDelay')\r\n  get leaveDelay(): number { return this._leaveDelay; }\r\n  set leaveDelay(value: number) { this._leaveDelay = value; }\r\n\r\n  /** Popover overlap trigger */\r\n  @Input('mdePopoverOverlapTrigger')\r\n  get overlapTrigger(): boolean { return this._overlapTrigger; }\r\n  set overlapTrigger(value: boolean) { this._overlapTrigger = value; }\r\n\r\n  /** Popover target offset x */\r\n  @Input('mdePopoverOffsetX')\r\n  get targetOffsetX(): number { return this._targetOffsetX; }\r\n  set targetOffsetX(value: number) { this._targetOffsetX = value; }\r\n\r\n  /** Popover target offset y */\r\n  @Input('mdePopoverOffsetY')\r\n  get targetOffsetY(): number { return this._targetOffsetY; }\r\n  set targetOffsetY(value: number) { this._targetOffsetY = value; }\r\n\r\n  /** Popover arrow offset x */\r\n  @Input('mdePopoverArrowOffsetX')\r\n  get arrowOffsetX(): number { return this._arrowOffsetX; }\r\n  set arrowOffsetX(value: number) { this._arrowOffsetX = value; }\r\n\r\n  /** Popover arrow width */\r\n  @Input('mdePopoverArrowWidth')\r\n  get arrowWidth(): number { return this._arrowWidth; }\r\n  set arrowWidth(value: number) { this._arrowWidth = value; }\r\n\r\n  /** Popover arrow color */\r\n  @Input('mdePopoverArrowColor')\r\n  get arrowColor(): string { return this._arrowColor; }\r\n  set arrowColor(value: string) { this._arrowColor = value; }\r\n\r\n  /**\r\n   * Popover container close on click\r\n   * default: true\r\n   */\r\n  @Input('mdePopoverCloseOnClick')\r\n  get closeOnClick(): boolean { return this._closeOnClick; }\r\n  set closeOnClick(value: boolean) { this._closeOnClick = coerceBooleanProperty(value); }\r\n\r\n  /**\r\n   * Disable animations of popover and all child elements\r\n   * default: false\r\n   */\r\n  @Input('mdePopoverDisableAnimation')\r\n  get disableAnimation(): boolean { return this._disableAnimation; }\r\n  set disableAnimation(value: boolean) { this._disableAnimation = coerceBooleanProperty(value); }\r\n\r\n  /**\r\n   * Popover focus trap using cdkTrapFocus\r\n   * default: true\r\n   */\r\n  @Input('mdeFocusTrapEnabled')\r\n  get focusTrapEnabled(): boolean { return this._focusTrapEnabled; }\r\n  set focusTrapEnabled(value: boolean) { this._focusTrapEnabled = coerceBooleanProperty(value); }\r\n\r\n  /**\r\n   * Popover focus trap auto capture using cdkTrapFocusAutoCapture\r\n   * default: true\r\n   */\r\n  @Input('mdeFocusTrapAutoCaptureEnabled')\r\n  get focusTrapAutoCaptureEnabled(): boolean { return this._focusTrapAutoCaptureEnabled; }\r\n  set focusTrapAutoCaptureEnabled(value: boolean) { this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value); }\r\n\r\n  /**\r\n   * This method takes classes set on the host md-popover element and applies them on the\r\n   * popover template that displays in the overlay container.  Otherwise, it's difficult\r\n   * to style the containing popover from outside the component.\r\n   * @param classes list of class names\r\n   */\r\n  @Input('class')\r\n  set panelClass(classes: string) {\r\n    if (classes && classes.length) {\r\n      this._classList = classes.split(' ').reduce((obj: any, className: string) => {\r\n        obj[className] = true;\r\n        return obj;\r\n      }, {});\r\n\r\n      this._elementRef.nativeElement.className = '';\r\n      this.setPositionClasses();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * This method takes classes set on the host md-popover element and applies them on the\r\n   * popover template that displays in the overlay container.  Otherwise, it's difficult\r\n   * to style the containing popover from outside the component.\r\n   * @deprecated Use `panelClass` instead.\r\n   */\r\n  @Input()\r\n  get classList(): string { return this.panelClass; }\r\n  set classList(classes: string) { this.panelClass = classes; }\r\n\r\n  /** Event emitted when the popover is closed. */\r\n  @Output() close = new EventEmitter<void>();\r\n\r\n  @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n\r\n  constructor(private _elementRef: ElementRef, public zone: NgZone) {\r\n    this.setPositionClasses();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this._emitCloseEvent();\r\n    this.close.complete();\r\n  }\r\n\r\n\r\n  /** Handle a keyboard event from the popover, delegating to the appropriate action. */\r\n  _handleKeydown(event: KeyboardEvent) {\r\n    switch (event.keyCode) {\r\n      case ESCAPE:\r\n        this._emitCloseEvent();\r\n        return;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * This emits a close event to which the trigger is subscribed. When emitted, the\r\n   * trigger will close the popover.\r\n   */\r\n  _emitCloseEvent(): void {\r\n    this.close.emit();\r\n  }\r\n\r\n  /** Close popover on click if closeOnClick is true */\r\n  onClick() {\r\n    if (this.closeOnClick) {\r\n      this._emitCloseEvent();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.\r\n   * https://github.com/angular/material2/pull/5493#issuecomment-313085323\r\n   */\r\n  /** Disables close of popover when leaving trigger element and mouse over the popover */\r\n  onMouseOver() {\r\n    if (this.triggerEvent === 'hover') {\r\n      this.closeDisabled = true;\r\n    }\r\n  }\r\n  /** Enables close of popover when mouse leaving popover element */\r\n  onMouseLeave() {\r\n    if (this.triggerEvent === 'hover') {\r\n      this.closeDisabled = false;\r\n      this._emitCloseEvent();\r\n    }\r\n  }\r\n\r\n  // TODO: Refactor how styles are set and updated on the component, use best practices.\r\n  // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.\r\n  /** Sets the current styles for the popover to allow for dynamically changing settings */\r\n  setCurrentStyles() {\r\n\r\n    // TODO: See if arrow position can be calculated automatically and allow override.\r\n    // TODO: See if flex order is a better alternative to position arrow top or bottom.\r\n    this.popoverArrowStyles = {\r\n      'right': this.positionX === 'before' ? (this.arrowOffsetX - this.arrowWidth) + 'px' : '',\r\n      'left': this.positionX === 'after' ? (this.arrowOffsetX - this.arrowWidth) + 'px' : '',\r\n      'border-top': this.positionY === 'below' ?\r\n        this.arrowWidth + 'px solid ' + this.arrowColor : '0px solid transparent',\r\n      'border-right': 'undefined' === undefined ?\r\n        this.arrowWidth + 'px solid ' + this.arrowColor :\r\n        this.arrowWidth + 'px solid transparent',\r\n      'border-bottom': this.positionY === 'above' ?\r\n        this.arrowWidth + 'px solid ' + this.arrowColor :\r\n        this.arrowWidth + 'px solid transparent',\r\n      'border-left': 'undefined' === undefined ?\r\n        this.arrowWidth + 'px solid ' + this.arrowColor :\r\n        this.arrowWidth + 'px solid transparent',\r\n    };\r\n\r\n    // TODO: Remove if flex order is added.\r\n    this.popoverContentStyles = {\r\n      'padding-top': this.overlapTrigger === true ? '0px' : this.arrowWidth + 'px',\r\n      'padding-bottom': this.overlapTrigger === true ? '0px' : (this.arrowWidth) + 'px',\r\n      'margin-top': this.overlapTrigger === false && this.positionY === 'below' && this.containerPositioning === false ?\r\n        -(this.arrowWidth * 2) + 'px' : '0px'\r\n    };\r\n  }\r\n\r\n  /**\r\n   * It's necessary to set position-based classes to ensure the popover panel animation\r\n   * folds out from the correct direction.\r\n   */\r\n  setPositionClasses(posX = this.positionX, posY = this.positionY): void {\r\n    this._classList['mde-popover-before'] = posX === 'before';\r\n    this._classList['mde-popover-after'] = posX === 'after';\r\n    this._classList['mde-popover-above'] = posY === 'above';\r\n    this._classList['mde-popover-below'] = posY === 'below';\r\n  }\r\n}\r\n","<ng-template>\r\n  <div class=\"mde-popover-panel\" role=\"dialog\" [class.mde-popover-overlap]=\"overlapTrigger\"\r\n       [ngClass]=\"_classList\" [ngStyle]=\"popoverPanelStyles\" (keydown)=\"_handleKeydown($event)\"\r\n       (click)=\"onClick()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\" >\r\n    <div class=\"mde-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\" *ngIf=\"!overlapTrigger\"></div>\r\n    <div class=\"mde-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\" [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</ng-template>\r\n\r\n\r\n","import {\r\n  AfterViewInit,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  Optional,\r\n  Output,\r\n  ViewContainerRef,\r\n  HostListener,\r\n  HostBinding,\r\n  ChangeDetectorRef,\r\n  Inject,\r\n} from '@angular/core';\r\n\r\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  Overlay,\r\n  OverlayRef,\r\n  OverlayConfig,\r\n  HorizontalConnectionPos,\r\n  VerticalConnectionPos,\r\n  FlexibleConnectedPositionStrategy,\r\n  ScrollStrategy\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\n\r\nimport { Subscription, Subject } from 'rxjs';\r\n\r\nimport { MdePopoverPanel, MdeTarget } from './popover-interfaces';\r\nimport { MdePopoverPositionX, MdePopoverPositionY, MdePopoverTriggerEvent, MdePopoverScrollStrategy } from './popover-types';\r\nimport { throwMdePopoverMissingError } from './popover-errors';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\n\r\n/**\r\n * This directive is intended to be used in conjunction with an mde-popover tag. It is\r\n * responsible for toggling the display of the provided popover instance.\r\n */\r\n\r\n@Directive({\r\n  selector: '[mdePopoverTriggerFor]',\r\n  exportAs: 'mdePopoverTrigger'\r\n})\r\nexport class MdePopoverTrigger implements AfterViewInit, OnDestroy { // tslint:disable-line:directive-class-suffix\r\n\r\n  @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\r\n\r\n  popoverOpened = new Subject<void>();\r\n  popoverClosed = new Subject<void>();\r\n\r\n  private _portal: TemplatePortal<any>;\r\n  private _overlayRef: OverlayRef | null = null;\r\n  private _popoverOpen = false;\r\n  private _halt = false;\r\n  private _backdropSubscription: Subscription;\r\n  private _positionSubscription: Subscription;\r\n  private _detachmentsSubscription: Subscription;\r\n\r\n  private _mouseoverTimer: any;\r\n\r\n  // tracking input type is necessary so it's possible to only auto-focus\r\n  // the first item of the list when the popover is opened via the keyboard\r\n  private _openedByMouse = false;\r\n\r\n  private _onDestroy = new Subject<void>();\r\n\r\n  /** References the popover instance that the trigger is associated with. */\r\n  @Input('mdePopoverTriggerFor') popover: MdePopoverPanel;\r\n\r\n  /** References the popover target instance that the trigger is associated with. */\r\n  @Input('mdePopoverTargetAt') targetElement: MdeTarget;\r\n\r\n  /** Position of the popover in the X axis */\r\n  @Input('mdePopoverPositionX') positionX: MdePopoverPositionX;\r\n\r\n  /** Position of the popover in the Y axis */\r\n  @Input('mdePopoverPositionY') positionY: MdePopoverPositionY;\r\n\r\n  /** Popover trigger event */\r\n  @Input('mdePopoverTriggerOn') triggerEvent: MdePopoverTriggerEvent;\r\n\r\n  /** Popover delay */\r\n  @Input('mdePopoverEnterDelay') enterDelay: number;\r\n\r\n  /** Popover delay */\r\n  @Input('mdePopoverLeaveDelay') leaveDelay: number;\r\n\r\n  /** Popover overlap trigger */\r\n  @Input('mdePopoverOverlapTrigger') overlapTrigger: boolean;\r\n\r\n  /** Popover target offset x */\r\n  @Input('mdePopoverOffsetX') targetOffsetX: number;\r\n\r\n  /** Popover target offset y */\r\n  @Input('mdePopoverOffsetY') targetOffsetY: number;\r\n\r\n  /** Popover arrow offset x */\r\n  @Input('mdePopoverArrowOffsetX') arrowOffsetX: number;\r\n\r\n\r\n  /** Popover arrow width */\r\n  @Input('mdePopoverArrowWidth') arrowWidth: number;\r\n\r\n\r\n  /** Popover arrow color */\r\n  @Input('mdePopoverArrowColor') arrowColor: string;\r\n\r\n\r\n  /** Popover container close on click */\r\n  @Input('mdePopoverCloseOnClick') closeOnClick: boolean;\r\n\r\n\r\n  /** Popover backdrop close on click */\r\n  @Input('mdePopoverBackdropCloseOnClick') backdropCloseOnClick = true;\r\n\r\n  /** Propogate a click on the backdrop, which closes the popover, to an underlying component */\r\n  @Input('mdePropogateBackdropClick') backdropPropogateClick = false;\r\n\r\n  /** Event emitted when the associated popover is opened. */\r\n  @Output() opened = new EventEmitter<void>();\r\n\r\n  /** Event emitted when the associated popover is closed. */\r\n  @Output() closed = new EventEmitter<void>();\r\n\r\n\r\n  constructor(private _overlay: Overlay, public _elementRef: ElementRef,\r\n    private _viewContainerRef: ViewContainerRef,\r\n    @Optional() private _dir: Directionality,\r\n    private _changeDetectorRef: ChangeDetectorRef,\r\n    @Inject(DOCUMENT) private document: Document) { }\r\n\r\n  ngAfterViewInit() {\r\n    this._checkPopover();\r\n    this._setCurrentConfig();\r\n    this.popover.close.subscribe(() => this.closePopover());\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.destroyPopover();\r\n  }\r\n\r\n  private _setCurrentConfig() {\r\n\r\n    if (this.positionX === 'before' || this.positionX === 'after') {\r\n      this.popover.positionX = this.positionX;\r\n    }\r\n\r\n    if (this.positionY === 'above' || this.positionY === 'below') {\r\n      this.popover.positionY = this.positionY;\r\n    }\r\n\r\n    if (this.triggerEvent) {\r\n      this.popover.triggerEvent = this.triggerEvent;\r\n    }\r\n\r\n    if (this.enterDelay) {\r\n      this.popover.enterDelay = this.enterDelay;\r\n    }\r\n\r\n    if (this.leaveDelay) {\r\n      this.popover.leaveDelay = this.leaveDelay;\r\n    }\r\n\r\n    if (this.overlapTrigger === true || this.overlapTrigger === false) {\r\n      this.popover.overlapTrigger = this.overlapTrigger;\r\n    }\r\n\r\n    if (this.targetOffsetX) {\r\n      this.popover.targetOffsetX = this.targetOffsetX;\r\n    }\r\n\r\n    if (this.targetOffsetY) {\r\n      this.popover.targetOffsetY = this.targetOffsetY;\r\n    }\r\n\r\n    if (this.arrowOffsetX) {\r\n      this.popover.arrowOffsetX = this.arrowOffsetX;\r\n    }\r\n\r\n    if (this.arrowWidth) {\r\n      this.popover.arrowWidth = this.arrowWidth;\r\n    }\r\n\r\n    if (this.arrowColor) {\r\n      this.popover.arrowColor = this.arrowColor;\r\n    }\r\n\r\n    if (this.closeOnClick === true || this.closeOnClick === false) {\r\n      this.popover.closeOnClick = this.closeOnClick;\r\n    }\r\n\r\n    this.popover.setCurrentStyles();\r\n  }\r\n\r\n\r\n  /** Whether the popover is open. */\r\n  get popoverOpen(): boolean { return this._popoverOpen; }\r\n\r\n  @HostListener('click', ['$event'])\r\n  onClick(event: MouseEvent): void {\r\n    if (this.popover.triggerEvent === 'click') {\r\n      this.togglePopover();\r\n    }\r\n  }\r\n\r\n  @HostListener('mouseenter', ['$event'])\r\n  onMouseEnter(event: MouseEvent): void {\r\n    this._halt = false;\r\n    if (this.popover.triggerEvent === 'hover') {\r\n      this._mouseoverTimer = setTimeout(() => {\r\n        this.openPopover();\r\n      }, this.popover.enterDelay);\r\n    }\r\n  }\r\n\r\n  @HostListener('mouseleave', ['$event'])\r\n  onMouseLeave(event: MouseEvent): void {\r\n    if (this.popover.triggerEvent === 'hover') {\r\n      if (this._mouseoverTimer) {\r\n        clearTimeout(this._mouseoverTimer);\r\n        this._mouseoverTimer = null;\r\n      }\r\n      if (this._popoverOpen) {\r\n        setTimeout(() => {\r\n          if (!this.popover.closeDisabled) {\r\n            this.closePopover();\r\n          }\r\n        }, this.popover.leaveDelay);\r\n      } else {\r\n        this._halt = true;\r\n      }\r\n    }\r\n  }\r\n\r\n  /** Toggles the popover between the open and closed states. */\r\n  togglePopover(): void {\r\n    return this._popoverOpen ? this.closePopover() : this.openPopover();\r\n  }\r\n\r\n  /** Opens the popover. */\r\n  openPopover(): void {\r\n    if (!this._popoverOpen && !this._halt) {\r\n      this._createOverlay().attach(this._portal);\r\n\r\n      this._subscribeToBackdrop();\r\n      this._subscribeToDetachments();\r\n\r\n      this._initPopover();\r\n    }\r\n  }\r\n\r\n  /** Closes the popover. */\r\n  closePopover(): void {\r\n    if (this._overlayRef) {\r\n      this._overlayRef.detach();\r\n      this._resetPopover();\r\n    }\r\n  }\r\n\r\n  /** Removes the popover from the DOM. */\r\n  destroyPopover(): void {\r\n    if (this._mouseoverTimer) {\r\n      clearTimeout(this._mouseoverTimer);\r\n      this._mouseoverTimer = null;\r\n    }\r\n    if (this._overlayRef) {\r\n      this._overlayRef.dispose();\r\n      this._overlayRef = null;\r\n      this._cleanUpSubscriptions();\r\n    }\r\n\r\n    this._onDestroy.next();\r\n    this._onDestroy.complete();\r\n  }\r\n\r\n  /** Focuses the popover trigger. */\r\n  focus() {\r\n    this._elementRef.nativeElement.focus();\r\n  }\r\n\r\n  /** The text direction of the containing app. */\r\n  get dir(): Direction {\r\n    return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\r\n  }\r\n\r\n  /**\r\n  * This method ensures that the popover closes when the overlay backdrop is clicked.\r\n  * We do not use first() here because doing so would not catch clicks from within\r\n  * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\r\n  * explicitly when the popover is closed or destroyed.\r\n  */\r\n  private _subscribeToBackdrop(): void {\r\n    if (this._overlayRef) {\r\n      /** Only subscribe to backdrop if trigger event is click */\r\n      if (this.triggerEvent === 'click' && this.backdropCloseOnClick === true) {\r\n        this._overlayRef.backdropClick()\r\n          .pipe(\r\n            takeUntil(this.popoverClosed),\r\n            takeUntil(this._onDestroy),\r\n          )\r\n          .subscribe((event: MouseEvent) => {\r\n            this.popover._emitCloseEvent();\r\n            if (this.backdropPropogateClick) {\r\n              this.propogateBackdropClick(event);\r\n            }\r\n          });\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Propogate a click on the backdrop to underlying element.  At this point the backdrop should have\r\n   * been removed from the DOM.  Click is not propogated to trigger element.\r\n   */\r\n  private propogateBackdropClick(event: MouseEvent): void {\r\n    setTimeout(() => {\r\n\r\n      // determine if underlying element is popover trigger and if so then do not propogate\r\n      const popovertrigger = this.document.elementsFromPoint(event.pageX, event.pageY).find((element: HTMLElement) => {\r\n        return element === this._elementRef.nativeElement;\r\n      });\r\n      if (popovertrigger) { return; }\r\n\r\n      // propogate the click to the first underlying element\r\n      (this.document.elementFromPoint(event.pageX, event.pageY) as HTMLElement)?.click();\r\n    });\r\n  }\r\n\r\n\r\n  private _subscribeToDetachments(): void {\r\n    if (this._overlayRef) {\r\n      this._overlayRef.detachments()\r\n        .pipe(\r\n          takeUntil(this.popoverClosed),\r\n          takeUntil(this._onDestroy),\r\n        )\r\n        .subscribe(() => {\r\n          this._setPopoverClosed();\r\n        });\r\n    }\r\n  }\r\n\r\n  /**\r\n  * This method sets the popover state to open and focuses the first item if\r\n  * the popover was opened via the keyboard.\r\n  */\r\n  private _initPopover(): void {\r\n    this._setPopoverOpened();\r\n  }\r\n\r\n  /**\r\n  * This method resets the popover when it's closed, most importantly restoring\r\n  * focus to the popover trigger if the popover was opened via the keyboard.\r\n  */\r\n  private _resetPopover(): void {\r\n    this._setPopoverClosed();\r\n\r\n    // Focus only needs to be reset to the host element if the popover was opened\r\n    // by the keyboard and manually shifted to the first popover item.\r\n    if (!this._openedByMouse) {\r\n      this.focus();\r\n    }\r\n    this._openedByMouse = false;\r\n  }\r\n\r\n  /** set state rather than toggle to support triggers sharing a popover */\r\n  private _setPopoverOpened(): void {\r\n    if (!this._popoverOpen) {\r\n      this._popoverOpen = true;\r\n\r\n      this.popoverOpened.next();\r\n      this.opened.emit()\r\n    }\r\n  }\r\n\r\n  /** set state rather than toggle to support triggers sharing a popover */\r\n  private _setPopoverClosed(): void {\r\n    if (this._popoverOpen) {\r\n      this._popoverOpen = false;\r\n\r\n      this.popoverClosed.next();\r\n      this.closed.emit();\r\n    }\r\n  }\r\n\r\n  /**\r\n  *  This method checks that a valid instance of MdPopover has been passed into\r\n  *  mdPopoverTriggerFor. If not, an exception is thrown.\r\n  */\r\n  private _checkPopover() {\r\n    if (!this.popover) {\r\n      throwMdePopoverMissingError();\r\n    }\r\n  }\r\n\r\n  /**\r\n  *  This method creates the overlay from the provided popover's template and saves its\r\n  *  OverlayRef so that it can be attached to the DOM when openPopover is called.\r\n  */\r\n  private _createOverlay(): OverlayRef {\r\n    if (!this._overlayRef) {\r\n      this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\r\n      const config = this._getOverlayConfig();\r\n      this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\r\n      this._overlayRef = this._overlay.create(config);\r\n    }\r\n\r\n    return this._overlayRef;\r\n  }\r\n\r\n  /**\r\n  * This method builds the configuration object needed to create the overlay, the OverlayConfig.\r\n  * @returns OverlayConfig\r\n  */\r\n  private _getOverlayConfig(): OverlayConfig {\r\n    const overlayState = new OverlayConfig();\r\n    overlayState.positionStrategy = this._getPosition();\r\n\r\n    /** Display overlay backdrop if trigger event is click */\r\n    if (this.triggerEvent === 'click') {\r\n      overlayState.hasBackdrop = true;\r\n      overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\r\n    }\r\n\r\n    overlayState.direction = this.dir;\r\n    overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\r\n\r\n    return overlayState;\r\n  }\r\n\r\n  /**\r\n   * This method returns the scroll strategy used by the cdk/overlay.\r\n   */\r\n  private _getOverlayScrollStrategy(strategy: MdePopoverScrollStrategy): ScrollStrategy {\r\n    switch (strategy) {\r\n      case 'noop':\r\n        console.log('noop');\r\n        return this._overlay.scrollStrategies.noop();\r\n      case 'close':\r\n        return this._overlay.scrollStrategies.close();\r\n      case 'block':\r\n        return this._overlay.scrollStrategies.block();\r\n      case 'reposition':\r\n      default:\r\n        return this._overlay.scrollStrategies.reposition();\r\n    }\r\n  }\r\n\r\n  /**\r\n  * Listens to changes in the position of the overlay and sets the correct classes\r\n  * on the popover based on the new position. This ensures the animation origin is always\r\n  * correct, even if a fallback position is used for the overlay.\r\n  */\r\n  private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\r\n    this._positionSubscription = position.positionChanges.subscribe(change => {\r\n      const posisionX: MdePopoverPositionX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';\r\n      let posisionY: MdePopoverPositionY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';\r\n\r\n      if (!this.popover.overlapTrigger) {\r\n        posisionY = posisionY === 'below' ? 'above' : 'below';\r\n      }\r\n\r\n      // required for ChangeDetectionStrategy.OnPush\r\n      this._changeDetectorRef.markForCheck();\r\n\r\n      this.popover.zone.run(() => {\r\n        this.popover.positionX = posisionX;\r\n        this.popover.positionY = posisionY;\r\n        this.popover.setCurrentStyles();\r\n\r\n        this.popover.setPositionClasses(posisionX, posisionY);\r\n      });\r\n    });\r\n  }\r\n\r\n  /**\r\n  * This method builds the position strategy for the overlay, so the popover is properly connected\r\n  * to the trigger.\r\n  * @returns ConnectedPositionStrategy\r\n  */\r\n  private _getPosition(): FlexibleConnectedPositionStrategy {\r\n    const [originX, originFallbackX]: HorizontalConnectionPos[] =\r\n      this.popover.positionX === 'before' ? ['end', 'start'] : ['start', 'end'];\r\n\r\n    const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\r\n      this.popover.positionY === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];\r\n\r\n    // let originY = overlayY;\r\n    // let fallbackOriginY = overlayFallbackY;\r\n\r\n    let originY = overlayY;\r\n    let originFallbackY = overlayFallbackY;\r\n\r\n    const overlayX = originX;\r\n    const overlayFallbackX = originFallbackX;\r\n\r\n    // let [originY, originFallbackY] = [overlayY, overlayFallbackY];\r\n    // let [overlayX, overlayFallbackX] = [originX, originFallbackX];\r\n\r\n    /** Reverse overlayY and fallbackOverlayY when overlapTrigger is false */\r\n    if (!this.popover.overlapTrigger) {\r\n      originY = overlayY === 'top' ? 'bottom' : 'top';\r\n      originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';\r\n    }\r\n\r\n    let offsetX = 0;\r\n    let offsetY = 0;\r\n\r\n    if (this.popover.targetOffsetX && !isNaN(Number(this.popover.targetOffsetX))) {\r\n      offsetX = Number(this.popover.targetOffsetX);\r\n      // offsetX = -16;\r\n    }\r\n\r\n    if (this.popover.targetOffsetY && !isNaN(Number(this.popover.targetOffsetY))) {\r\n      offsetY = Number(this.popover.targetOffsetY);\r\n      // offsetY = -10;\r\n    }\r\n\r\n    /**\r\n     * For overriding position element, when mdePopoverTargetAt has a valid element reference.\r\n     * Useful for sticking popover to parent element and offsetting arrow to trigger element.\r\n     * If undefined defaults to the trigger element reference.\r\n     */\r\n    let element = this._elementRef;\r\n    if (typeof this.targetElement !== 'undefined') {\r\n      this.popover.containerPositioning = true;\r\n      element = this.targetElement._elementRef;\r\n    }\r\n\r\n    return this._overlay.position()\r\n      .flexibleConnectedTo(element)\r\n      .withLockedPosition(true)\r\n      .withPositions([\r\n        {\r\n          originX,\r\n          originY,\r\n          overlayX,\r\n          overlayY,\r\n          offsetY\r\n        },\r\n        {\r\n          originX: originFallbackX,\r\n          originY,\r\n          overlayX: overlayFallbackX,\r\n          overlayY,\r\n          offsetY\r\n        },\r\n        {\r\n          originX,\r\n          originY: originFallbackY,\r\n          overlayX,\r\n          overlayY: overlayFallbackY,\r\n          offsetY: -offsetY\r\n        },\r\n        {\r\n          originX: originFallbackX,\r\n          originY: originFallbackY,\r\n          overlayX: overlayFallbackX,\r\n          overlayY: overlayFallbackY,\r\n          offsetY: -offsetY\r\n        }\r\n      ])\r\n      .withDefaultOffsetX(offsetX)\r\n      .withDefaultOffsetY(offsetY);\r\n  }\r\n\r\n  private _cleanUpSubscriptions(): void {\r\n    if (this._backdropSubscription) {\r\n      this._backdropSubscription.unsubscribe();\r\n    }\r\n    if (this._positionSubscription) {\r\n      this._positionSubscription.unsubscribe();\r\n    }\r\n    if (this._detachmentsSubscription) {\r\n      this._detachmentsSubscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  @HostListener('mousedown', ['$event']) _handleMousedown(event: MouseEvent): void {\r\n    if (event && !isFakeMousedownFromScreenReader(event)) {\r\n      this._openedByMouse = true;\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n  selector: 'mde-popover-target, [mdePopoverTarget]',\r\n  exportAs: 'mdePopoverTarget'\r\n})\r\nexport class MdePopoverTarget { // tslint:disable-line:directive-class-suffix\r\n\r\n  constructor(public _elementRef: ElementRef) { }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nimport { MdePopover } from './popover';\r\nimport { MdePopoverTrigger } from './popover-trigger';\r\nimport { MdePopoverTarget } from './popover-target';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\n@NgModule({\r\n  imports: [\r\n    OverlayModule,\r\n    CommonModule,\r\n    A11yModule\r\n  ],\r\n  exports: [MdePopover, MdePopoverTrigger, MdePopoverTarget],\r\n  declarations: [MdePopover, MdePopoverTrigger, MdePopoverTarget],\r\n})\r\nexport class MdePopoverModule {}\r\n","/*\r\n * Public API Surface of mde\r\n */\r\n\r\nexport * from './lib/popover/popover-module';\r\nexport * from './lib/popover/popover';\r\nexport * from './lib/popover/popover-interfaces';\r\nexport * from './lib/popover/popover-trigger';\r\nexport * from './lib/popover/popover-target';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}