UNPKG

@ciri/ngx-popup

Version:

An angular popup component that can customize animation.

154 lines 10 kB
/** * @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 */ export class OverlayHelper { /** * @param {?} appRef * @param {?} cfr * @param {?} injector * @param {?} document */ constructor(appRef, cfr, injector, document) { this.appRef = appRef; this.cfr = cfr; this.injector = injector; this.document = document; } /** * @param {?} options * @return {?} */ open(options) { /** @type {?} */ const opts = Object.assign(this.getDefaultOptions(), options); const { opacity, zIndex, getContainer } = opts; /** @type {?} */ const factory = this.cfr.resolveComponentFactory(OverlayComponent); /** @type {?} */ const componentRef = factory.create(this.injector); this.appRef.attachView(componentRef.hostView); const { nativeElement } = componentRef.location; /** @type {?} */ const container = getContainer(); container.insertBefore(nativeElement, container.firstChild); /** @type {?} */ const inst = componentRef.instance; inst.opacity = opacity; inst.zIndex = zIndex; inst.visible = true; this.setListener(componentRef, opts); return (/** * @return {?} */ () => { inst.visible = false; }); } /** * @private * @return {?} */ getDefaultOptions() { return { opacity: 0.5, getContainer: (/** * @return {?} */ () => document.body) }; } /** * @private * @param {?} componentRef * @param {?} opts * @return {?} */ setListener(componentRef, opts) { /** @type {?} */ const inst = componentRef.instance; /** @type {?} */ const subs = new Subscription(); const { onClick } = opts; subs.add(inst.afterClose.subscribe((/** * @return {?} */ () => { componentRef.destroy(); }))); if (onClick) { subs.add(inst.clickOverlay.subscribe((/** * @return {?} */ () => { onClick(); }))); } componentRef.onDestroy((/** * @return {?} */ () => { subs.unsubscribe(); })); } } OverlayHelper.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ OverlayHelper.ctorParameters = () => [ { 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" }); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oZWxwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2lyaS9uZ3gtcG9wdXAvIiwic291cmNlcyI6WyJsaWIvb3ZlcmxheS9vdmVybGF5LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7Ozs7QUFFbkMsb0NBS0M7OztJQUpDLGlDQUFlOztJQUNmLGdDQUFlOztJQUNmLGlDQUFvQjs7SUFDcEIsc0NBQWdDOzs7OztBQU9sQyxNQUFNLE9BQU8sYUFBYTs7Ozs7OztJQUN4QixZQUNVLE1BQXNCLEVBQ3RCLEdBQTZCLEVBQzdCLFFBQWtCLEVBQ0EsUUFBa0I7UUFIcEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNBLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDM0MsQ0FBQzs7Ozs7SUFFSixJQUFJLENBQUMsT0FBdUI7O2NBQ3BCLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sQ0FBQztjQUN2RCxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSTs7Y0FFeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7O2NBQzVELFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2NBRXZDLEVBQUUsYUFBYSxFQUFFLEdBQUcsWUFBWSxDQUFDLFFBQVE7O2NBQ3pDLFNBQVMsR0FBRyxZQUFZLEVBQUU7UUFDaEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBOztjQUVyRCxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVE7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFFbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFcEM7OztRQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLENBQUMsRUFBQTtJQUNILENBQUM7Ozs7O0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRztZQUNaLFlBQVk7OztZQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUE7U0FDbEMsQ0FBQTtJQUNILENBQUM7Ozs7Ozs7SUFFTyxXQUFXLENBQUMsWUFBNEMsRUFBRSxJQUFvQjs7Y0FDOUUsSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFROztjQUM1QixJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUU7Y0FDekIsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJO1FBRXhCLElBQUksQ0FBQyxHQUFHLENBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDN0IsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3hCLENBQUMsRUFBQyxDQUNILENBQUE7UUFDRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxHQUFHLENBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQy9CLE9BQU8sRUFBRSxDQUFBO1lBQ1gsQ0FBQyxFQUFDLENBQ0gsQ0FBQTtTQUNGO1FBRUQsWUFBWSxDQUFDLFNBQVM7OztRQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEIsQ0FBQyxFQUFDLENBQUE7SUFDSixDQUFDOzs7WUEvREYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBcEJDLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsUUFBUTtZQXdCOEIsUUFBUSx1QkFBM0MsTUFBTSxTQUFDLFFBQVE7Ozs7Ozs7O0lBSGhCLCtCQUE4Qjs7Ozs7SUFDOUIsNEJBQXFDOzs7OztJQUNyQyxpQ0FBMEI7Ozs7O0lBQzFCLGlDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdG9yLFxuICBJbmplY3QsXG4gIENvbXBvbmVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS5jb21wb25lbnQnXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheU9wdGlvbnMge1xuICBvcGFjaXR5OiBudW1iZXJcbiAgekluZGV4PzogbnVtYmVyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkXG4gIGdldENvbnRhaW5lcj86ICgpID0+IEhUTUxFbGVtZW50XG59XG5cbi8qKiBAZHluYW1pYyAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheUhlbHBlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBvcGVuKG9wdGlvbnM6IE92ZXJsYXlPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLCBvcHRpb25zKVxuICAgIGNvbnN0IHsgb3BhY2l0eSwgekluZGV4LCBnZXRDb250YWluZXIgfSA9IG9wdHNcblxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShPdmVybGF5Q29tcG9uZW50KVxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpXG5cbiAgICBjb25zdCB7IG5hdGl2ZUVsZW1lbnQgfSA9IGNvbXBvbmVudFJlZi5sb2NhdGlvblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGdldENvbnRhaW5lcigpXG4gICAgY29udGFpbmVyLmluc2VydEJlZm9yZShuYXRpdmVFbGVtZW50LCBjb250YWluZXIuZmlyc3RDaGlsZClcblxuICAgIGNvbnN0IGluc3QgPSBjb21wb25lbnRSZWYuaW5zdGFuY2VcbiAgICBpbnN0Lm9wYWNpdHkgPSBvcGFjaXR5XG4gICAgaW5zdC56SW5kZXggPSB6SW5kZXhcbiAgICBpbnN0LnZpc2libGUgPSB0cnVlXG5cbiAgICB0aGlzLnNldExpc3RlbmVyKGNvbXBvbmVudFJlZiwgb3B0cylcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpbnN0LnZpc2libGUgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE9wdGlvbnMoKTogT3ZlcmxheU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBvcGFjaXR5OiAwLjUsXG4gICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmJvZHlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RlbmVyKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE92ZXJsYXlDb21wb25lbnQ+LCBvcHRzOiBPdmVybGF5T3B0aW9ucykge1xuICAgIGNvbnN0IGluc3QgPSBjb21wb25lbnRSZWYuaW5zdGFuY2VcbiAgICBjb25zdCBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpXG4gICAgY29uc3QgeyBvbkNsaWNrIH0gPSBvcHRzXG5cbiAgICBzdWJzLmFkZChcbiAgICAgIGluc3QuYWZ0ZXJDbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpXG4gICAgICB9KVxuICAgIClcbiAgICBpZiAob25DbGljaykge1xuICAgICAgc3Vicy5hZGQoXG4gICAgICAgIGluc3QuY2xpY2tPdmVybGF5LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgb25DbGljaygpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuXG4gICAgY29tcG9uZW50UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBzdWJzLnVuc3Vic2NyaWJlKClcbiAgICB9KVxuICB9XG59XG4iXX0=