var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
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;
};
import { Directive, Injectable, NgModule, } from '@angular/core';
import { CdkPortal, CdkPortalOutlet, ComponentPortal, PortalInjector, PortalModule, TemplatePortal, } from '@angular/cdk/portal';
import { FlexibleConnectedPositionStrategy, Overlay, OverlayContainer, OverlayModule, OverlayPositionBuilder, } from '@angular/cdk/overlay';
import { Platform } from '@angular/cdk/platform';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
var ElPortalDirective = /** @class */ (function (_super) {
    __extends(ElPortalDirective, _super);
    function ElPortalDirective() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElPortalDirective = __decorate([
        Directive({ selector: '[elPortal]' })
    ], ElPortalDirective);
    return ElPortalDirective;
}(CdkPortal));
export { ElPortalDirective };
var ElPortalOutletDirective = /** @class */ (function (_super) {
    __extends(ElPortalOutletDirective, _super);
    function ElPortalOutletDirective() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElPortalOutletDirective = __decorate([
        Directive({ selector: '[elPortalOutlet]' })
    ], ElPortalOutletDirective);
    return ElPortalOutletDirective;
}(CdkPortalOutlet));
export { ElPortalOutletDirective };
var ElComponentPortal = /** @class */ (function (_super) {
    __extends(ElComponentPortal, _super);
    function ElComponentPortal() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ElComponentPortal;
}(ComponentPortal));
export { ElComponentPortal };
var ElOverlay = /** @class */ (function (_super) {
    __extends(ElOverlay, _super);
    function ElOverlay() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElOverlay = __decorate([
        Injectable()
    ], ElOverlay);
    return ElOverlay;
}(Overlay));
export { ElOverlay };
var ElPlatform = /** @class */ (function (_super) {
    __extends(ElPlatform, _super);
    function ElPlatform() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElPlatform = __decorate([
        Injectable()
    ], ElPlatform);
    return ElPlatform;
}(Platform));
export { ElPlatform };
var ElOverlayPositionBuilder = /** @class */ (function (_super) {
    __extends(ElOverlayPositionBuilder, _super);
    function ElOverlayPositionBuilder() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElOverlayPositionBuilder = __decorate([
        Injectable()
    ], ElOverlayPositionBuilder);
    return ElOverlayPositionBuilder;
}(OverlayPositionBuilder));
export { ElOverlayPositionBuilder };
var ElTemplatePortal = /** @class */ (function (_super) {
    __extends(ElTemplatePortal, _super);
    function ElTemplatePortal(template, viewContainerRef, context) {
        return _super.call(this, template, viewContainerRef, context) || this;
    }
    return ElTemplatePortal;
}(TemplatePortal));
export { ElTemplatePortal };
var ElOverlayContainer = /** @class */ (function (_super) {
    __extends(ElOverlayContainer, _super);
    function ElOverlayContainer() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ElOverlayContainer.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ElOverlayContainer_Factory() { return new ElOverlayContainer(i0.ɵɵinject(i1.DOCUMENT)); }, token: ElOverlayContainer, providedIn: "root" });
    return ElOverlayContainer;
}(OverlayContainer));
export { ElOverlayContainer };
var ElFlexibleConnectedPositionStrategy = /** @class */ (function (_super) {
    __extends(ElFlexibleConnectedPositionStrategy, _super);
    function ElFlexibleConnectedPositionStrategy() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ElFlexibleConnectedPositionStrategy;
}(FlexibleConnectedPositionStrategy));
export { ElFlexibleConnectedPositionStrategy };
var ElPortalInjector = /** @class */ (function (_super) {
    __extends(ElPortalInjector, _super);
    function ElPortalInjector() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return ElPortalInjector;
}(PortalInjector));
export { ElPortalInjector };
var CDK_MODULES = [OverlayModule, PortalModule];
/**
 * This module helps us to keep all angular/cdk deps inside our cdk module via providing aliases.
 * Approach will help us move cdk in separate npm package and refactor endlessjs/theme code.
 * */
var ElCdkMappingModule = /** @class */ (function () {
    function ElCdkMappingModule() {
    }
    ElCdkMappingModule_1 = ElCdkMappingModule;
    ElCdkMappingModule.forRoot = function () {
        return {
            ngModule: ElCdkMappingModule_1,
            providers: [
                ElOverlay,
                ElPlatform,
                ElOverlayPositionBuilder,
            ],
        };
    };
    var ElCdkMappingModule_1;
    ElCdkMappingModule = ElCdkMappingModule_1 = __decorate([
        NgModule({
            imports: CDK_MODULES.slice(),
            exports: CDK_MODULES.concat([
                ElPortalDirective,
                ElPortalOutletDirective,
            ]),
            declarations: [ElPortalDirective, ElPortalOutletDirective],
        })
    ], ElCdkMappingModule);
    return ElCdkMappingModule;
}());
export { ElCdkMappingModule };
//# sourceMappingURL=mapping.js.map