@ciri/ngx-popup
Version:
An angular popup component that can customize animation.
164 lines • 10.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/overlay/overlay-helper.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, ApplicationRef, ComponentFactoryResolver, Injector, Inject } from '@angular/core';
import { OverlayComponent } from './overlay.component';
import { DOCUMENT } from '@angular/common';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
/**
* @record
*/
export function OverlayOptions() { }
if (false) {
/** @type {?} */
OverlayOptions.prototype.opacity;
/** @type {?|undefined} */
OverlayOptions.prototype.zIndex;
/** @type {?|undefined} */
OverlayOptions.prototype.onClick;
/** @type {?|undefined} */
OverlayOptions.prototype.getContainer;
}
/**
* \@dynamic
*/
var OverlayHelper = /** @class */ (function () {
function OverlayHelper(appRef, cfr, injector, document) {
this.appRef = appRef;
this.cfr = cfr;
this.injector = injector;
this.document = document;
}
/**
* @param {?} options
* @return {?}
*/
OverlayHelper.prototype.open = /**
* @param {?} options
* @return {?}
*/
function (options) {
/** @type {?} */
var opts = Object.assign(this.getDefaultOptions(), options);
var opacity = opts.opacity, zIndex = opts.zIndex, getContainer = opts.getContainer;
/** @type {?} */
var factory = this.cfr.resolveComponentFactory(OverlayComponent);
/** @type {?} */
var componentRef = factory.create(this.injector);
this.appRef.attachView(componentRef.hostView);
var nativeElement = componentRef.location.nativeElement;
/** @type {?} */
var container = getContainer();
container.insertBefore(nativeElement, container.firstChild);
/** @type {?} */
var inst = componentRef.instance;
inst.opacity = opacity;
inst.zIndex = zIndex;
inst.visible = true;
this.setListener(componentRef, opts);
return (/**
* @return {?}
*/
function () {
inst.visible = false;
});
};
/**
* @private
* @return {?}
*/
OverlayHelper.prototype.getDefaultOptions = /**
* @private
* @return {?}
*/
function () {
return {
opacity: 0.5,
getContainer: (/**
* @return {?}
*/
function () { return document.body; })
};
};
/**
* @private
* @param {?} componentRef
* @param {?} opts
* @return {?}
*/
OverlayHelper.prototype.setListener = /**
* @private
* @param {?} componentRef
* @param {?} opts
* @return {?}
*/
function (componentRef, opts) {
/** @type {?} */
var inst = componentRef.instance;
/** @type {?} */
var subs = new Subscription();
var onClick = opts.onClick;
subs.add(inst.afterClose.subscribe((/**
* @return {?}
*/
function () {
componentRef.destroy();
})));
if (onClick) {
subs.add(inst.clickOverlay.subscribe((/**
* @return {?}
*/
function () {
onClick();
})));
}
componentRef.onDestroy((/**
* @return {?}
*/
function () {
subs.unsubscribe();
}));
};
OverlayHelper.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
OverlayHelper.ctorParameters = function () { return [
{ type: ApplicationRef },
{ type: ComponentFactoryResolver },
{ type: Injector },
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
]; };
/** @nocollapse */ OverlayHelper.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function OverlayHelper_Factory() { return new OverlayHelper(i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.DOCUMENT)); }, token: OverlayHelper, providedIn: "root" });
return OverlayHelper;
}());
export { OverlayHelper };
if (false) {
/**
* @type {?}
* @private
*/
OverlayHelper.prototype.appRef;
/**
* @type {?}
* @private
*/
OverlayHelper.prototype.cfr;
/**
* @type {?}
* @private
*/
OverlayHelper.prototype.injector;
/**
* @type {?}
* @private
*/
OverlayHelper.prototype.document;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oZWxwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2lyaS9uZ3gtcG9wdXAvIiwic291cmNlcyI6WyJsaWIvb3ZlcmxheS9vdmVybGF5LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7Ozs7QUFFbkMsb0NBS0M7OztJQUpDLGlDQUFlOztJQUNmLGdDQUFlOztJQUNmLGlDQUFvQjs7SUFDcEIsc0NBQWdDOzs7OztBQUlsQztJQUlFLHVCQUNVLE1BQXNCLEVBQ3RCLEdBQTZCLEVBQzdCLFFBQWtCLEVBQ0EsUUFBa0I7UUFIcEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNBLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDM0MsQ0FBQzs7Ozs7SUFFSiw0QkFBSTs7OztJQUFKLFVBQUssT0FBdUI7O1lBQ3BCLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sQ0FBQztRQUNyRCxJQUFBLHNCQUFPLEVBQUUsb0JBQU0sRUFBRSxnQ0FBWTs7WUFFL0IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7O1lBQzVELFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXJDLElBQUEsbURBQWE7O1lBQ2YsU0FBUyxHQUFHLFlBQVksRUFBRTtRQUNoQyxTQUFTLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUE7O1lBRXJELElBQUksR0FBRyxZQUFZLENBQUMsUUFBUTtRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUVuQixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVwQzs7O1FBQU87WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUN0QixDQUFDLEVBQUE7SUFDSCxDQUFDOzs7OztJQUVPLHlDQUFpQjs7OztJQUF6QjtRQUNFLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRztZQUNaLFlBQVk7OztZQUFFLGNBQU0sT0FBQSxRQUFRLENBQUMsSUFBSSxFQUFiLENBQWEsQ0FBQTtTQUNsQyxDQUFBO0lBQ0gsQ0FBQzs7Ozs7OztJQUVPLG1DQUFXOzs7Ozs7SUFBbkIsVUFBb0IsWUFBNEMsRUFBRSxJQUFvQjs7WUFDOUUsSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFROztZQUM1QixJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFDdkIsSUFBQSxzQkFBTztRQUVmLElBQUksQ0FBQyxHQUFHLENBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7UUFBQztZQUN4QixZQUFZLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDeEIsQ0FBQyxFQUFDLENBQ0gsQ0FBQTtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FDTixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7OztZQUFDO2dCQUMxQixPQUFPLEVBQUUsQ0FBQTtZQUNYLENBQUMsRUFBQyxDQUNILENBQUE7U0FDRjtRQUVELFlBQVksQ0FBQyxTQUFTOzs7UUFBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEIsQ0FBQyxFQUFDLENBQUE7SUFDSixDQUFDOztnQkEvREYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFwQkMsY0FBYztnQkFDZCx3QkFBd0I7Z0JBQ3hCLFFBQVE7Z0JBd0I4QixRQUFRLHVCQUEzQyxNQUFNLFNBQUMsUUFBUTs7O3dCQTVCcEI7Q0FvRkMsQUFoRUQsSUFnRUM7U0E3RFksYUFBYTs7Ozs7O0lBRXRCLCtCQUE4Qjs7Ozs7SUFDOUIsNEJBQXFDOzs7OztJQUNyQyxpQ0FBMEI7Ozs7O0lBQzFCLGlDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdG9yLFxuICBJbmplY3QsXG4gIENvbXBvbmVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS5jb21wb25lbnQnXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheU9wdGlvbnMge1xuICBvcGFjaXR5OiBudW1iZXJcbiAgekluZGV4PzogbnVtYmVyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkXG4gIGdldENvbnRhaW5lcj86ICgpID0+IEhUTUxFbGVtZW50XG59XG5cbi8qKiBAZHluYW1pYyAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheUhlbHBlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBvcGVuKG9wdGlvbnM6IE92ZXJsYXlPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLCBvcHRpb25zKVxuICAgIGNvbnN0IHsgb3BhY2l0eSwgekluZGV4LCBnZXRDb250YWluZXIgfSA9IG9wdHNcblxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShPdmVybGF5Q29tcG9uZW50KVxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpXG5cbiAgICBjb25zdCB7IG5hdGl2ZUVsZW1lbnQgfSA9IGNvbXBvbmVudFJlZi5sb2NhdGlvblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGdldENvbnRhaW5lcigpXG4gICAgY29udGFpbmVyLmluc2VydEJlZm9yZShuYXRpdmVFbGVtZW50LCBjb250YWluZXIuZmlyc3RDaGlsZClcblxuICAgIGNvbnN0IGluc3QgPSBjb21wb25lbnRSZWYuaW5zdGFuY2VcbiAgICBpbnN0Lm9wYWNpdHkgPSBvcGFjaXR5XG4gICAgaW5zdC56SW5kZXggPSB6SW5kZXhcbiAgICBpbnN0LnZpc2libGUgPSB0cnVlXG5cbiAgICB0aGlzLnNldExpc3RlbmVyKGNvbXBvbmVudFJlZiwgb3B0cylcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpbnN0LnZpc2libGUgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE9wdGlvbnMoKTogT3ZlcmxheU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBvcGFjaXR5OiAwLjUsXG4gICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmJvZHlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RlbmVyKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE92ZXJsYXlDb21wb25lbnQ+LCBvcHRzOiBPdmVybGF5T3B0aW9ucykge1xuICAgIGNvbnN0IGluc3QgPSBjb21wb25lbnRSZWYuaW5zdGFuY2VcbiAgICBjb25zdCBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpXG4gICAgY29uc3QgeyBvbkNsaWNrIH0gPSBvcHRzXG5cbiAgICBzdWJzLmFkZChcbiAgICAgIGluc3QuYWZ0ZXJDbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpXG4gICAgICB9KVxuICAgIClcbiAgICBpZiAob25DbGljaykge1xuICAgICAgc3Vicy5hZGQoXG4gICAgICAgIGluc3QuY2xpY2tPdmVybGF5LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgb25DbGljaygpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuXG4gICAgY29tcG9uZW50UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBzdWJzLnVuc3Vic2NyaWJlKClcbiAgICB9KVxuICB9XG59XG4iXX0=