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 ElCdkMappingModule_1;
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";
let ElPortalDirective = class ElPortalDirective extends CdkPortal {
};
ElPortalDirective = __decorate([
    Directive({ selector: '[elPortal]' })
], ElPortalDirective);
export { ElPortalDirective };
let ElPortalOutletDirective = class ElPortalOutletDirective extends CdkPortalOutlet {
};
ElPortalOutletDirective = __decorate([
    Directive({ selector: '[elPortalOutlet]' })
], ElPortalOutletDirective);
export { ElPortalOutletDirective };
export class ElComponentPortal extends ComponentPortal {
}
let ElOverlay = class ElOverlay extends Overlay {
};
ElOverlay = __decorate([
    Injectable()
], ElOverlay);
export { ElOverlay };
let ElPlatform = class ElPlatform extends Platform {
};
ElPlatform = __decorate([
    Injectable()
], ElPlatform);
export { ElPlatform };
let ElOverlayPositionBuilder = class ElOverlayPositionBuilder extends OverlayPositionBuilder {
};
ElOverlayPositionBuilder = __decorate([
    Injectable()
], ElOverlayPositionBuilder);
export { ElOverlayPositionBuilder };
export class ElTemplatePortal extends TemplatePortal {
    constructor(template, viewContainerRef, context) {
        super(template, viewContainerRef, context);
    }
}
export class ElOverlayContainer extends OverlayContainer {
}
ElOverlayContainer.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ElOverlayContainer_Factory() { return new ElOverlayContainer(i0.ɵɵinject(i1.DOCUMENT)); }, token: ElOverlayContainer, providedIn: "root" });
export class ElFlexibleConnectedPositionStrategy extends FlexibleConnectedPositionStrategy {
}
export class ElPortalInjector extends PortalInjector {
}
const 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.
 * */
let ElCdkMappingModule = ElCdkMappingModule_1 = class ElCdkMappingModule {
    static forRoot() {
        return {
            ngModule: ElCdkMappingModule_1,
            providers: [
                ElOverlay,
                ElPlatform,
                ElOverlayPositionBuilder,
            ],
        };
    }
};
ElCdkMappingModule = ElCdkMappingModule_1 = __decorate([
    NgModule({
        imports: [...CDK_MODULES],
        exports: [
            ...CDK_MODULES,
            ElPortalDirective,
            ElPortalOutletDirective,
        ],
        declarations: [ElPortalDirective, ElPortalOutletDirective],
    })
], ElCdkMappingModule);
export { ElCdkMappingModule };
//# sourceMappingURL=mapping.js.map