md2
Version:
Angular2 based Material Design components, directives and services are Accordion, Autocomplete, Chips(Tags), Collapse, Colorpicker, Data Table, Datepicker, Dialog(Modal), Menu, Multiselect, Select, Tabs, Tags(Chips), Toast and Tooltip.
105 lines • 4.78 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { ComponentFactoryResolver, Injectable, ApplicationRef, Injector, NgZone, } from '@angular/core';
import { OverlayState } from './overlay-state';
import { DomPortalHost } from '../portal/dom-portal-host';
import { OverlayRef } from './overlay-ref';
import { OverlayPositionBuilder } from './position/overlay-position-builder';
import { VIEWPORT_RULER_PROVIDER } from './position/viewport-ruler';
import { OverlayContainer, OVERLAY_CONTAINER_PROVIDER } from './overlay-container';
import { ScrollStrategyOptions } from './scroll/index';
/** Next overlay unique ID. */
var nextUniqueId = 0;
/** The default state for newly created overlays. */
var defaultState = new OverlayState();
/**
* Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be
* used as a low-level building building block for other components. Dialogs, tooltips, menus,
* selects, etc. can all be built using overlays. The service should primarily be used by authors
* of re-usable components rather than developers building end-user applications.
*
* An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.
*/
var Overlay = (function () {
function Overlay(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {
this.scrollStrategies = scrollStrategies;
this._overlayContainer = _overlayContainer;
this._componentFactoryResolver = _componentFactoryResolver;
this._positionBuilder = _positionBuilder;
this._appRef = _appRef;
this._injector = _injector;
this._ngZone = _ngZone;
}
/**
* Creates an overlay.
* @param state State to apply to the overlay.
* @returns Reference to the created overlay.
*/
Overlay.prototype.create = function (state) {
if (state === void 0) { state = defaultState; }
return this._createOverlayRef(this._createPaneElement(), state);
};
/**
* Returns a position builder that can be used, via fluent API,
* to construct and configure a position strategy.
*/
Overlay.prototype.position = function () {
return this._positionBuilder;
};
/**
* Creates the DOM element for an overlay and appends it to the overlay container.
* @returns Newly-created pane element
*/
Overlay.prototype._createPaneElement = function () {
var pane = document.createElement('div');
pane.id = "cdk-overlay-" + nextUniqueId++;
pane.classList.add('cdk-overlay-pane');
this._overlayContainer.getContainerElement().appendChild(pane);
return pane;
};
/**
* Create a DomPortalHost into which the overlay content can be loaded.
* @param pane The DOM element to turn into a portal host.
* @returns A portal host for the given DOM element.
*/
Overlay.prototype._createPortalHost = function (pane) {
return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);
};
/**
* Creates an OverlayRef for an overlay in the given DOM element.
* @param pane DOM element for the overlay
* @param state
*/
Overlay.prototype._createOverlayRef = function (pane, state) {
var scrollStrategy = state.scrollStrategy || this.scrollStrategies.noop();
var portalHost = this._createPortalHost(pane);
return new OverlayRef(portalHost, pane, state, scrollStrategy, this._ngZone);
};
return Overlay;
}());
Overlay = __decorate([
Injectable(),
__metadata("design:paramtypes", [ScrollStrategyOptions,
OverlayContainer,
ComponentFactoryResolver,
OverlayPositionBuilder,
ApplicationRef,
Injector,
NgZone])
], Overlay);
export { Overlay };
/** Providers for Overlay and its related injectables. */
export var OVERLAY_PROVIDERS = [
Overlay,
OverlayPositionBuilder,
VIEWPORT_RULER_PROVIDER,
OVERLAY_CONTAINER_PROVIDER,
];
//# sourceMappingURL=overlay.js.map