http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/985298bd/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map 
b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
index 2a45f9c..2455e4b 100644
--- a/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
+++ b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-overlay.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","overlay","core","portal","Rx","scrolling","bidi","coercion","keycodes","this","_angular_core","_angular_cdk_portal","rxjs_Subject","_angular_cdk_scrolling","rxjs_Subscription","_angular_cdk_bidi","_angular_cdk_coercion","_angular_cdk_keycodes","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","formatCssUnit","value","isElementScrolledOutsideView","element","scrollContainers","some","containerBounds","outsideAbove","bottom","top","outsideBelow","outsideLeft","right","left","outsideRight","isElementClippedByScrolling","scrollContainerRect","clippedAbove","clippedBelow","clippedLeft","clippedRight","OVERLAY_CONTAINER_PROVIDER_FACTORY","parentContainer","OverlayContainer","getMatScrollStrategyAlreadyAttachedError","Error","MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","s
 
crollStrategies","reposition","setPrototypeOf","__proto__","Array","p","hasOwnProperty","NoopScrollStrategy","enable","disable","attach","OverlayConfig","config","_this","scrollStrategy","panelClass","hasBackdrop","backdropClass","direction","keys","forEach","key","OverlayRef","_portalHost","_pane","_config","_ngZone","_backdropElement","_backdropClick","Subject","_attachments","_detachments","defineProperty","get","enumerable","configurable","attachResult","positionStrategy","_updateStackingOrder","updateSize","updateDirection","updatePosition","_togglePointerEvents","_attachBackdrop","isArray","cls","classList","add","next","detach","detachBackdrop","detachmentResult","dispose","complete","hasAttached","backdropClick","asObservable","attachments","detachments","getConfig","apply","setAttribute","width","style","height","minWidth","minHeight","maxWidth","maxHeight","enablePointer","pointerEvents","document","createElement","insertBefore","addEventListener","requestAnimationFrame","
 
nextSibling","appendChild","backdropToDetach","finishDetach_1","parentNode","removeChild","remove","runOutsideAngular","setTimeout","ConnectionPositionPair","origin","originX","originY","overlayX","overlayY","ScrollingVisibility","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","ctorParameters","type","decorators","Optional","ConnectedPositionStrategy","originPos","overlayPos","_connectedTo","_viewportRuler","_dir","_offsetX","_offsetY","scrollables","_resizeSubscription","Subscription","EMPTY","_preferredPositions","_onPositionChange","_origin","nativeElement","withFallbackPosition","overlayRef","_overlayRef","overlayElement","unsubscribe","change","subscribe","fallbackPoint","fallbackPosition","originRect","getBoundingClientRect","overlayRect","viewportRect","getViewportRect","_i","_a","length","pos","originPoint","_getOriginConnectionPoint","overlayPoint","_getOverlayPoint","fitsInViewport","_setElementPosition","_lastConnectedPosition","visibleArea","
 
recalculateLastPosition","lastPosition","withScrollableContainers","push","withDirection","dir","withOffsetX","offset","withOffsetY","_getStartX","rect","_isRtl","_getEndX","x","originStartX","originEndX","y","overlayStartX","overlayStartY","leftOverflow","rightOverflow","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","_getScrollVisibility","originBounds","overlayBounds","scrollContainerBounds","map","s","getElementRef","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","horizontalStyleProperty","verticalStyleProperty","documentElement","clientHeight","clientWidth","positionChange","overflows","arguments","reduce","currentValue","currentOverflow","Math","max","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_leftOffset","_rightOffset","_alignItems","_justifyContent","_width","_height","_wrapper","centerHorizontally","centerVertically","styles","parentStyles","position","marginTop","marginLeft","ma
 
rginBottom","marginRight","justifyContent","alignItems","OverlayPositionBuilder","connectedTo","elementRef","Injectable","ViewportRuler","ngOnDestroy","_containerElement","getContainerElement","_createContainer","container","body","OVERLAY_CONTAINER_PROVIDER","provide","deps","SkipSelf","useFactory","CloseScrollStrategy","_scrollDispatcher","_scrollSubscription","scrolled","BlockScrollStrategy","_previousHTMLStyles","_isEnabled","_canBeEnabled","root","_previousScrollPosition","getViewportScrollPosition","window","scroll","contains","viewport","scrollHeight","scrollWidth","RepositionScrollStrategy","throttle","scrollThrottle","ScrollStrategyOptions","noop","close","block","ScrollDispatcher","nextUniqueId","defaultConfig","Overlay","_overlayContainer","_componentFactoryResolver","_positionBuilder","_appRef","_injector","pane","_createPaneElement","portalHost","_createPortalHost","id","DomPortalHost","ComponentFactoryResolver","ApplicationRef","Injector","NgZone","FullscreenOverlayCon
 
tainer","_super","call","_adjustParentForFullscreenChange","_addFullscreenChangeListener","getFullscreenElement","fn","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","defaultPositionList","MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY","InjectionToken","MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","OverlayOrigin","Directive","args","selector","exportAs","ElementRef","ConnectedOverlayDirective","_overlay","_renderer","templateRef","viewContainerRef","_scrollStrategy","_hasBackdrop","_backdropSubscription","_positionSubscription","_escapeListener","open","EventEmitter","_templatePortal","TemplatePortal","set","offsetX","_position","offsetY","coerceBooleanProperty","positions","_positions","_minWidth","_minHeight","_backdropClass","_open","_destroyOverlay","ngOnChanges","changes","_attachOverlay","_detachOverlay","_createOverlay","_buildConfig","_createPositi
 
onStrategy","overlayConfig","strategy","_handlePositionChanges","i","onPositionChange","emit","_initEscapeListener","listen","event","keyCode","ESCAPE","Renderer2","TemplateRef","ViewContainerRef","undefined","Inject","Directionality","propDecorators","Input","_deprecatedOrigin","_deprecatedPositions","_deprecatedOffsetX","_deprecatedOffsetY","_deprecatedWidth","_deprecatedHeight","_deprecatedMinWidth","_deprecatedMinHeight","_deprecatedBackdropClass","_deprecatedScrollStrategy","_deprecatedOpen","_deprecatedHasBackdrop","Output","OVERLAY_PROVIDERS","VIEWPORT_RULER_PROVIDER","OverlayModule","NgModule","imports","PortalModule","ScrollDispatchModule","declarations","providers","Scrollable","ɵb","ɵa","ɵc","ɵe","ɵd","ɵf"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-overlay.umd.min.js"}
\ No newline at end of file
+{"version":3,"file":"cdk-overlay.umd.min.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/cdk/overlay/scroll/scroll-strategy.ts","../../src/cdk/overlay/position/scroll-clip.ts","../../src/cdk/overlay/overlay-ref.ts","../../src/cdk/overlay/keyboard/overlay-keyboard-dispatcher.ts","../../src/cdk/overlay/overlay-container.ts","../../src/cdk/overlay/overlay-directives.ts","../../src/cdk/overlay/scroll/noop-scroll-strategy.ts","../../src/cdk/overlay/overlay-config.ts","../../src/cdk/overlay/position/connected-position.ts","../../src/cdk/overlay/scroll/close-scroll-strategy.ts","../../src/cdk/overlay/scroll/block-scroll-strategy.ts","../../src/cdk/overlay/scroll/reposition-scroll-strategy.ts","../../src/cdk/overlay/scroll/scroll-strategy-options.ts","../../src/cdk/overlay/position/connected-position-strategy.ts","../../src/cdk/overlay/position/global-position-strategy.ts","../../src/cdk/overlay/position/overlay-position-builder.ts","../../src/cdk/overlay/overlay.ts","../.
 
./src/cdk/overlay/overlay-module.ts","../../src/cdk/overlay/fullscreen-overlay-container.ts"],"sourcesContent":["/*!
 
*****************************************************************************\r\nCopyright
 (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache 
License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in 
compliance with the License. You may obtain a copy of the\r\nLicense at 
http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN 
*AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS 
OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR 
CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR 
NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific 
language governing permissions\r\nand limitations under the 
License.\r\n*****************************************************************************
 */\r\n/* global Reflect, Promise */
 \r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } 
instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function 
(d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; 
};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    
function __() { this.constructor = d; }\r\n    d.prototype = b === null ? 
Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport 
var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 
1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = 
s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n  
  var t = {};\r\n    for (var p in s) if 
(Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        
t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === 
\"function\")\r\n        for (var i = 0, p 
 = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 
0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport 
function __decorate(decorators, target, key, desc) {\r\n    var c = 
arguments.length, r = c < 3 ? target : desc === null ? desc = 
Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof 
Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = 
Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = 
decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : 
c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && 
Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function 
__param(paramIndex, decorator) {\r\n    return function (target, key) { 
decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function 
__metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === 
\"object\" && typeof Reflect.metadata === \"function\") return
  Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function 
__awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = 
Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { 
try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        
function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) 
{ reject(e); } }\r\n        function step(result) { result.done ? 
resolve(result.value) : new P(function (resolve) { resolve(result.value); 
}).then(fulfilled, rejected); }\r\n        step((generator = 
generator.apply(thisArg, _arguments || [])).next());\r\n    
});\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { 
label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: 
[], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": 
verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && 
(g[Symbol.iterator] = function() { return this; }), g;\r\n
     function verb(n) { return function (v) { return step([n, v]); }; }\r\n    
function step(op) {\r\n        if (f) throw new TypeError(\"Generator is 
already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y 
&& (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = 
t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, 
t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t 
= op; break;\r\n                case 4: _.label++; return { value: op[1], done: 
false };\r\n                case 5: _.label++; y = op[1]; op = [0]; 
continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); 
continue;\r\n                default:\r\n                    if (!(t = _.trys, 
t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; 
continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && 
op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] 
=== 6 && _.l
 abel < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t 
&& _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n               
     if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n  
          }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { 
op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw 
op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    
}\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in 
m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport 
function __values(o) {\r\n    var m = typeof Symbol === \"function\" && 
o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n  
      next: function () {\r\n            if (o && i >= o.length) o = void 
0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    
};\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === 
 \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = 
m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 
0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e 
= { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && 
!r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if 
(e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function 
__spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n     
   ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 
function __await(v) {\r\n    return this instanceof __await ? (this.v = v, 
this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, 
_arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new 
TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = 
generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, 
 verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = 
function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = 
function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || 
resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } 
catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value 
instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : 
settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", 
value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], 
q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, 
p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw 
e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, 
i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) 
? { value: __a
 wait(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; 
}\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if 
(!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not 
defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? 
m.call(o) : typeof __values === \"function\" ? __values(o) : 
o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, 
raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, 
\"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return 
cooked;\r\n};\r\n","/**\n * @license\n * Copyright Google LLC All Rights 
Reserved.\n *\n * Use of this source code is governed by an MIT-style license 
that can be\n * found in the LICENSE file at https://angular.io/license\n 
*/\n\nimport {OverlayRef} from '../overlay-ref';\n\n/**\n * Describes a 
strategy that will be used by an overlay to handle scroll events while it is 
open.\n */\nexport interface ScrollStrategy {\n  /** Enable this scroll strate
 gy (called when the attached overlay is attached to a portal). */\n  enable: 
() => void;\n\n  /** Disable this scroll strategy (called when the attached 
overlay is detached from a portal). */\n  disable: () => void;\n\n  /** 
Attaches this `ScrollStrategy` to an overlay. */\n  attach: (overlayRef: 
OverlayRef) => void;\n}\n\n/**\n * Returns an error to be thrown when 
attempting to attach an already-attached scroll strategy.\n */\nexport function 
getMatScrollStrategyAlreadyAttachedError(): Error {\n  return Error(`Scroll 
strategy has already been attached.`);\n}\n","/**\n * @license\n * Copyright 
Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by 
an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\n\n// TODO(jelbourn): move this to live with 
the rest of the scrolling code\n// TODO(jelbourn): someday replace this with 
IntersectionObservers\n\n/**\n * Gets whether an element is scrolled outside of 
view by any of it
 s parent scrolling containers.\n * @param element Dimensions of the element 
(from getBoundingClientRect)\n * @param scrollContainers Dimensions of 
element's scrolling containers (from getBoundingClientRect)\n * @returns 
Whether the element is scrolled out of view\n * @docs-private\n */\nexport 
function isElementScrolledOutsideView(element: ClientRect, scrollContainers: 
ClientRect[]) {\n  return scrollContainers.some(containerBounds => {\n    const 
outsideAbove = element.bottom < containerBounds.top;\n    const outsideBelow = 
element.top > containerBounds.bottom;\n    const outsideLeft = element.right < 
containerBounds.left;\n    const outsideRight = element.left > 
containerBounds.right;\n\n    return outsideAbove || outsideBelow || 
outsideLeft || outsideRight;\n  });\n}\n\n\n/**\n * Gets whether an element is 
clipped by any of its scrolling containers.\n * @param element Dimensions of 
the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions 
of element's scroll
 ing containers (from getBoundingClientRect)\n * @returns Whether the element 
is clipped\n * @docs-private\n */\nexport function 
isElementClippedByScrolling(element: ClientRect, scrollContainers: 
ClientRect[]) {\n  return scrollContainers.some(scrollContainerRect => {\n    
const clippedAbove = element.top < scrollContainerRect.top;\n    const 
clippedBelow = element.bottom > scrollContainerRect.bottom;\n    const 
clippedLeft = element.left < scrollContainerRect.left;\n    const clippedRight 
= element.right > scrollContainerRect.right;\n\n    return clippedAbove || 
clippedBelow || clippedLeft || clippedRight;\n  });\n}\n","/**\n * @license\n * 
Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is 
governed by an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\n\nimport {Direction} from 
'@angular/cdk/bidi';\nimport {ComponentPortal, Portal, PortalOutlet, 
TemplatePortal} from '@angular/cdk/portal';\nimport {ComponentRef
 , EmbeddedViewRef, NgZone} from '@angular/core';\nimport {Observable} from 
'rxjs/Observable';\nimport {take} from 'rxjs/operators/take';\nimport {Subject} 
from 'rxjs/Subject';\nimport {OverlayKeyboardDispatcher} from 
'./keyboard/overlay-keyboard-dispatcher';\nimport {OverlayConfig} from 
'./overlay-config';\n\n\n/** An object where all of its properties cannot be 
written. */\nexport type ImmutableObject<T> = {\n  readonly [P in keyof T]: 
T[P];\n};\n\n/**\n * Reference to an overlay that has been created with the 
Overlay service.\n * Used to manipulate or dispose of said overlay.\n 
*/\nexport class OverlayRef implements PortalOutlet {\n  private 
_backdropElement: HTMLElement | null = null;\n  private _backdropClick: 
Subject<MouseEvent> = new Subject();\n  private _attachments = new 
Subject<void>();\n  private _detachments = new Subject<void>();\n\n  /** Stream 
of keydown events dispatched to this overlay. */\n  _keydownEvents = new 
Subject<KeyboardEvent>();\n\n  constructor(\n      pr
 ivate _portalOutlet: PortalOutlet,\n      private _pane: HTMLElement,\n      
private _config: ImmutableObject<OverlayConfig>,\n      private _ngZone: 
NgZone,\n      private _keyboardDispatcher: OverlayKeyboardDispatcher,\n      
private _document: Document) {\n\n    if (_config.scrollStrategy) {\n      
_config.scrollStrategy.attach(this);\n    }\n  }\n\n  /** The overlay's HTML 
element */\n  get overlayElement(): HTMLElement {\n    return this._pane;\n  
}\n\n  /** The overlay's backdrop HTML element. */\n  get backdropElement(): 
HTMLElement | null {\n    return this._backdropElement;\n  }\n\n  
attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n  attach<T>(portal: 
TemplatePortal<T>): EmbeddedViewRef<T>;\n  attach(portal: any): any;\n\n  /**\n 
  * Attaches content, given via a Portal, to the overlay.\n   * If the overlay 
is configured to have a backdrop, it will be created.\n   *\n   * @param portal 
Portal instance to which to attach the overlay.\n   * @returns The portal 
attachm
 ent result.\n   */\n  attach(portal: Portal<any>): any {\n    let attachResult 
= this._portalOutlet.attach(portal);\n\n    if (this._config.positionStrategy) 
{\n      this._config.positionStrategy.attach(this);\n    }\n\n    // Update 
the pane element with the given configuration.\n    
this._updateStackingOrder();\n    this._updateElementSize();\n    
this._updateElementDirection();\n\n    if (this._config.scrollStrategy) {\n     
 this._config.scrollStrategy.enable();\n    }\n\n    // Update the position 
once the zone is stable so that the overlay will be fully rendered\n    // 
before attempting to position it, as the position may depend on the size of the 
rendered\n    // content.\n    
this._ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n      // 
The overlay could've been detached before the zone has stabilized.\n      if 
(this.hasAttached()) {\n        this.updatePosition();\n      }\n    });\n\n    
// Enable pointer events for the overlay pane element.\n    this._
 togglePointerEvents(true);\n\n    if (this._config.hasBackdrop) {\n      
this._attachBackdrop();\n    }\n\n    if (this._config.panelClass) {\n      // 
We can't do a spread here, because IE doesn't support setting multiple 
classes.\n      if (Array.isArray(this._config.panelClass)) {\n        
this._config.panelClass.forEach(cls => this._pane.classList.add(cls));\n      } 
else {\n        this._pane.classList.add(this._config.panelClass);\n      }\n   
 }\n\n    // Only emit the `attachments` event once all other setup is done.\n  
  this._attachments.next();\n\n    // Track this overlay by the keyboard 
dispatcher\n    this._keyboardDispatcher.add(this);\n\n    return 
attachResult;\n  }\n\n  /**\n   * Detaches an overlay from a portal.\n   * 
@returns The portal detachment result.\n   */\n  detach(): any {\n    if 
(!this.hasAttached()) {\n      return;\n    }\n\n    this.detachBackdrop();\n\n 
   // When the overlay is detached, the pane element should disable pointer 
events.\n    // This
  is necessary because otherwise the pane element will cover the page and 
disable\n    // pointer events therefore. Depends on the position strategy and 
the applied pane boundaries.\n    this._togglePointerEvents(false);\n\n    if 
(this._config.positionStrategy && this._config.positionStrategy.detach) {\n     
 this._config.positionStrategy.detach();\n    }\n\n    if 
(this._config.scrollStrategy) {\n      this._config.scrollStrategy.disable();\n 
   }\n\n    const detachmentResult = this._portalOutlet.detach();\n\n    // 
Only emit after everything is detached.\n    this._detachments.next();\n\n    
// Remove this overlay from keyboard dispatcher tracking\n    
this._keyboardDispatcher.remove(this);\n\n    return detachmentResult;\n  }\n\n 
 /** Cleans up the overlay from the DOM. */\n  dispose(): void {\n    const 
isAttached = this.hasAttached();\n\n    if (this._config.positionStrategy) {\n  
    this._config.positionStrategy.dispose();\n    }\n\n    if 
(this._config.scrollStrategy) {\n  
     this._config.scrollStrategy.disable();\n    }\n\n    
this.detachBackdrop();\n    this._keyboardDispatcher.remove(this);\n    
this._portalOutlet.dispose();\n    this._attachments.complete();\n    
this._backdropClick.complete();\n    this._keydownEvents.complete();\n\n    if 
(isAttached) {\n      this._detachments.next();\n    }\n\n    
this._detachments.complete();\n  }\n\n  /** Whether the overlay has attached 
content. */\n  hasAttached(): boolean {\n    return 
this._portalOutlet.hasAttached();\n  }\n\n  /** Gets an observable that emits 
when the backdrop has been clicked. */\n  backdropClick(): 
Observable<MouseEvent> {\n    return this._backdropClick.asObservable();\n  
}\n\n  /** Gets an observable that emits when the overlay has been attached. 
*/\n  attachments(): Observable<void> {\n    return 
this._attachments.asObservable();\n  }\n\n  /** Gets an observable that emits 
when the overlay has been detached. */\n  detachments(): Observable<void> {\n   
 return this._detachments.as
 Observable();\n  }\n\n  /** Gets an observable of keydown events targeted to 
this overlay. */\n  keydownEvents(): Observable<KeyboardEvent> {\n    return 
this._keydownEvents.asObservable();\n  }\n\n  /** Gets the the current overlay 
configuration, which is immutable. */\n  getConfig(): OverlayConfig {\n    
return this._config;\n  }\n\n  /** Updates the position of the overlay based on 
the position strategy. */\n  updatePosition() {\n    if 
(this._config.positionStrategy) {\n      
this._config.positionStrategy.apply();\n    }\n  }\n\n  /** Update the size 
properties of the overlay. */\n  updateSize(sizeConfig: OverlaySizeConfig) {\n  
  this._config = {...this._config, ...sizeConfig};\n    
this._updateElementSize();\n  }\n\n  /** Sets the LTR/RTL direction for the 
overlay. */\n  setDirection(dir: Direction) {\n    this._config = 
{...this._config, direction: dir};\n    this._updateElementDirection();\n  
}\n\n  /** Updates the text direction of the overlay panel. */\n  private 
_updateEl
 ementDirection() {\n    this._pane.setAttribute('dir', 
this._config.direction!);\n  }\n\n  /** Updates the size of the overlay element 
based on the overlay config. */\n  private _updateElementSize() {\n    if 
(this._config.width || this._config.width === 0) {\n      
this._pane.style.width = formatCssUnit(this._config.width);\n    }\n\n    if 
(this._config.height || this._config.height === 0) {\n      
this._pane.style.height = formatCssUnit(this._config.height);\n    }\n\n    if 
(this._config.minWidth || this._config.minWidth === 0) {\n      
this._pane.style.minWidth = formatCssUnit(this._config.minWidth);\n    }\n\n    
if (this._config.minHeight || this._config.minHeight === 0) {\n      
this._pane.style.minHeight = formatCssUnit(this._config.minHeight);\n    }\n\n  
  if (this._config.maxWidth || this._config.maxWidth === 0) {\n      
this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);\n    }\n\n    
if (this._config.maxHeight || this._config.maxHeight === 0) {\n      thi
 s._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);\n    }\n  
}\n\n  /** Toggles the pointer events for the overlay pane element. */\n  
private _togglePointerEvents(enablePointer: boolean) {\n    
this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';\n  }\n\n  /** 
Attaches a backdrop for this overlay. */\n  private _attachBackdrop() {\n    
const showingClass = 'cdk-overlay-backdrop-showing';\n\n    
this._backdropElement = this._document.createElement('div');\n    
this._backdropElement.classList.add('cdk-overlay-backdrop');\n\n    if 
(this._config.backdropClass) {\n      
this._backdropElement.classList.add(this._config.backdropClass);\n    }\n\n    
// Insert the backdrop before the pane in the DOM order,\n    // in order to 
handle stacked overlays properly.\n    
this._pane.parentElement!.insertBefore(this._backdropElement, this._pane);\n\n  
  // Forward backdrop clicks such that the consumer of the overlay can perform 
whatever\n    // action desired when such 
 a click occurs (usually closing the overlay).\n    
this._backdropElement.addEventListener('click',\n        (event: MouseEvent) => 
this._backdropClick.next(event));\n\n    // Add class to fade-in the backdrop 
after one frame.\n    if (typeof requestAnimationFrame !== 'undefined') {\n     
 this._ngZone.runOutsideAngular(() => {\n        requestAnimationFrame(() => 
{\n          if (this._backdropElement) {\n            
this._backdropElement.classList.add(showingClass);\n          }\n        });\n  
    });\n    } else {\n      
this._backdropElement.classList.add(showingClass);\n    }\n  }\n\n  /**\n   * 
Updates the stacking order of the element, moving it to the top if necessary.\n 
  * This is required in cases where one overlay was detached, while another 
one,\n   * that should be behind it, was destroyed. The next time both of them 
are opened,\n   * the stacking will be wrong, because the detached element's 
pane will still be\n   * in its original DOM position.\n   */\n  private _upd
 ateStackingOrder() {\n    if (this._pane.nextSibling) {\n      
this._pane.parentNode!.appendChild(this._pane);\n    }\n  }\n\n  /** Detaches 
the backdrop (if any) associated with the overlay. */\n  detachBackdrop(): void 
{\n    let backdropToDetach = this._backdropElement;\n\n    if 
(backdropToDetach) {\n      let finishDetach = () => {\n        // It may not 
be attached to anything in certain cases (e.g. unit tests).\n        if 
(backdropToDetach && backdropToDetach.parentNode) {\n          
backdropToDetach.parentNode.removeChild(backdropToDetach);\n        }\n\n       
 // It is possible that a new portal has been attached to this overlay since we 
started\n        // removing the backdrop. If that is the case, only clear the 
backdrop reference if it\n        // is still the same instance that we started 
to remove.\n        if (this._backdropElement == backdropToDetach) {\n          
this._backdropElement = null;\n        }\n      };\n\n      
backdropToDetach.classList.remove('cdk-ov
 erlay-backdrop-showing');\n\n      if (this._config.backdropClass) {\n        
backdropToDetach.classList.remove(this._config.backdropClass);\n      }\n\n     
 backdropToDetach.addEventListener('transitionend', finishDetach);\n\n      // 
If the backdrop doesn't have a transition, the `transitionend` event won't 
fire.\n      // In this case we make it unclickable and we try to remove it 
after a delay.\n      backdropToDetach.style.pointerEvents = 'none';\n\n      
// Run this outside the Angular zone because there's nothing that Angular cares 
about.\n      // If it were to run inside the Angular zone, every test that 
used Overlay would have to be\n      // either async or fakeAsync.\n      
this._ngZone.runOutsideAngular(() => {\n        setTimeout(finishDetach, 
500);\n      });\n    }\n  }\n}\n\nfunction formatCssUnit(value: number | 
string) {\n  return typeof value === 'string' ? value as string : 
`${value}px`;\n}\n\n\n/** Size properties for an overlay. */\nexport interface 
OverlaySi
 zeConfig {\n  width?: number | string;\n  height?: number | string;\n  
minWidth?: number | string;\n  minHeight?: number | string;\n  maxWidth?: 
number | string;\n  maxHeight?: number | string;\n}\n","/**\n * @license\n * 
Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is 
governed by an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\n\nimport {Injectable, Inject, InjectionToken, 
Optional, SkipSelf, OnDestroy} from '@angular/core';\nimport {OverlayRef} from 
'../overlay-ref';\nimport {Subscription} from 'rxjs/Subscription';\nimport 
{filter} from 'rxjs/operators/filter';\nimport {fromEvent} from 
'rxjs/observable/fromEvent';\nimport {DOCUMENT} from 
'@angular/common';\n\n/**\n * Service for dispatching keyboard events that land 
on the body to appropriate overlay ref,\n * if any. It maintains a list of 
attached overlays to determine best suited overlay based\n * on event target 
and order of overlay opens.\n */\n@Inj
 ectable()\nexport class OverlayKeyboardDispatcher implements OnDestroy {\n\n  
/** Currently attached overlays in the order they were attached. */\n  
_attachedOverlays: OverlayRef[] = [];\n\n  private _keydownEventSubscription: 
Subscription | null;\n\n  constructor(@Inject(DOCUMENT) private _document: any) 
{}\n\n  ngOnDestroy() {\n    this._unsubscribeFromKeydownEvents();\n  }\n\n  
/** Add a new overlay to the list of attached overlay refs. */\n  
add(overlayRef: OverlayRef): void {\n    // Lazily start dispatcher once first 
overlay is added\n    if (!this._keydownEventSubscription) {\n      
this._subscribeToKeydownEvents();\n    }\n\n    
this._attachedOverlays.push(overlayRef);\n  }\n\n  /** Remove an overlay from 
the list of attached overlay refs. */\n  remove(overlayRef: OverlayRef): void 
{\n    const index = this._attachedOverlays.indexOf(overlayRef);\n\n    if 
(index > -1) {\n      this._attachedOverlays.splice(index, 1);\n    }\n\n    // 
Remove the global listener once there are
  no more overlays.\n    if (this._attachedOverlays.length === 0) {\n      
this._unsubscribeFromKeydownEvents();\n    }\n  }\n\n  /**\n   * Subscribe to 
keydown events that land on the body and dispatch those\n   * events to the 
appropriate overlay.\n   */\n  private _subscribeToKeydownEvents(): void {\n    
const bodyKeydownEvents = fromEvent<KeyboardEvent>(this._document.body, 
'keydown', true);\n\n    this._keydownEventSubscription = 
bodyKeydownEvents.pipe(\n      filter(() => !!this._attachedOverlays.length)\n  
  ).subscribe(event => {\n      // Dispatch keydown event to the correct 
overlay.\n      
this._selectOverlayFromEvent(event)._keydownEvents.next(event);\n    });\n  
}\n\n  /** Removes the global keydown subscription. */\n  private 
_unsubscribeFromKeydownEvents(): void {\n    if 
(this._keydownEventSubscription) {\n      
this._keydownEventSubscription.unsubscribe();\n      
this._keydownEventSubscription = null;\n    }\n  }\n\n  /** Select the 
appropriate overlay from a keydown
  event. */\n  private _selectOverlayFromEvent(event: KeyboardEvent): 
OverlayRef {\n    // Check if any overlays contain the event\n    const 
targetedOverlay = this._attachedOverlays.find(overlay => {\n      return 
overlay.overlayElement === event.target ||\n          
overlay.overlayElement.contains(event.target as HTMLElement);\n    });\n\n    
// Use the overlay if it exists, otherwise choose the most recently attached 
one\n    return targetedOverlay || 
this._attachedOverlays[this._attachedOverlays.length - 1];\n  }\n\n}\n\n/** 
@docs-private */\nexport function 
OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY(\n    dispatcher: 
OverlayKeyboardDispatcher, _document: any) {\n  return dispatcher || new 
OverlayKeyboardDispatcher(_document);\n}\n\n/** @docs-private */\nexport const 
OVERLAY_KEYBOARD_DISPATCHER_PROVIDER = {\n  // If there is already an 
OverlayKeyboardDispatcher available, use that.\n  // Otherwise, provide a new 
one.\n  provide: OverlayKeyboardDispatcher,\n  deps: [\n    [new O
 ptional(), new SkipSelf(), OverlayKeyboardDispatcher],\n\n    // Coerce to 
`InjectionToken` so that the `deps` match the \"shape\"\n    // of the type 
expected by Angular\n    DOCUMENT as InjectionToken<any>\n  ],\n  useFactory: 
OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY\n};\n","/**\n * @license\n * 
Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is 
governed by an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\n\nimport {Injectable, InjectionToken, Inject, 
Optional, SkipSelf, OnDestroy} from '@angular/core';\nimport {DOCUMENT} from 
'@angular/common';\n\n\n/** Container inside which all overlays will render. 
*/\n@Injectable()\nexport class OverlayContainer implements OnDestroy {\n  
protected _containerElement: HTMLElement;\n\n  constructor(@Inject(DOCUMENT) 
private _document: any) {}\n\n  ngOnDestroy() {\n    if (this._containerElement 
&& this._containerElement.parentNode) {\n      this._containerElement.pare
 ntNode.removeChild(this._containerElement);\n    }\n  }\n\n  /**\n   * This 
method returns the overlay container element. It will lazily\n   * create the 
element the first time  it is called to facilitate using\n   * the container in 
non-browser environments.\n   * @returns the container element\n   */\n  
getContainerElement(): HTMLElement {\n    if (!this._containerElement) { 
this._createContainer(); }\n    return this._containerElement;\n  }\n\n  /**\n  
 * Create the overlay container element, which is simply a div\n   * with the 
'cdk-overlay-container' class on the document body.\n   */\n  protected 
_createContainer(): void {\n    const container = 
this._document.createElement('div');\n\n    
container.classList.add('cdk-overlay-container');\n    
this._document.body.appendChild(container);\n    this._containerElement = 
container;\n  }\n}\n\n/** @docs-private */\nexport function 
OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer: OverlayContainer,\n  
_document: any) {\n  return par
 entContainer || new OverlayContainer(_document);\n}\n\n/** @docs-private 
*/\nexport const OVERLAY_CONTAINER_PROVIDER = {\n  // If there is already an 
OverlayContainer available, use that. Otherwise, provide a new one.\n  provide: 
OverlayContainer,\n  deps: [\n    [new Optional(), new SkipSelf(), 
OverlayContainer],\n    DOCUMENT as InjectionToken<any> // We need to use the 
InjectionToken somewhere to keep TS happy\n  ],\n  useFactory: 
OVERLAY_CONTAINER_PROVIDER_FACTORY\n};\n","/**\n * @license\n * Copyright 
Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by 
an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\n\nimport {Direction, Directionality} from 
'@angular/cdk/bidi';\nimport {coerceBooleanProperty} from 
'@angular/cdk/coercion';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport 
{TemplatePortal} from '@angular/cdk/portal';\nimport {\n  Directive,\n  
ElementRef,\n  EventEmitter,\n  Inject,\n  InjectionTok
 en,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Output,\n  
SimpleChanges,\n  TemplateRef,\n  ViewContainerRef,\n} from 
'@angular/core';\nimport {Subscription} from 'rxjs/Subscription';\nimport 
{Overlay} from './overlay';\nimport {OverlayConfig} from 
'./overlay-config';\nimport {OverlayRef} from './overlay-ref';\nimport {\n  
ConnectedOverlayPositionChange,\n  ConnectionPositionPair,\n} from 
'./position/connected-position';\nimport {ConnectedPositionStrategy} from 
'./position/connected-position-strategy';\nimport {RepositionScrollStrategy, 
ScrollStrategy} from './scroll/index';\n\n\n/** Default set of positions for 
the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList 
= [\n  new ConnectionPositionPair(\n      {originX: 'start', originY: 
'bottom'},\n      {overlayX: 'start', overlayY: 'top'}),\n  new 
ConnectionPositionPair(\n      {originX: 'start', originY: 'top'},\n      
{overlayX: 'start', overlayY: 'bottom'}),\n  new ConnectionPositionPair(\n    {
 originX: 'end', originY: 'top'},\n    {overlayX: 'end', overlayY: 
'bottom'}),\n  new ConnectionPositionPair(\n    {originX: 'end', originY: 
'bottom'},\n    {overlayX: 'end', overlayY: 'top'}),\n];\n\n/** Injection token 
that determines the scroll handling while the connected overlay is open. 
*/\nexport const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY =\n    new 
InjectionToken<() => 
ScrollStrategy>('cdk-connected-overlay-scroll-strategy');\n\n/** @docs-private 
*/\nexport function 
CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n    
() => RepositionScrollStrategy {\n  return () => 
overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const 
CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n  provide: 
CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n  deps: [Overlay],\n  useFactory: 
CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n\n/**\n * 
Directive applied to an element to make it usable as an origin for an Overlay 
using a\n * ConnectedP
 ositionStrategy.\n */\n@Directive({\n  selector: '[cdk-overlay-origin], 
[overlay-origin], [cdkOverlayOrigin]',\n  exportAs: 
'cdkOverlayOrigin',\n})\nexport class CdkOverlayOrigin {\n  constructor(\n      
/** Reference to the element on which the directive is applied. */\n      
public elementRef: ElementRef) { }\n}\n\n\n/**\n * Directive to facilitate 
declarative creation of an Overlay using a ConnectedPositionStrategy.\n 
*/\n@Directive({\n  selector: '[cdk-connected-overlay], [connected-overlay], 
[cdkConnectedOverlay]',\n  exportAs: 'cdkConnectedOverlay'\n})\nexport class 
CdkConnectedOverlay implements OnDestroy, OnChanges {\n  private _overlayRef: 
OverlayRef;\n  private _templatePortal: TemplatePortal;\n  private _hasBackdrop 
= false;\n  private _backdropSubscription = Subscription.EMPTY;\n  private 
_offsetX: number = 0;\n  private _offsetY: number = 0;\n  private _position: 
ConnectedPositionStrategy;\n\n  /** Origin for the connected overlay. */\n  
@Input('cdkConnectedOverlayOrigi
 n') origin: CdkOverlayOrigin;\n\n  /** Registered connected position pairs. 
*/\n  @Input('cdkConnectedOverlayPositions') positions: 
ConnectionPositionPair[];\n\n  /** The offset in pixels for the overlay 
connection point on the x-axis */\n  @Input('cdkConnectedOverlayOffsetX')\n  
get offsetX(): number { return this._offsetX; }\n  set offsetX(offsetX: number) 
{\n    this._offsetX = offsetX;\n    if (this._position) {\n      
this._position.withOffsetX(offsetX);\n    }\n  }\n\n  /** The offset in pixels 
for the overlay connection point on the y-axis */\n  
@Input('cdkConnectedOverlayOffsetY')\n  get offsetY() { return this._offsetY; 
}\n  set offsetY(offsetY: number) {\n    this._offsetY = offsetY;\n    if 
(this._position) {\n      this._position.withOffsetY(offsetY);\n    }\n  }\n\n  
/** The width of the overlay panel. */\n  @Input('cdkConnectedOverlayWidth') 
width: number | string;\n\n  /** The height of the overlay panel. */\n  
@Input('cdkConnectedOverlayHeight') height: number | stri
 ng;\n\n  /** The min width of the overlay panel. */\n  
@Input('cdkConnectedOverlayMinWidth') minWidth: number | string;\n\n  /** The 
min height of the overlay panel. */\n  @Input('cdkConnectedOverlayMinHeight') 
minHeight: number | string;\n\n  /** The custom class to be set on the backdrop 
element. */\n  @Input('cdkConnectedOverlayBackdropClass') backdropClass: 
string;\n\n  /** Strategy to be used when handling scroll events while the 
overlay is open. */\n  @Input('cdkConnectedOverlayScrollStrategy') 
scrollStrategy: ScrollStrategy =\n      this._scrollStrategy();\n\n  /** 
Whether the overlay is open. */\n  @Input('cdkConnectedOverlayOpen') open: 
boolean = false;\n\n  /** Whether or not the overlay should attach a backdrop. 
*/\n  @Input('cdkConnectedOverlayHasBackdrop')\n  get hasBackdrop() { return 
this._hasBackdrop; }\n  set hasBackdrop(value: any) { this._hasBackdrop = 
coerceBooleanProperty(value); }\n\n  /**\n   * @deprecated\n   * 
@deletion-target 6.0.0\n   */\n  @Input('origin'
 )\n  get _deprecatedOrigin(): CdkOverlayOrigin { return this.origin; }\n  set 
_deprecatedOrigin(_origin: CdkOverlayOrigin) { this.origin = _origin; }\n\n  
/**\n   * @deprecated\n   * @deletion-target 6.0.0\n   */\n  
@Input('positions')\n  get _deprecatedPositions(): ConnectionPositionPair[] { 
return this.positions; }\n  set _deprecatedPositions(_positions: 
ConnectionPositionPair[]) { this.positions = _positions; }\n\n  /**\n   * 
@deprecated\n   * @deletion-target 6.0.0\n   */\n  @Input('offsetX')\n  get 
_deprecatedOffsetX(): number { return this.offsetX; }\n  set 
_deprecatedOffsetX(_offsetX: number) { this.offsetX = _offsetX; }\n\n  /**\n   
* @deprecated\n   * @deletion-target 6.0.0\n   */\n  @Input('offsetY')\n  get 
_deprecatedOffsetY(): number { return this.offsetY; }\n  set 
_deprecatedOffsetY(_offsetY: number) { this.offsetY = _offsetY; }\n\n  /**\n   
* @deprecated\n   * @deletion-target 6.0.0\n   */\n  @Input('width')\n  get 
_deprecatedWidth(): number | string { return this.widt
 h; }\n  set _deprecatedWidth(_width: number | string) { this.width = _width; 
}\n\n  /**\n   * @deprecated\n   * @deletion-target 6.0.0\n   */\n  
@Input('height')\n  get _deprecatedHeight(): number | string { return 
this.height; }\n  set _deprecatedHeight(_height: number | string) { this.height 
= _height; }\n\n  /**\n   * @deprecated\n   * @deletion-target 6.0.0\n   */\n  
@Input('minWidth')\n  get _deprecatedMinWidth(): number | string { return 
this.minWidth; }\n  set _deprecatedMinWidth(_minWidth: number | string) { 
this.minWidth = _minWidth; }\n\n  /**\n   * @deprecated\n   * @deletion-target 
6.0.0\n   */\n  @Input('minHeight')\n  get _deprecatedMinHeight(): number | 
string { return this.minHeight; }\n  set _deprecatedMinHeight(_minHeight: 
number | string) { this.minHeight = _minHeight; }\n\n  /**\n   * @deprecated\n  
 * @deletion-target 6.0.0\n   */\n  @Input('backdropClass')\n  get 
_deprecatedBackdropClass(): string { return this.backdropClass; }\n  set 
_deprecatedBackdropClass(_
 backdropClass: string) { this.backdropClass = _backdropClass; }\n\n  /**\n   * 
@deprecated\n   * @deletion-target 6.0.0\n   */\n  @Input('scrollStrategy')\n  
get _deprecatedScrollStrategy(): ScrollStrategy { return this.scrollStrategy; 
}\n  set _deprecatedScrollStrategy(_scrollStrategy: ScrollStrategy) {\n    
this.scrollStrategy = _scrollStrategy;\n  }\n\n  /**\n   * @deprecated\n   * 
@deletion-target 6.0.0\n   */\n  @Input('open')\n  get _deprecatedOpen(): 
boolean { return this.open; }\n  set _deprecatedOpen(_open: boolean) { 
this.open = _open; }\n\n  /**\n   * @deprecated\n   * @deletion-target 6.0.0\n  
 */\n  @Input('hasBackdrop')\n  get _deprecatedHasBackdrop() { return 
this.hasBackdrop; }\n  set _deprecatedHasBackdrop(_hasBackdrop: any) { 
this.hasBackdrop = _hasBackdrop; }\n\n  /** Event emitted when the backdrop is 
clicked. */\n  @Output() backdropClick = new EventEmitter<void>();\n\n  /** 
Event emitted when the position has changed. */\n  @Output() positionChange = 
new EventE
 mitter<ConnectedOverlayPositionChange>();\n\n  /** Event emitted when the 
overlay has been attached. */\n  @Output() attach = new 
EventEmitter<void>();\n\n  /** Event emitted when the overlay has been 
detached. */\n  @Output() detach = new EventEmitter<void>();\n\n  // 
TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n\n  
constructor(\n      private _overlay: Overlay,\n      templateRef: 
TemplateRef<any>,\n      viewContainerRef: ViewContainerRef,\n      
@Inject(CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY) private _scrollStrategy,\n      
@Optional() private _dir: Directionality) {\n    this._templatePortal = new 
TemplatePortal(templateRef, viewContainerRef);\n  }\n\n  /** The associated 
overlay reference. */\n  get overlayRef(): OverlayRef {\n    return 
this._overlayRef;\n  }\n\n  /** The element's layout direction. */\n  get 
dir(): Direction {\n    return this._dir ? this._dir.value : 'ltr';\n  }\n\n  
ngOnDestroy() {\n    this._destroyOverlay();\n  }\n\n  ngOnChanges(cha
 nges: SimpleChanges) {\n    if (this._position) {\n      if 
(changes['positions'] || changes['_deprecatedPositions']) {\n        
this._position.withPositions(this.positions);\n      }\n\n      if 
(changes['origin'] || changes['_deprecatedOrigin']) {\n        
this._position.setOrigin(this.origin.elementRef);\n\n        if (this.open) {\n 
         this._position.apply();\n        }\n      }\n    }\n\n    if 
(changes['open'] || changes['_deprecatedOpen']) {\n      this.open ? 
this._attachOverlay() : this._detachOverlay();\n    }\n  }\n\n  /** Creates an 
overlay */\n  private _createOverlay() {\n    if (!this.positions || 
!this.positions.length) {\n      this.positions = defaultPositionList;\n    
}\n\n    this._overlayRef = this._overlay.create(this._buildConfig());\n  }\n\n 
 /** Builds the overlay config based on the directive's inputs */\n  private 
_buildConfig(): OverlayConfig {\n    const positionStrategy = this._position = 
this._createPositionStrategy();\n    const overlayConfig = 
 new OverlayConfig({\n      positionStrategy,\n      scrollStrategy: 
this.scrollStrategy,\n      hasBackdrop: this.hasBackdrop\n    });\n\n    if 
(this.width || this.width === 0) {\n      overlayConfig.width = this.width;\n   
 }\n\n    if (this.height || this.height === 0) {\n      overlayConfig.height = 
this.height;\n    }\n\n    if (this.minWidth || this.minWidth === 0) {\n      
overlayConfig.minWidth = this.minWidth;\n    }\n\n    if (this.minHeight || 
this.minHeight === 0) {\n      overlayConfig.minHeight = this.minHeight;\n    
}\n\n    if (this.backdropClass) {\n      overlayConfig.backdropClass = 
this.backdropClass;\n    }\n\n    return overlayConfig;\n  }\n\n  /** Returns 
the position strategy of the overlay to be set on the overlay config */\n  
private _createPositionStrategy(): ConnectedPositionStrategy {\n    const 
primaryPosition = this.positions[0];\n    const originPoint = {originX: 
primaryPosition.originX, originY: primaryPosition.originY};\n    const 
overlayPoint = {ov
 erlayX: primaryPosition.overlayX, overlayY: primaryPosition.overlayY};\n    
const strategy = this._overlay.position()\n      
.connectedTo(this.origin.elementRef, originPoint, overlayPoint)\n      
.withOffsetX(this.offsetX)\n      .withOffsetY(this.offsetY);\n\n    for (let i 
= 1; i < this.positions.length; i++) {\n      strategy.withFallbackPosition(\n  
        {originX: this.positions[i].originX, originY: 
this.positions[i].originY},\n          {overlayX: this.positions[i].overlayX, 
overlayY: this.positions[i].overlayY}\n      );\n    }\n\n    
strategy.onPositionChange.subscribe(pos => this.positionChange.emit(pos));\n\n  
  return strategy;\n  }\n\n  /** Attaches the overlay and subscribes to 
backdrop clicks if backdrop exists */\n  private _attachOverlay() {\n    if 
(!this._overlayRef) {\n      this._createOverlay();\n\n      
this._overlayRef!.keydownEvents().subscribe((event: KeyboardEvent) => {\n       
 if (event.keyCode === ESCAPE) {\n          this._detachOverlay();\n        }\
 n      });\n    }\n\n    this._position.withDirection(this.dir);\n    
this._overlayRef.setDirection(this.dir);\n\n    if 
(!this._overlayRef.hasAttached()) {\n      
this._overlayRef.attach(this._templatePortal);\n      this.attach.emit();\n    
}\n\n    if (this.hasBackdrop) {\n      this._backdropSubscription = 
this._overlayRef.backdropClick().subscribe(() => {\n        
this.backdropClick.emit();\n      });\n    }\n  }\n\n  /** Detaches the overlay 
and unsubscribes to backdrop clicks if backdrop exists */\n  private 
_detachOverlay() {\n    if (this._overlayRef) {\n      
this._overlayRef.detach();\n      this.detach.emit();\n    }\n\n    
this._backdropSubscription.unsubscribe();\n  }\n\n  /** Destroys the overlay 
created by this directive. */\n  private _destroyOverlay() {\n    if 
(this._overlayRef) {\n      this._overlayRef.dispose();\n    }\n\n    
this._backdropSubscription.unsubscribe();\n  }\n}\n","/**\n * @license\n * 
Copyright Google LLC All Rights Reserved.\n *\n * Use of this 
 source code is governed by an MIT-style license that can be\n * found in the 
LICENSE file at https://angular.io/license\n */\n\nimport {ScrollStrategy} from 
'./scroll-strategy';\n\n/** Scroll strategy that doesn't do anything. 
*/\nexport class NoopScrollStrategy implements ScrollStrategy {\n  /** Does 
nothing, as this scroll strategy is a no-op. */\n  enable() { }\n  /** Does 
nothing, as this scroll strategy is a no-op. */\n  disable() { }\n  /** Does 
nothing, as this scroll strategy is a no-op. */\n  attach() { }\n}\n","/**\n * 
@license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 
source code is governed by an MIT-style license that can be\n * found in the 
LICENSE file at https://angular.io/license\n */\n\nimport {PositionStrategy} 
from './position/position-strategy';\nimport {Direction} from 
'@angular/cdk/bidi';\nimport {ScrollStrategy} from 
'./scroll/scroll-strategy';\nimport {NoopScrollStrategy} from 
'./scroll/noop-scroll-strategy';\n\n\n/** Initial configur
 ation used when creating an overlay. */\nexport class OverlayConfig {\n  /** 
Strategy with which to position the overlay. */\n  positionStrategy?: 
PositionStrategy;\n\n  /** Strategy to be used when handling scroll events 
while the overlay is open. */\n  scrollStrategy?: ScrollStrategy = new 
NoopScrollStrategy();\n\n  /** Custom class to add to the overlay pane. */\n  
panelClass?: string | string[] = '';\n\n  /** Whether the overlay has a 
backdrop. */\n  hasBackdrop?: boolean = false;\n\n  /** Custom class to add to 
the backdrop */\n  backdropClass?: string = 'cdk-overlay-dark-backdrop';\n\n  
/** The width of the overlay panel. If a number is provided, pixel units are 
assumed. */\n  width?: number | string;\n\n  /** The height of the overlay 
panel. If a number is provided, pixel units are assumed. */\n  height?: number 
| string;\n\n  /** The min-width of the overlay panel. If a number is provided, 
pixel units are assumed. */\n  minWidth?: number | string;\n\n  /** The 
min-height of 
 the overlay panel. If a number is provided, pixel units are assumed. */\n  
minHeight?: number | string;\n\n  /** The max-width of the overlay panel. If a 
number is provided, pixel units are assumed. */\n  maxWidth?: number | 
string;\n\n  /** The max-height of the overlay panel. If a number is provided, 
pixel units are assumed. */\n  maxHeight?: number | string;\n\n  /** The 
direction of the text in the overlay panel. */\n  direction?: Direction = 
'ltr';\n\n  constructor(config?: OverlayConfig) {\n    if (config) {\n      
Object.keys(config)\n        .filter(key => typeof config[key] !== 
'undefined')\n        .forEach(key => this[key] = config[key]);\n    }\n  
}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * 
Use of this source code is governed by an MIT-style license that can be\n * 
found in the LICENSE file at https://angular.io/license\n */\n\n/** Horizontal 
dimension of a connection point on the perimeter of the origin or overlay 
element. */\nimport 
 {Optional} from '@angular/core';\nexport type HorizontalConnectionPos = 
'start' | 'center' | 'end';\n\n/** Vertical dimension of a connection point on 
the perimeter of the origin or overlay element. */\nexport type 
VerticalConnectionPos = 'top' | 'center' | 'bottom';\n\n\n/** A connection 
point on the origin element. */\nexport interface OriginConnectionPosition {\n  
originX: HorizontalConnectionPos;\n  originY: VerticalConnectionPos;\n}\n\n/** 
A connection point on the overlay element. */\nexport interface 
OverlayConnectionPosition {\n  overlayX: HorizontalConnectionPos;\n  overlayY: 
VerticalConnectionPos;\n}\n\n/** The points of the origin element and the 
overlay element to connect. */\nexport class ConnectionPositionPair {\n  /** 
X-axis attachment point for connected overlay origin. Can be 'start', 'end', or 
'center'. */\n  originX: HorizontalConnectionPos;\n  /** Y-axis attachment 
point for connected overlay origin. Can be 'top', 'bottom', or 'center'. */\n  
originY: VerticalCon
 nectionPos;\n  /** X-axis attachment point for connected overlay. Can be 
'start', 'end', or 'center'. */\n  overlayX: HorizontalConnectionPos;\n  /** 
Y-axis attachment point for connected overlay. Can be 'top', 'bottom', or 
'center'. */\n  overlayY: VerticalConnectionPos;\n\n  constructor(\n    origin: 
OriginConnectionPosition,\n    overlay: OverlayConnectionPosition,\n    public 
offsetX?: number,\n    public offsetY?: number) {\n\n    this.originX = 
origin.originX;\n    this.originY = origin.originY;\n    this.overlayX = 
overlay.overlayX;\n    this.overlayY = overlay.overlayY;\n  }\n}\n\n/**\n * Set 
of properties regarding the position of the origin and overlay relative to the 
viewport\n * with respect to the containing Scrollable elements.\n *\n * The 
overlay and origin are clipped if any part of their bounding client rectangle 
exceeds the\n * bounds of any one of the strategy's Scrollable's bounding 
client rectangle.\n *\n * The overlay and origin are outside view if there is 
no 
 overlap between their bounding client\n * rectangle and any one of the 
strategy's Scrollable's bounding client rectangle.\n *\n *       -----------    
                -----------\n *       | outside |                    | clipped 
|\n *       |  view   |              --------------------------\n *       |     
    |              |     |         |        |\n *       ----------              
 |     -----------        |\n *  --------------------------    |                
        |\n *  |                        |    |      Scrollable        |\n *  |  
                      |    |                        |\n *  |                    
    |     --------------------------\n *  |      Scrollable        |\n *  |     
                   |\n *  --------------------------\n *\n *  @docs-private\n 
*/\nexport class ScrollingVisibility {\n  isOriginClipped: boolean;\n  
isOriginOutsideView: boolean;\n  isOverlayClipped: boolean;\n  
isOverlayOutsideView: boolean;\n}\n\n/** The change event emitted by the st
 rategy when a fallback position is used. */\nexport class 
ConnectedOverlayPositionChange {\n  constructor(\n      /** The position used 
as a result of this change. */\n      public connectionPair: 
ConnectionPositionPair,\n      /** @docs-private */\n      @Optional() public 
scrollableViewProperties: ScrollingVisibility) {}\n}\n","/**\n * @license\n * 
Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is 
governed by an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\nimport {NgZone} from '@angular/core';\nimport 
{ScrollStrategy, getMatScrollStrategyAlreadyAttachedError} from 
'./scroll-strategy';\nimport {OverlayRef} from '../overlay-ref';\nimport 
{Subscription} from 'rxjs/Subscription';\nimport {ScrollDispatcher, 
ViewportRuler} from '@angular/cdk/scrolling';\n\n/**\n * Config options for the 
CloseScrollStrategy.\n */\nexport interface CloseScrollStrategyConfig {\n  /** 
Amount of pixels the user has to scroll before
  the overlay is closed. */\n  threshold?: number;\n}\n\n/**\n * Strategy that 
will close the overlay as soon as the user starts scrolling.\n */\nexport class 
CloseScrollStrategy implements ScrollStrategy {\n  private _scrollSubscription: 
Subscription|null = null;\n  private _overlayRef: OverlayRef;\n  private 
_initialScrollPosition: number;\n\n  constructor(\n    private 
_scrollDispatcher: ScrollDispatcher,\n    private _ngZone: NgZone,\n    private 
_viewportRuler: ViewportRuler,\n    private _config?: 
CloseScrollStrategyConfig) {}\n\n  /** Attaches this scroll strategy to an 
overlay. */\n  attach(overlayRef: OverlayRef) {\n    if (this._overlayRef) {\n  
    throw getMatScrollStrategyAlreadyAttachedError();\n    }\n\n    
this._overlayRef = overlayRef;\n  }\n\n  /** Enables the closing of the 
attached overlay on scroll. */\n  enable() {\n    if (this._scrollSubscription) 
{\n      return;\n    }\n\n    const stream = 
this._scrollDispatcher.scrolled(0);\n\n    if (this._config && this.
 _config.threshold && this._config.threshold > 1) {\n      
this._initialScrollPosition = 
this._viewportRuler.getViewportScrollPosition().top;\n\n      
this._scrollSubscription = stream.subscribe(() => {\n        const 
scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n\n       
 if (Math.abs(scrollPosition - this._initialScrollPosition) > 
this._config!.threshold!) {\n          this._detach();\n        } else {\n      
    this._overlayRef.updatePosition();\n        }\n      });\n    } else {\n    
  this._scrollSubscription = stream.subscribe(this._detach);\n    }\n  }\n\n  
/** Disables the closing the attached overlay on scroll. */\n  disable() {\n    
if (this._scrollSubscription) {\n      
this._scrollSubscription.unsubscribe();\n      this._scrollSubscription = 
null;\n    }\n  }\n\n  /** Detaches the overlay ref and disables the scroll 
strategy. */\n  private _detach = () => {\n    this.disable();\n\n    if 
(this._overlayRef.hasAttached()) {\n      this._ngZone.run
 (() => this._overlayRef.detach());\n    }\n  }\n}\n","/**\n * @license\n * 
Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is 
governed by an MIT-style license that can be\n * found in the LICENSE file at 
https://angular.io/license\n */\n\nimport {ScrollStrategy} from 
'./scroll-strategy';\nimport {ViewportRuler} from 
'@angular/cdk/scrolling';\n\n/**\n * Strategy that will prevent the user from 
scrolling while the overlay is visible.\n */\nexport class BlockScrollStrategy 
implements ScrollStrategy {\n  private _previousHTMLStyles = { top: '', left: 
'' };\n  private _previousScrollPosition: { top: number, left: number };\n  
private _isEnabled = false;\n  private _document: Document;\n\n  
constructor(private _viewportRuler: ViewportRuler, document: any) {\n    
this._document = document;\n  }\n\n  /** Attaches this scroll strategy to an 
overlay. */\n  attach() { }\n\n  /** Blocks page-level scroll while the 
attached overlay is open. */\n  enable() {\n    if (thi
 s._canBeEnabled()) {\n      const root = this._document.documentElement;\n\n   
   this._previousScrollPosition = 
this._viewportRuler.getViewportScrollPosition();\n\n      // Cache the previous 
inline styles in case the user had set them.\n      
this._previousHTMLStyles.left = root.style.left || '';\n      
this._previousHTMLStyles.top = root.style.top || '';\n\n      // Note: we're 
using the `html` node, instead of the `body`, because the `body` may\n      // 
have the user agent margin, whereas the `html` is guaranteed not to have one.\n 
     root.style.left = `${-this._previousScrollPosition.left}px`;\n      
root.style.top = `${-this._previousScrollPosition.top}px`;\n      
root.classList.add('cdk-global-scrollblock');\n      this._isEnabled = true;\n  
  }\n  }\n\n  /** Unblocks page-level scroll while the attached overlay is 
open. */\n  disable() {\n    if (this._isEnabled) {\n      const html = 
this._document.documentElement;\n      const body = this._document.body;\n      
const pr
 eviousHtmlScrollBehavior = html.style['scrollBehavior'] || '';\n      const 
previousBodyScrollBehavior = body.style['scrollBehavior'] || '';\n\n      
this._isEnabled = false;\n\n      html.style.left = 
this._previousHTMLStyles.left;\n      html.style.top = 
this._previousHTMLStyles.top;\n      
html.classList.remove('cdk-global-scrollblock');\n\n      // Disable 
user-defined smooth scrolling temporarily while we restore the scroll 
position.\n      // See 
https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n      
html.style['scrollBehavior'] = body.style['scrollBehavior'] = 'auto';\n\n      
window.scroll(this._previousScrollPosition.left, 
this._previousScrollPosition.top);\n\n      html.style['scrollBehavior'] = 
previousHtmlScrollBehavior;\n      body.style['scrollBehavior'] = 
previousBodyScrollBehavior;\n    }\n  }\n\n  private _canBeEnabled(): boolean 
{\n    // Since the scroll strategies can't be singletons, we have to use a 
global CSS class\n    // (`cdk-global-scrollb
 lock`) to make sure that we don't try to disable global\n    // scrolling 
multiple times.\n    const html = this._document.documentElement;\n\n    if 
(html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n      
return false;\n    }\n\n    const body = this._document.body;\n    const 
viewport = this._viewportRuler.getViewportSize();\n    return body.scrollHeight 
> viewport.height || body.scrollWidth > viewport.width;\n  }\

<TRUNCATED>

Reply via email to