-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmde.js.map
1 lines (1 loc) · 56.1 KB
/
mde.js.map
1
{"version":3,"file":"mde.js","sources":["../out-tsc/lib-es2015/popover/popover-errors.js","../out-tsc/lib-es2015/popover/popover-animations.js","../out-tsc/lib-es2015/popover/popover.js","../out-tsc/lib-es2015/popover/popover-trigger.js","../out-tsc/lib-es2015/popover/index.js","../out-tsc/lib-es2015/mde.js"],"sourcesContent":["/**\r\n * Throws an exception for the case when popover trigger doesn't have a valid mde-popover instance\r\n * \\@docs-private\r\n * @return {?}\r\n */\r\nexport function throwMdePopoverMissingError() {\r\n throw Error(`mde-popover-trigger: must pass in an mde-popover instance.\n\n Example:\n <mde-popover #popover=\"mdPopover\"></mde-popover>\n <button [mdPopoverTriggerFor]=\"popover\"></button>`);\r\n}\r\n/**\r\n * Throws an exception for the case when popover's x-position value isn't valid.\r\n * In other words, it doesn't match 'before' or 'after'.\r\n * \\@docs-private\r\n * @return {?}\r\n */\r\nexport function throwMdePopoverInvalidPositionX() {\r\n throw Error(`x-position value must be either 'before' or after'.\n Example: <mde-popover x-position=\"before\" #popover=\"mdPopover\"></mde-popover>`);\r\n}\r\n/**\r\n * Throws an exception for the case when popover's y-position value isn't valid.\r\n * In other words, it doesn't match 'above' or 'below'.\r\n * \\@docs-private\r\n * @return {?}\r\n */\r\nexport function throwMdePopoverInvalidPositionY() {\r\n throw Error(`y-position value must be either 'above' or below'.\n Example: <mde-popover y-position=\"above\" #popover=\"mdPopover\"></mde-popover>`);\r\n}\r\n//# sourceMappingURL=popover-errors.js.map","import { trigger, state, style, animate, transition, } from '@angular/animations';\r\n/**\r\n * This animation controls the popover panel's entry and exit from the page.\r\n *\r\n * When the popover panel is added to the DOM, it scales in and fades in its border.\r\n *\r\n * When the popover panel is removed from the DOM, it simply fades out after a brief\r\n * delay to display the ripple.\r\n */\r\nexport const transformPopover = trigger('transformPopover', [\r\n state('enter', style({\r\n opacity: 1,\r\n transform: `scale(1)`\r\n })),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: `scale(0)`\r\n }),\r\n animate(`200ms cubic-bezier(0.25, 0.8, 0.25, 1)`)\r\n ]),\r\n transition('* => void', [\r\n animate('50ms 100ms linear', style({ opacity: 0 }))\r\n ])\r\n]);\r\n//# sourceMappingURL=popover-animations.js.map","import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, ElementRef, ChangeDetectionStrategy, } from '@angular/core';\r\nimport { ESCAPE } from '@angular/cdk';\r\nimport { throwMdePopoverInvalidPositionX, throwMdePopoverInvalidPositionY } from './popover-errors';\r\nimport { transformPopover } from './popover-animations';\r\nexport class MdePopover {\r\n /**\r\n * @param {?} _elementRef\r\n */\r\n constructor(_elementRef) {\r\n this._elementRef = _elementRef;\r\n /**\r\n * Settings for popover, view setters and getters for more detail\r\n */\r\n this._positionX = 'after';\r\n this._positionY = 'below';\r\n this._triggerEvent = 'hover';\r\n this._enterDelay = 200;\r\n this._leaveDelay = 0;\r\n this._overlapTrigger = true;\r\n this._targetOffsetX = 0;\r\n this._targetOffsetY = 0;\r\n this._arrowOffsetX = 20;\r\n this._arrowWidth = 8;\r\n this._arrowColor = 'rgba(0, 0, 0, 0.12)';\r\n this._closeOnClick = true;\r\n this._focusTrapEnabled = true;\r\n /**\r\n * Config object to be passed into the popover's ngClass\r\n */\r\n this._classList = {};\r\n /**\r\n *\r\n */\r\n this.containerPositioning = false;\r\n /**\r\n * Closing disabled on popover\r\n */\r\n this.closeDisabled = false;\r\n /**\r\n * Emits the current animation state whenever it changes.\r\n */\r\n this._onAnimationStateChange = new EventEmitter();\r\n /**\r\n * Event emitted when the popover is closed.\r\n */\r\n this.close = new EventEmitter();\r\n this.setPositionClasses();\r\n }\r\n /**\r\n * Position of the popover in the X axis.\r\n * @return {?}\r\n */\r\n get positionX() { return this._positionX; }\r\n /**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n set positionX(value) {\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 * @return {?}\r\n */\r\n get positionY() { return this._positionY; }\r\n /**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n set positionY(value) {\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 * @return {?}\r\n */\r\n get triggerEvent() { return this._triggerEvent; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set triggerEvent(v) { this._triggerEvent = v; }\r\n /**\r\n * Popover enter delay\r\n * @return {?}\r\n */\r\n get enterDelay() { return this._enterDelay; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set enterDelay(v) { this._enterDelay = v; }\r\n /**\r\n * Popover leave delay\r\n * @return {?}\r\n */\r\n get leaveDelay() { return this._enterDelay; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set leaveDelay(v) { this._enterDelay = v; }\r\n /**\r\n * Popover overlap trigger\r\n * @return {?}\r\n */\r\n get overlapTrigger() { return this._overlapTrigger; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set overlapTrigger(v) { this._overlapTrigger = v; }\r\n /**\r\n * Popover target offset x\r\n * @return {?}\r\n */\r\n get targetOffsetX() { return this._targetOffsetX; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set targetOffsetX(v) { this._targetOffsetX = v; }\r\n /**\r\n * Popover target offset y\r\n * @return {?}\r\n */\r\n get targetOffsetY() { return this._targetOffsetY; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set targetOffsetY(v) { this._targetOffsetY = v; }\r\n /**\r\n * Popover arrow offset x\r\n * @return {?}\r\n */\r\n get arrowOffsetX() { return this._arrowOffsetX; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set arrowOffsetX(v) { this._arrowOffsetX = v; }\r\n /**\r\n * Popover arrow width\r\n * @return {?}\r\n */\r\n get arrowWidth() { return this._arrowWidth; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set arrowWidth(v) { this._arrowWidth = v; }\r\n /**\r\n * Popover arrow color\r\n * @return {?}\r\n */\r\n get arrowColor() { return this._arrowColor; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set arrowColor(v) { this._arrowColor = v; }\r\n /**\r\n * Popover container close on click\r\n * default: true\r\n * @return {?}\r\n */\r\n get closeOnClick() { return this._closeOnClick; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set closeOnClick(v) { this._closeOnClick = v; }\r\n /**\r\n * Popover focus trap using cdkTrapFocus\r\n * default: true\r\n * @return {?}\r\n */\r\n get focusTrapEnabled() { return this._focusTrapEnabled; }\r\n /**\r\n * @param {?} v\r\n * @return {?}\r\n */\r\n set focusTrapEnabled(v) { this._focusTrapEnabled = v; }\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 * @return {?}\r\n */\r\n get classList() { return this._classList; }\r\n /**\r\n * @param {?} classes\r\n * @return {?}\r\n */\r\n set classList(classes) {\r\n if (classes && classes.length) {\r\n this._classList = classes.split(' ').reduce((obj, className) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n this._elementRef.nativeElement.className = '';\r\n this.setPositionClasses();\r\n }\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n ngOnDestroy() {\r\n this._emitCloseEvent();\r\n this.close.complete();\r\n }\r\n /**\r\n * Handle a keyboard event from the popover, delegating to the appropriate action.\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n _handleKeydown(event) {\r\n switch (event.keyCode) {\r\n case ESCAPE:\r\n this._emitCloseEvent();\r\n return;\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 * @return {?}\r\n */\r\n _emitCloseEvent() {\r\n this.close.emit();\r\n }\r\n /**\r\n * Close popover on click if closeOnClick is true\r\n * @return {?}\r\n */\r\n onClick() {\r\n if (this.closeOnClick) {\r\n this._emitCloseEvent();\r\n }\r\n }\r\n /**\r\n * Disables close of popover when leaving trigger element and mouse over the popover\r\n * @return {?}\r\n */\r\n onMouseOver() {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = true;\r\n }\r\n }\r\n /**\r\n * Enables close of popover when mouse leaving popover element\r\n * @return {?}\r\n */\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 * Sets the current styles for the popover to allow for dynamically changing settings\r\n * @return {?}\r\n */\r\n setCurrentStyles() {\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 // 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 * It's necessary to set position-based classes to ensure the popover panel animation\r\n * folds out from the correct direction.\r\n * @param {?=} posX\r\n * @param {?=} posY\r\n * @return {?}\r\n */\r\n setPositionClasses(posX = this.positionX, posY = this.positionY) {\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\nMdePopover.decorators = [\r\n { type: Component, args: [{\r\n selector: 'mde-popover',\r\n template: \"<ng-template> <div class=\\\"mde-popover-panel\\\" role=\\\"dialog\\\" [class.mde-popover-overlap]=\\\"overlapTrigger\\\" [ngClass]=\\\"_classList\\\" [ngStyle]=\\\"popoverPanelStyles\\\" (keydown)=\\\"_handleKeydown($event)\\\" (click)=\\\"onClick()\\\" (mouseover)=\\\"onMouseOver()\\\" (mouseleave)=\\\"onMouseLeave()\\\" [@transformPopover]=\\\"'enter'\\\"> <div class=\\\"mde-popover-direction-arrow\\\" [ngStyle]=\\\"popoverArrowStyles\\\" *ngIf=\\\"!overlapTrigger\\\"></div> <div class=\\\"mde-popover-content\\\" [ngStyle]=\\\"popoverContentStyles\\\" cdkTrapFocus=\\\"focusTrapEnabled\\\"> <ng-content></ng-content> </div> </div> </ng-template> \",\r\n styles: [\".mde-popover-panel{display:flex;flex-direction:column;max-height:calc(100vh + 48px)}.mde-popover-ripple{position:absolute;top:0;left:0;bottom:0;right:0}.mde-popover-below .mde-popover-direction-arrow{position:absolute;bottom:0;width:0;height:0;border-bottom-width:0 !important;z-index:99999}.mde-popover-above .mde-popover-direction-arrow{position:absolute;top:0px;width:0;height:0;border-top-width:0 !important;z-index:99999}.mde-popover-after .mde-popover-direction-arrow{left:20px}.mde-popover-before .mde-popover-direction-arrow{right:20px} /*# sourceMappingURL=popover.css.map */\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n 'role': 'dialog'\r\n },\r\n animations: [\r\n transformPopover\r\n ],\r\n exportAs: 'mdePopover'\r\n },] },\r\n];\r\n/**\r\n * @nocollapse\r\n */\r\nMdePopover.ctorParameters = () => [\r\n { type: ElementRef, },\r\n];\r\nMdePopover.propDecorators = {\r\n 'positionX': [{ type: Input, args: ['mdePopoverPositionX',] },],\r\n 'positionY': [{ type: Input, args: ['mdePopoverPositionY',] },],\r\n 'triggerEvent': [{ type: Input, args: ['mdePopoverTriggerOn',] },],\r\n 'enterDelay': [{ type: Input, args: ['mdePopoverEnterDelay',] },],\r\n 'leaveDelay': [{ type: Input, args: ['mdePopoverLeaveDelay',] },],\r\n 'overlapTrigger': [{ type: Input, args: ['mdePopoverOverlapTrigger',] },],\r\n 'targetOffsetX': [{ type: Input, args: ['mdePopoverOffsetX',] },],\r\n 'targetOffsetY': [{ type: Input, args: ['mdePopoverOffsetY',] },],\r\n 'arrowOffsetX': [{ type: Input, args: ['mdePopoverArrowOffsetX',] },],\r\n 'arrowWidth': [{ type: Input, args: ['mdePopoverArrowWidth',] },],\r\n 'arrowColor': [{ type: Input, args: ['mdePopoverArrowColor',] },],\r\n 'closeOnClick': [{ type: Input, args: ['mdePopoverCloseOnClick',] },],\r\n 'focusTrapEnabled': [{ type: Input, args: ['mdeFocusTrapEnabled',] },],\r\n 'classList': [{ type: Input, args: ['class',] },],\r\n 'close': [{ type: Output },],\r\n 'templateRef': [{ type: ViewChild, args: [TemplateRef,] },],\r\n};\r\nfunction MdePopover_tsickle_Closure_declarations() {\r\n /** @type {?} */\r\n MdePopover.decorators;\r\n /**\r\n * @nocollapse\r\n * @type {?}\r\n */\r\n MdePopover.ctorParameters;\r\n /** @type {?} */\r\n MdePopover.propDecorators;\r\n /**\r\n * Settings for popover, view setters and getters for more detail\r\n * @type {?}\r\n */\r\n MdePopover.prototype._positionX;\r\n /** @type {?} */\r\n MdePopover.prototype._positionY;\r\n /** @type {?} */\r\n MdePopover.prototype._triggerEvent;\r\n /** @type {?} */\r\n MdePopover.prototype._enterDelay;\r\n /** @type {?} */\r\n MdePopover.prototype._leaveDelay;\r\n /** @type {?} */\r\n MdePopover.prototype._overlapTrigger;\r\n /** @type {?} */\r\n MdePopover.prototype._targetOffsetX;\r\n /** @type {?} */\r\n MdePopover.prototype._targetOffsetY;\r\n /** @type {?} */\r\n MdePopover.prototype._arrowOffsetX;\r\n /** @type {?} */\r\n MdePopover.prototype._arrowWidth;\r\n /** @type {?} */\r\n MdePopover.prototype._arrowColor;\r\n /** @type {?} */\r\n MdePopover.prototype._closeOnClick;\r\n /** @type {?} */\r\n MdePopover.prototype._focusTrapEnabled;\r\n /**\r\n * Config object to be passed into the popover's ngClass\r\n * @type {?}\r\n */\r\n MdePopover.prototype._classList;\r\n /**\r\n *\r\n * @type {?}\r\n */\r\n MdePopover.prototype.containerPositioning;\r\n /**\r\n * Closing disabled on popover\r\n * @type {?}\r\n */\r\n MdePopover.prototype.closeDisabled;\r\n /**\r\n * Config object to be passed into the popover's arrow ngStyle\r\n * @type {?}\r\n */\r\n MdePopover.prototype.popoverPanelStyles;\r\n /**\r\n * Config object to be passed into the popover's arrow ngStyle\r\n * @type {?}\r\n */\r\n MdePopover.prototype.popoverArrowStyles;\r\n /**\r\n * Config object to be passed into the popover's content ngStyle\r\n * @type {?}\r\n */\r\n MdePopover.prototype.popoverContentStyles;\r\n /**\r\n * Emits the current animation state whenever it changes.\r\n * @type {?}\r\n */\r\n MdePopover.prototype._onAnimationStateChange;\r\n /**\r\n * Event emitted when the popover is closed.\r\n * @type {?}\r\n */\r\n MdePopover.prototype.close;\r\n /** @type {?} */\r\n MdePopover.prototype.templateRef;\r\n /** @type {?} */\r\n MdePopover.prototype._elementRef;\r\n}\r\n//# sourceMappingURL=popover.js.map","import { Directive, ElementRef, EventEmitter, Input, Optional, Output, ViewContainerRef, } from '@angular/core';\r\nimport { TemplatePortal, isFakeMousedownFromScreenReader } from '@angular/cdk';\r\nimport { Directionality, Overlay, OverlayState, } from '@angular/material';\r\nimport { throwMdePopoverMissingError } from './popover-errors';\r\n/**\r\n * This directive is intended to be used in conjunction with an md-popover tag. It is\r\n * responsible for toggling the display of the provided popover instance.\r\n */\r\nexport class MdePopoverTrigger {\r\n /**\r\n * @param {?} _overlay\r\n * @param {?} _element\r\n * @param {?} _viewContainerRef\r\n * @param {?} _dir\r\n */\r\n constructor(_overlay, _element, _viewContainerRef, _dir) {\r\n this._overlay = _overlay;\r\n this._element = _element;\r\n this._viewContainerRef = _viewContainerRef;\r\n this._dir = _dir;\r\n this._overlayRef = null;\r\n this._popoverOpen = false;\r\n this._openedByMouse = false;\r\n /**\r\n * Event emitted when the associated popover is opened.\r\n */\r\n this.onPopoverOpen = new EventEmitter();\r\n /**\r\n * Event emitted when the associated popover is closed.\r\n */\r\n this.onPopoverClose = new EventEmitter();\r\n }\r\n /**\r\n * @return {?}\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 * @return {?}\r\n */\r\n ngOnDestroy() { this.destroyPopover(); }\r\n /**\r\n * @return {?}\r\n */\r\n _setCurrentConfig() {\r\n if (this.positionX === 'before' || this.positionX === 'after') {\r\n this.popover.positionX = this.positionX;\r\n }\r\n if (this.positionY === 'above' || this.positionY === 'below') {\r\n this.popover.positionY = this.positionY;\r\n }\r\n if (this.triggerEvent) {\r\n this.popover.triggerEvent = this.triggerEvent;\r\n }\r\n if (this.enterDelay) {\r\n this.popover.enterDelay = this.enterDelay;\r\n }\r\n if (this.leaveDelay) {\r\n this.popover.leaveDelay = this.leaveDelay;\r\n }\r\n if (this.overlapTrigger === true || this.overlapTrigger === false) {\r\n this.popover.overlapTrigger = this.overlapTrigger;\r\n }\r\n if (this.targetOffsetX) {\r\n this.popover.targetOffsetX = this.targetOffsetX;\r\n }\r\n if (this.targetOffsetY) {\r\n this.popover.targetOffsetY = this.targetOffsetY;\r\n }\r\n if (this.arrowOffsetX) {\r\n this.popover.arrowOffsetX = this.arrowOffsetX;\r\n }\r\n if (this.arrowWidth) {\r\n this.popover.arrowWidth = this.arrowWidth;\r\n }\r\n if (this.arrowColor) {\r\n this.popover.arrowColor = this.arrowColor;\r\n }\r\n if (this.closeOnClick === true || this.closeOnClick === false) {\r\n this.popover.closeOnClick = this.closeOnClick;\r\n }\r\n this.popover.setCurrentStyles();\r\n }\r\n /**\r\n * Whether the popover is open.\r\n * @return {?}\r\n */\r\n get popoverOpen() { return this._popoverOpen; }\r\n /**\r\n * @return {?}\r\n */\r\n onClick() {\r\n if (this.popover.triggerEvent === 'click') {\r\n // this.popover.setCurrentStyles();\r\n // this._setCurrentConfig();\r\n this.togglePopover();\r\n }\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n onMouseOver() {\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 * @return {?}\r\n */\r\n onMouseLeave() {\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 }\r\n }\r\n }\r\n /**\r\n * Toggles the popover between the open and closed states.\r\n * @return {?}\r\n */\r\n togglePopover() {\r\n return this._popoverOpen ? this.closePopover() : this.openPopover();\r\n }\r\n /**\r\n * Opens the popover.\r\n * @return {?}\r\n */\r\n openPopover() {\r\n if (!this._popoverOpen) {\r\n this._createOverlay().attach(this._portal);\r\n /** Only subscribe to backdrop if trigger event is click */\r\n if (this.triggerEvent === 'click') {\r\n this._subscribeToBackdrop();\r\n }\r\n this._initPopover();\r\n }\r\n }\r\n /**\r\n * Closes the popover.\r\n * @return {?}\r\n */\r\n closePopover() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n /** Only unsubscribe to backdrop if trigger event is click */\r\n if (this.triggerEvent === 'click') {\r\n this._backdropSubscription.unsubscribe();\r\n }\r\n this._resetPopover();\r\n }\r\n }\r\n /**\r\n * Removes the popover from the DOM.\r\n * @return {?}\r\n */\r\n destroyPopover() {\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 /**\r\n * Focuses the popover trigger.\r\n * @return {?}\r\n */\r\n focus() {\r\n this._element.nativeElement.focus();\r\n }\r\n /**\r\n * The text direction of the containing app.\r\n * @return {?}\r\n */\r\n get dir() {\r\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\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 * @return {?}\r\n */\r\n _subscribeToBackdrop() {\r\n if (this._overlayRef) {\r\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(() => {\r\n this.popover._emitCloseEvent();\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 * @return {?}\r\n */\r\n _initPopover() {\r\n this._setIsPopoverOpen(true);\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 * @return {?}\r\n */\r\n _resetPopover() {\r\n this._setIsPopoverOpen(false);\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 * @param {?} isOpen\r\n * @return {?}\r\n */\r\n _setIsPopoverOpen(isOpen) {\r\n this._popoverOpen = isOpen;\r\n this._popoverOpen ? this.onPopoverOpen.emit() : this.onPopoverClose.emit();\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 * @return {?}\r\n */\r\n _checkPopover() {\r\n if (!this.popover) {\r\n throwMdePopoverMissingError();\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 * @return {?}\r\n */\r\n _createOverlay() {\r\n if (!this._overlayRef) {\r\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\r\n const /** @type {?} */ config = this._getOverlayConfig();\r\n this._subscribeToPositions(/** @type {?} */ (config.positionStrategy));\r\n this._overlayRef = this._overlay.create(config);\r\n }\r\n return this._overlayRef;\r\n }\r\n /**\r\n * This method builds the configuration object needed to create the overlay, the OverlayState.\r\n * @return {?} OverlayState\r\n */\r\n _getOverlayConfig() {\r\n const /** @type {?} */ overlayState = new OverlayState();\r\n overlayState.positionStrategy = this._getPosition()\r\n .withDirection(this.dir);\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 overlayState.direction = this.dir;\r\n overlayState.scrollStrategy = this._overlay.scrollStrategies.reposition();\r\n return overlayState;\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 * @param {?} position\r\n * @return {?}\r\n */\r\n _subscribeToPositions(position) {\r\n this._positionSubscription = position.onPositionChange.subscribe(change => {\r\n const /** @type {?} */ posisionX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';\r\n let /** @type {?} */ posisionY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';\r\n if (!this.popover.overlapTrigger) {\r\n posisionY = posisionY === 'below' ? 'above' : 'below';\r\n }\r\n this.popover.positionX = posisionX;\r\n this.popover.positionY = posisionY;\r\n this.popover.setCurrentStyles();\r\n this.popover.setPositionClasses(posisionX, posisionY);\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 * @return {?} ConnectedPositionStrategy\r\n */\r\n _getPosition() {\r\n const [posX, fallbackX] = this.popover.positionX === 'before' ? ['end', 'start'] : ['start', 'end'];\r\n const [overlayY, fallbackOverlayY] = this.popover.positionY === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];\r\n let /** @type {?} */ originY = overlayY;\r\n let /** @type {?} */ fallbackOriginY = fallbackOverlayY;\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 fallbackOriginY = fallbackOverlayY === 'top' ? 'bottom' : 'top';\r\n }\r\n let /** @type {?} */ offsetX = 0;\r\n let /** @type {?} */ offsetY = 0;\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 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 * 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._element;\r\n if (typeof this.targetElement !== 'undefined') {\r\n this.popover.containerPositioning = true;\r\n element = this.targetElement._elementRef;\r\n }\r\n return this._overlay.position()\r\n .connectedTo(element, { originX: posX, originY: originY }, { overlayX: posX, overlayY: overlayY })\r\n .withFallbackPosition({ originX: fallbackX, originY: originY }, { overlayX: fallbackX, overlayY: overlayY })\r\n .withFallbackPosition({ originX: posX, originY: fallbackOriginY }, { overlayX: posX, overlayY: fallbackOverlayY })\r\n .withFallbackPosition({ originX: fallbackX, originY: fallbackOriginY }, { overlayX: fallbackX, overlayY: fallbackOverlayY })\r\n .withOffsetX(offsetX)\r\n .withOffsetY(offsetY);\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n _cleanUpSubscriptions() {\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 }\r\n /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n _handleMousedown(event) {\r\n if (!isFakeMousedownFromScreenReader(event)) {\r\n this._openedByMouse = true;\r\n }\r\n }\r\n}\r\nMdePopoverTrigger.decorators = [\r\n { type: Directive, args: [{\r\n selector: '[mdePopoverTriggerFor]',\r\n host: {\r\n 'aria-haspopup': 'true',\r\n '(mouseover)': 'onMouseOver()',\r\n '(mousedown)': '_handleMousedown($event)',\r\n '(mouseleave)': 'onMouseLeave()',\r\n '(click)': 'onClick()',\r\n },\r\n exportAs: 'mdePopoverTrigger'\r\n },] },\r\n];\r\n/**\r\n * @nocollapse\r\n */\r\nMdePopoverTrigger.ctorParameters = () => [\r\n { type: Overlay, },\r\n { type: ElementRef, },\r\n { type: ViewContainerRef, },\r\n { type: Directionality, decorators: [{ type: Optional },] },\r\n];\r\nMdePopoverTrigger.propDecorators = {\r\n 'popover': [{ type: Input, args: ['mdePopoverTriggerFor',] },],\r\n 'targetElement': [{ type: Input, args: ['mdePopoverTargetAt',] },],\r\n 'positionX': [{ type: Input, args: ['mdePopoverPositionX',] },],\r\n 'positionY': [{ type: Input, args: ['mdePopoverPositionY',] },],\r\n 'triggerEvent': [{ type: Input, args: ['mdePopoverTriggerOn',] },],\r\n 'enterDelay': [{ type: Input, args: ['mdePopoverEnterDelay',] },],\r\n 'leaveDelay': [{ type: Input, args: ['mdePopoverLeaveDelay',] },],\r\n 'overlapTrigger': [{ type: Input, args: ['mdePopoverOverlapTrigger',] },],\r\n 'targetOffsetX': [{ type: Input, args: ['mdePopoverOffsetX',] },],\r\n 'targetOffsetY': [{ type: Input, args: ['mdePopoverOffsetY',] },],\r\n 'arrowOffsetX': [{ type: Input, args: ['mdePopoverArrowOffsetX',] },],\r\n 'arrowWidth': [{ type: Input, args: ['mdePopoverArrowWidth',] },],\r\n 'arrowColor': [{ type: Input, args: ['mdePopoverArrowColor',] },],\r\n 'closeOnClick': [{ type: Input, args: ['mdePopoverCloseOnClick',] },],\r\n 'onPopoverOpen': [{ type: Output },],\r\n 'onPopoverClose': [{ type: Output },],\r\n};\r\nfunction MdePopoverTrigger_tsickle_Closure_declarations() {\r\n /** @type {?} */\r\n MdePopoverTrigger.decorators;\r\n /**\r\n * @nocollapse\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.ctorParameters;\r\n /** @type {?} */\r\n MdePopoverTrigger.propDecorators;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._portal;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._overlayRef;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._popoverOpen;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._backdropSubscription;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._positionSubscription;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._mouseoverTimer;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._openedByMouse;\r\n /**\r\n * References the popover instance that the trigger is associated with.\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.popover;\r\n /**\r\n * References the popover target instance that the trigger is associated with.\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.targetElement;\r\n /**\r\n * Position of the popover in the X axis\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.positionX;\r\n /**\r\n * Position of the popover in the Y axis\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.positionY;\r\n /**\r\n * Popover trigger event\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.triggerEvent;\r\n /**\r\n * Popover delay\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.enterDelay;\r\n /**\r\n * Popover delay\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.leaveDelay;\r\n /**\r\n * Popover overlap trigger\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.overlapTrigger;\r\n /**\r\n * Popover target offset x\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.targetOffsetX;\r\n /**\r\n * Popover target offset y\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.targetOffsetY;\r\n /**\r\n * Popover arrow offset x\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.arrowOffsetX;\r\n /**\r\n * Popover arrow width\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.arrowWidth;\r\n /**\r\n * Popover arrow color\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.arrowColor;\r\n /**\r\n * Popover container close on click\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.closeOnClick;\r\n /**\r\n * Event emitted when the associated popover is opened.\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.onPopoverOpen;\r\n /**\r\n * Event emitted when the associated popover is closed.\r\n * @type {?}\r\n */\r\n MdePopoverTrigger.prototype.onPopoverClose;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._overlay;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._element;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._viewContainerRef;\r\n /** @type {?} */\r\n MdePopoverTrigger.prototype._dir;\r\n}\r\n//# sourceMappingURL=popover-trigger.js.map","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { A11yModule } from '@angular/cdk';\r\nimport { OverlayModule, MdCommonModule, MdRippleModule } from '@angular/material';\r\nimport { MdePopover } from './popover';\r\nimport { MdePopoverTrigger } from './popover-trigger';\r\nexport class MdePopoverModule {\r\n}\r\nMdePopoverModule.decorators = [\r\n { type: NgModule, args: [{\r\n imports: [\r\n OverlayModule,\r\n CommonModule,\r\n MdRippleModule,\r\n MdCommonModule,\r\n A11yModule\r\n ],\r\n exports: [MdePopover, MdePopoverTrigger, MdCommonModule],\r\n declarations: [MdePopover, MdePopoverTrigger],\r\n },] },\r\n];\r\n/**\r\n * @nocollapse\r\n */\r\nMdePopoverModule.ctorParameters = () => [];\r\nfunction MdePopoverModule_tsickle_Closure_declarations() {\r\n /** @type {?} */\r\n MdePopoverModule.decorators;\r\n /**\r\n * @nocollapse\r\n * @type {?}\r\n */\r\n MdePopoverModule.ctorParameters;\r\n}\r\nexport { MdePopover } from './popover';\r\nexport { MdePopoverTrigger } from './popover-trigger';\r\nexport { transformPopover } from './popover-animations';\r\n//# sourceMappingURL=index.js.map","/**\r\n * Generated bundle index. Do not edit.\r\n */\r\nexport { MdePopoverModule } from './index';\r\nexport { MdePopover as ɵa } from './popover/popover';\r\nexport { transformPopover as ɵc } from './popover/popover-animations';\r\nexport { MdePopoverTrigger as ɵb } from './popover/popover-trigger';\r\n//# sourceMappingURL=mde.js.map"],"names":[],"mappings":"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"}