{"version":3,"file":"ngx-popperjs.mjs","sources":["../../../projects/ngx-popperjs/src/lib/models/ngx-popperjs-placements.model.ts","../../../projects/ngx-popperjs/src/lib/models/ngx-popperjs-triggers.model.ts","../../../projects/ngx-popperjs/src/lib/components/ngx-popperjs-content/ngx-popper-content.component.ts","../../../projects/ngx-popperjs/src/lib/components/ngx-popperjs-content/ngx-popperjs-content.component.html","../../../projects/ngx-popperjs/src/lib/models/ngx-popperjs-defaults.model.ts","../../../projects/ngx-popperjs/src/lib/models/ngx-popperjs-utils.class.ts","../../../projects/ngx-popperjs/src/lib/directives/ngx-popperjs/ngx-popperjs.directive.ts","../../../projects/ngx-popperjs/src/lib/directives/ngx-popperjs/ngx-popperjs-loose.directive.ts","../../../projects/ngx-popperjs/src/lib/ngx-popperjs.module.ts","../../../projects/ngx-popperjs/src/public-api.ts","../../../projects/ngx-popperjs/src/ngx-popperjs.ts"],"sourcesContent":["export enum NgxPopperjsPlacements {\n  TOP = \"top\",\n  BOTTOM = \"bottom\",\n  LEFT = \"left\",\n  RIGHT = \"right\",\n  TOPSTART = \"top-start\",\n  BOTTOMSTART = \"bottom-start\",\n  LEFTSTART = \"left-start\",\n  RIGHTSTART = \"right-start\",\n  TOPEND = \"top-end\",\n  BOTTOMEND = \"bottom-end\",\n  LEFTEND = \"left-end\",\n  RIGHTEND = \"right-end\",\n  AUTO = \"auto\",\n  AUTOSTART = \"auto-start\",\n  AUTOEND = \"auto-end\"\n}\n","export enum NgxPopperjsTriggers {\n  click = \"click\",\n  hover = \"hover\",\n  mousedown = \"mousedown\",\n  none = \"none\"\n}\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    OnDestroy,\n    Renderer2,\n    ViewChild,\n    ViewContainerRef,\n    ViewEncapsulation\n} from \"@angular/core\";\n//\nimport {NgxPopperjsOptions} from \"../../models/ngx-popperjs-options.model\";\nimport {NgxPopperjsPlacements} from \"../../models/ngx-popperjs-placements.model\";\nimport {NgxPopperjsTriggers} from \"../../models/ngx-popperjs-triggers.model\";\n//\nimport {createPopper as Popper, Options} from \"@popperjs/core\";\nimport {ArrowModifier} from \"@popperjs/core/lib/modifiers/arrow\";\nimport {Instance} from \"@popperjs/core/lib/types\";\nimport {PreventOverflowModifier} from \"@popperjs/core/lib/modifiers/preventOverflow\";\nimport {OffsetModifier} from \"@popperjs/core/lib/modifiers/offset\";\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: \"popper-content\",\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    templateUrl: \"./ngx-popperjs-content.component.html\",\n    styleUrls: [\"./ngx-popperjs-content.component.scss\"],\n    exportAs: \"ngxPopperjsContent\"\n})\nexport class NgxPopperjsContentComponent implements OnDestroy {\n\n    static nextId: number = 0;\n\n    ariaHidden: string = \"true\";\n    arrowColor: string | null = null;\n    displayType: string = \"none\";\n    id: string = `ngx_poppperjs_${++NgxPopperjsContentComponent.nextId}`;\n    isMouseOver: boolean = false;\n    onHidden = new EventEmitter();\n    onUpdate: () => any;\n    opacity: number = 0;\n    popperInstance: Instance;\n    popperOptions: NgxPopperjsOptions = {\n        disableAnimation: false,\n        disableDefaultStyling: false,\n        placement: NgxPopperjsPlacements.AUTO,\n        boundariesElement: \"\",\n        trigger: NgxPopperjsTriggers.hover,\n        positionFixed: false,\n        appendToBody: false,\n        popperModifiers: []\n    } as NgxPopperjsOptions;\n    @ViewChild(\"popperViewRef\", {static: !0})\n    popperViewRef: ElementRef;\n    referenceObject: HTMLElement;\n    state: boolean = true;\n    text: string;\n\n    protected _globalResize: any;\n    protected _styleId = `${this.id}_style`;\n\n    constructor(public elRef: ElementRef,\n                protected _renderer: Renderer2,\n                protected _viewRef: ViewContainerRef,\n                protected _changeDetectorRef: ChangeDetectorRef) {\n    }\n\n    clean() {\n        this.toggleVisibility(false);\n        if (!this.popperInstance) {\n            return;\n        }\n        this.popperInstance.destroy();\n\n    }\n\n    extractAppliedClassListExpr(classList: string | string[] = []): object {\n        const klassList = Array.isArray(classList) ? classList : typeof classList === typeof \"\" ? classList.replace(/ /, \"\").split(\",\") : [];\n\n        return klassList.reduce((acc, klass) => {\n            acc[klass] = !0;\n\n            return acc;\n        }, {});\n    }\n\n    hide(): void {\n\n        if (this.popperInstance) {\n            this.popperInstance.destroy();\n        }\n        this.toggleVisibility(false);\n        this.onHidden.emit();\n    }\n\n    ngOnDestroy() {\n        this.clean();\n        if (this.popperOptions.appendTo && this.elRef && this.elRef.nativeElement && this.elRef.nativeElement.parentNode) {\n            this._viewRef.detach();\n            this.elRef.nativeElement.parentNode.removeChild(this.elRef.nativeElement);\n        }\n    }\n\n    onDocumentResize() {\n        this.update();\n    }\n\n    @HostListener(\"mouseover\")\n    onMouseOver() {\n        this.isMouseOver = true;\n    }\n\n    show(): void {\n        if (!this.referenceObject) {\n            return;\n        }\n\n        const appendToParent = this.popperOptions.appendTo && document.querySelector(this.popperOptions.appendTo);\n        if (appendToParent && this.elRef.nativeElement.parentNode !== appendToParent) {\n            this.elRef.nativeElement.parentNode && this.elRef.nativeElement.parentNode.removeChild(this.elRef.nativeElement);\n            appendToParent.appendChild(this.elRef.nativeElement);\n        }\n\n        const popperOptions: Options = {\n            strategy: this.popperOptions.positionFixed ? \"fixed\" : \"absolute\",\n            placement: this.popperOptions.placement,\n            modifiers: [\n                {\n                    name: \"offset\",\n                    enabled: !0,\n                    options: {\n                        offset: [0, 8],\n                    }\n                } as OffsetModifier,\n                {\n                    name: \"arrow\",\n                    enabled: !0,\n                    options: {\n                        element: \".ngxp__arrow\",\n                        padding: 3\n                    },\n                    requires: [\"arrow\"]\n                } as ArrowModifier,\n            ]\n        } as Options;\n        if (this.onUpdate) {\n            popperOptions.onFirstUpdate = this.onUpdate as any;\n        }\n\n        const boundariesElement = this.popperOptions.boundariesElement && document.querySelector(this.popperOptions.boundariesElement);\n\n        if (popperOptions.modifiers && boundariesElement) {\n            popperOptions.modifiers.push({\n                name: \"preventOverflow\",\n                enabled: this.popperOptions.preventOverflow,\n                options: {\n                    boundary: boundariesElement\n                }\n            } as PreventOverflowModifier);\n        }\n        if (popperOptions.modifiers) {\n            const preventOverflowModifier = popperOptions.modifiers.find((v) => v.name === \"preventOverflow\");\n            if (preventOverflowModifier && !preventOverflowModifier.enabled) {\n                const hideModifier = popperOptions.modifiers.find((v) => v.name === \"preventOverflow\");\n                hideModifier && (hideModifier.enabled = !1);\n            }\n        }\n        this._determineArrowColor();\n        popperOptions.modifiers = popperOptions.modifiers.concat(this.popperOptions.popperModifiers);\n\n        this.popperInstance = Popper(\n            this.referenceObject,\n            this.popperViewRef.nativeElement,\n            popperOptions,\n        );\n\n        this.toggleVisibility(true);\n        this._globalResize = this._renderer.listen(\"document\", \"resize\", this.onDocumentResize.bind(this));\n    }\n\n    @HostListener(\"mouseleave\")\n    showOnLeave() {\n        this.isMouseOver = false;\n        if (this.popperOptions.trigger !== NgxPopperjsTriggers.hover && !this.popperOptions.hideOnMouseLeave) {\n            return;\n        }\n        this.hide();\n    }\n\n    toggleVisibility(state: boolean) {\n        if (!state) {\n            this.opacity = 0;\n            this.displayType = \"none\";\n            this.ariaHidden = \"true\";\n            this.state = false;\n        }\n        else {\n            this.opacity = 1;\n            this.displayType = \"block\";\n            this.ariaHidden = \"false\";\n            this.state = true;\n        }\n        // tslint:disable-next-line:no-string-literal\n        if (!this._changeDetectorRef[\"destroyed\"]) {\n            this._changeDetectorRef.detectChanges();\n        }\n    }\n\n    update(): void {\n        this.popperInstance && (this.popperInstance as any).update();\n    }\n\n    // TODO: check if this function might have had a purpose (unused at this time)\n    // private _clearGlobalResize() {\n    //   this._globalResize && typeof this._globalResize === \"function\" && this._globalResize();\n    // }\n\n    protected _createArrowSelector(): string {\n        return `div#${this.id}.ngxp__container > .ngxp__arrow.ngxp__force-arrow`;\n    }\n\n    protected _determineArrowColor() {\n        if (!this.popperOptions.styles || this.arrowColor) {\n\n            return !1;\n        }\n        const ruleValue = this.popperOptions.styles[\"background-color\"] || this.popperOptions.styles.backgroundColor;\n        if (this.arrowColor === ruleValue) {\n            return !1;\n        }\n        this.arrowColor = ruleValue;\n        let $style = document.querySelector(`#${this._styleId}`) as HTMLStyleElement;\n        const styleContent = this.arrowColor ?\n            `${this._createArrowSelector()}:before { background-color: ${this.arrowColor}; }` : \"\";\n        if (!$style) {\n            $style = document.createElement(\"style\") as HTMLStyleElement;\n            $style.id = this._styleId;\n            $style.setAttribute(\"type\", \"text/css\");\n            document.head.appendChild($style);\n        }\n        // tslint:disable-next-line:no-string-literal\n        if ($style[\"styleSheet\"]) {\n            // tslint:disable-next-line:no-string-literal\n            $style[\"styleSheet\"].cssText = styleContent;\n            // This is required for IE8 and below.\n        }\n        else {\n            $style.innerHTML = styleContent;\n        }\n    }\n}\n","<div #popperViewRef\n     [attr.id]=\"id\"\n     [class.ngxp__container]=\"!popperOptions.disableDefaultStyling\"\n     [class.ngxp__animation]=\"!popperOptions.disableAnimation\"\n     [style.display]=\"displayType\"\n     [style.opacity]=\"opacity\"\n     [ngStyle]=\"popperOptions.styles\"\n     [ngClass]=\"extractAppliedClassListExpr(popperOptions.applyClass)\"\n     attr.aria-hidden=\"{{ariaHidden}}\"\n     [attr.aria-describedby]=\"popperOptions.ariaDescribe || null\"\n     attr.role=\"{{popperOptions.ariaRole}}\">\n    <div *ngIf=\"text\"\n         class=\"ngxp__inner\"\n         [innerHTML]=\"text\">\n        <ng-content></ng-content>\n    </div>\n    <div *ngIf=\"!text\"\n         class=\"ngxp__inner\">\n        <ng-content></ng-content>\n    </div>\n    <div class=\"ngxp__arrow\"\n         data-popper-arrow\n         [class.ngxp__force-arrow]=\"arrowColor\"\n         [ngClass]=\"extractAppliedClassListExpr(popperOptions.applyArrowClass)\"></div>\n\n</div>\n","import {InjectionToken} from \"@angular/core\";\n//\nimport {NgxPopperjsOptions} from \"./ngx-popperjs-options.model\";\n\nexport const NGX_POPPERJS_DEFAULTS = new InjectionToken<NgxPopperjsOptions>(\"NGX_POPPERJS_DEFAULTS\");\n","/**\n * @private\n */\nexport class NgxPopperjsUtils {\n\n    /** Coerces a data-bound value (typically a string) to a boolean. */\n    static coerceBooleanProperty(value: any): boolean {\n        return value != null && `${value}` !== \"false\";\n    }\n}\n","// tslint:disable:no-input-rename\nimport {\n    ChangeDetectorRef,\n    ComponentRef,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    ViewContainerRef\n} from \"@angular/core\";\nimport {NgxPopperjsContentComponent} from \"../../components/ngx-popperjs-content/ngx-popper-content.component\";\nimport {NgxPopperjsOptions} from \"../../models/ngx-popperjs-options.model\";\nimport {NgxPopperjsPlacements} from \"../../models/ngx-popperjs-placements.model\";\nimport {NgxPopperjsTriggers} from \"../../models/ngx-popperjs-triggers.model\";\nimport {NGX_POPPERJS_DEFAULTS} from \"../../models/ngx-popperjs-defaults.model\";\nimport {NgxPopperjsUtils} from \"../../models/ngx-popperjs-utils.class\";\n//\nimport {Modifier} from \"@popperjs/core\";\n//\nimport {fromEvent, Subject, takeUntil, timer} from \"rxjs\";\n\n@Directive({\n    // tslint:disable-next-line:directive-selector\n    selector: \"[popper]\",\n    exportAs: \"popper\"\n})\nexport class NgxPopperjsDirective implements OnInit, OnDestroy {\n\n    static baseOptions: NgxPopperjsOptions = {\n        showDelay: 0,\n        placement: NgxPopperjsPlacements.AUTO,\n        hideOnClickOutside: true,\n        hideOnMouseLeave: false,\n        hideOnScroll: false,\n        appendTo: undefined,\n        ariaRole: \"popper\",\n        ariaDescribe: \"\",\n        styles: {},\n        trigger: NgxPopperjsTriggers.click\n    };\n\n    @Input(\"popperApplyClass\")\n    set applyClass(newValue: string) {\n        if (newValue === this._applyClass) {\n            return;\n        }\n        this._applyClass = newValue;\n        this._checkExisting(\"applyClass\", newValue);\n    }\n\n    get applyClass(): string {\n        return this._applyClass;\n    }\n\n    @Input(\"popperAriaDescribeBy\")\n    ariaDescribe: string | void;\n\n    @Input(\"popperAriaRole\")\n    ariaRole: string | void;\n\n    @Input(\"popperBoundaries\")\n    boundariesElement: string;\n\n    @Input(\"popperCloseOnClickOutside\")\n    closeOnClickOutside: boolean;\n\n    @Input(\"popper\")\n    set content(newValue: string | NgxPopperjsContentComponent) {\n        if (newValue === this._content) {\n\n            return;\n        }\n        this._content = newValue;\n        if (this._popperContent) {\n            if (typeof newValue === \"string\") {\n                this._popperContent.text = newValue;\n            }\n            else {\n                this._popperContent = newValue;\n            }\n        }\n    }\n\n    get content(): string | NgxPopperjsContentComponent {\n        return this._content;\n    }\n\n\n    @Input(\"popperDisableAnimation\")\n    disableAnimation: boolean;\n\n    @Input(\"popperDisabled\")\n    set disabled(newValue: boolean) {\n        if (newValue === this._disabled) {\n            return;\n        }\n        this._disabled = !!newValue;\n        if (this._shown) {\n            this.hide();\n        }\n    }\n\n    get disabled(): boolean {\n        return this._disabled;\n    }\n\n    @Input(\"popperDisableStyle\")\n    disableStyle: boolean;\n\n    @Input(\"popperHideOnClickOutside\")\n    hideOnClickOutside: boolean | void;\n\n    @Input(\"popperHideOnMouseLeave\")\n    hideOnMouseLeave: boolean | void;\n\n    @Input(\"popperHideOnScroll\")\n    hideOnScroll: boolean | void;\n\n    @Input(\"popperTimeout\")\n    hideTimeout: number = 0;\n\n    @Input(\"popperPlacement\")\n    set placement(newValue: NgxPopperjsPlacements) {\n        this._popperPlacement = newValue;\n        this._checkExisting(\"placement\", newValue);\n    }\n\n    get placement(): NgxPopperjsPlacements {\n\n        return this._popperPlacement;\n    }\n\n    @Input()\n    popperAppendTo: string;\n\n    @Input()\n    set popperApplyArrowClass(newValue: string) {\n        if (newValue === this._popperApplyArrowClass) {\n            return;\n        }\n        this._popperApplyArrowClass = newValue;\n        if (this._popperContent) {\n            this._popperContent.popperOptions.applyArrowClass = newValue;\n            if (!this._shown) {\n                return;\n            }\n            this._popperContent.popperInstance.setOptions(this._popperContent.popperOptions);\n        }\n    }\n\n    get popperApplyArrowClass(): string {\n        return this._popperApplyArrowClass;\n    }\n\n    @Input()\n    popperModifiers: Partial<Modifier<any, any>>[];\n\n    @Output()\n    popperOnHidden: EventEmitter<NgxPopperjsDirective> = new EventEmitter<NgxPopperjsDirective>();\n\n    @Output()\n    popperOnShown: EventEmitter<NgxPopperjsDirective> = new EventEmitter<NgxPopperjsDirective>();\n\n    @Output()\n    popperOnUpdate: EventEmitter<any> = new EventEmitter<any>();\n\n    @Input(\"popperPositionFixed\")\n    positionFixed: boolean;\n\n    @Input(\"popperPreventOverflow\")\n    set preventOverflow(newValue: boolean) {\n        this._popperPreventOverflow = NgxPopperjsUtils.coerceBooleanProperty(newValue);\n        this._checkExisting(\"preventOverflow\", this._popperPreventOverflow);\n    }\n\n    get preventOverflow(): boolean {\n        return this._popperPreventOverflow;\n    }\n\n    @Input(\"popperDelay\")\n    showDelay: number | undefined;\n\n    @Input(\"popperShowOnStart\")\n    showOnStart: boolean;\n\n    @Input(\"popperTrigger\")\n    showTrigger: NgxPopperjsTriggers | undefined;\n\n    @Input(\"popperStyles\")\n    styles: object;\n\n    @Input(\"popperTarget\")\n    targetElement: HTMLElement;\n\n    @Input(\"popperTimeoutAfterShow\")\n    timeoutAfterShow: number = 0;\n\n    protected _applyClass: string;\n    protected _content: string | NgxPopperjsContentComponent;\n    protected _destroy$: Subject<void> = new Subject<void>();\n    protected _disabled: boolean;\n    protected _globalEventListenersCtrl$: Subject<void> = new Subject<void>();\n    protected _popperApplyArrowClass: string;\n    protected _popperContent: NgxPopperjsContentComponent;\n    protected _popperContentClass = NgxPopperjsContentComponent;\n    protected _popperContentRef: ComponentRef<NgxPopperjsContentComponent>;\n    protected _popperPlacement: NgxPopperjsPlacements;\n    protected _popperPreventOverflow: boolean;\n    protected _scheduledHideTimeoutCtrl$: Subject<void> = new Subject<void>();\n    protected _scheduledShowTimeoutCtrl$: Subject<void> = new Subject<void>();\n    protected _shown: boolean = false;\n\n    constructor(protected _changeDetectorRef: ChangeDetectorRef,\n                protected _elementRef: ElementRef,\n                protected _vcr: ViewContainerRef,\n                @Inject(NGX_POPPERJS_DEFAULTS) protected _popperDefaults: NgxPopperjsOptions = {}) {\n        NgxPopperjsDirective.baseOptions = {...NgxPopperjsDirective.baseOptions, ...this._popperDefaults};\n    }\n\n    static assignDefined(target: any, ...sources: any[]) {\n        for (const source of sources) {\n            for (const key of Object.keys(source)) {\n                const val = source[key];\n                if (val !== undefined) {\n                    target[key] = val;\n                }\n            }\n        }\n\n        return target;\n    }\n\n    applyTriggerListeners() {\n        switch (this.showTrigger) {\n            case NgxPopperjsTriggers.click:\n                this._addListener(\"click\", this.toggle.bind(this));\n                break;\n            case NgxPopperjsTriggers.mousedown:\n                this._addListener(\"mousedown\", this.toggle.bind(this));\n                break;\n            case NgxPopperjsTriggers.hover:\n                this._addListener(\"mouseenter\", this.scheduledShow.bind(this, this.showDelay));\n                [\"touchend\", \"touchcancel\", \"mouseleave\"].forEach((eventName) => {\n                    this._addListener(eventName, this.scheduledHide.bind(this, null, this.hideTimeout));\n                });\n                break;\n        }\n        if (this.showTrigger !== NgxPopperjsTriggers.hover && this.hideOnMouseLeave) {\n            [\"touchend\", \"touchcancel\", \"mouseleave\"].forEach((eventName) => {\n                this._addListener(eventName, this.scheduledHide.bind(this, null, this.hideTimeout));\n            });\n        }\n    }\n\n    getRefElement() {\n        return this.targetElement || this._elementRef.nativeElement;\n    }\n\n    hide() {\n        if (this.disabled) {\n            return;\n        }\n        if (!this._shown) {\n            this._scheduledShowTimeoutCtrl$.next();\n\n            return;\n        }\n\n        this._shown = false;\n        if (this._popperContentRef) {\n            this._popperContentRef.instance.hide();\n        }\n        else {\n            this._popperContent.hide();\n        }\n        this.popperOnHidden.emit(this);\n        this._globalEventListenersCtrl$.next();\n    }\n\n    hideOnClickOutsideHandler($event: MouseEvent): void {\n        if (this.disabled || !this.hideOnClickOutside || $event.target === this._popperContent.elRef.nativeElement ||\n            this._popperContent.elRef.nativeElement.contains($event.target)) {\n            return;\n        }\n        this.scheduledHide($event, this.hideTimeout);\n    }\n\n    hideOnScrollHandler($event: MouseEvent): void {\n        if (this.disabled || !this.hideOnScroll) {\n            return;\n        }\n        this.scheduledHide($event, this.hideTimeout);\n    }\n\n    ngOnDestroy() {\n        this._destroy$.next();\n        this._destroy$.complete();\n        this._popperContent && this._popperContent.clean();\n    }\n\n    ngOnInit() {\n        // Support legacy prop\n        this.hideOnClickOutside = typeof this.hideOnClickOutside === \"undefined\" ?\n            this.closeOnClickOutside : this.hideOnClickOutside;\n\n        if (typeof this.content === \"string\") {\n            this._popperContent = this._constructContent();\n            this._popperContent.text = this.content;\n        }\n        else if (typeof this.content === typeof void 0) {\n            this._popperContent = this._constructContent();\n            this._popperContent.text = \"\";\n        }\n        else {\n            this._popperContent = this.content;\n        }\n        const popperRef = this._popperContent;\n        popperRef.referenceObject = this.getRefElement();\n        this._setContentProperties(popperRef);\n        this._setDefaults();\n        this.applyTriggerListeners();\n        if (this.showOnStart) {\n            this.scheduledShow();\n        }\n    }\n\n    scheduledHide($event: any = null, delay: number = this.hideTimeout) {\n        if (this.disabled) {\n            return;\n        }\n        this._scheduledShowTimeoutCtrl$.next();\n        timer(delay)\n            .pipe(takeUntil(this._scheduledHideTimeoutCtrl$), takeUntil(this._destroy$))\n            .subscribe({\n                next: () => {\n                    // TODO: check\n                    const toElement = $event ? $event.toElement : null;\n                    const popperContentView = this._popperContent.popperViewRef ? this._popperContent.popperViewRef.nativeElement : false;\n                    if (!popperContentView ||\n                        popperContentView === toElement ||\n                        popperContentView.contains(toElement) ||\n                        (this.content && (this.content as NgxPopperjsContentComponent).isMouseOver)) {\n\n                        return;\n                    }\n                    this.hide();\n                    this._applyChanges();\n                }\n            });\n    }\n\n    scheduledShow(delay: number = this.showDelay) {\n        if (this.disabled) {\n            return;\n        }\n        this._scheduledHideTimeoutCtrl$.next();\n        timer(delay)\n            .pipe(takeUntil(this._scheduledShowTimeoutCtrl$), takeUntil(this._destroy$))\n            .subscribe({\n                next: () => {\n                    this.show();\n                    this._applyChanges();\n                }\n            });\n    }\n\n    show() {\n        if (this._shown) {\n            this._scheduledHideTimeoutCtrl$.next();\n\n            return;\n        }\n\n        this._shown = true;\n        const popperRef = this._popperContent;\n        const element = this.getRefElement();\n        if (popperRef.referenceObject !== element) {\n            popperRef.referenceObject = element;\n        }\n        this._setContentProperties(popperRef);\n        popperRef.show();\n        this.popperOnShown.emit(this);\n        if (this.timeoutAfterShow > 0) {\n            this.scheduledHide(null, this.timeoutAfterShow);\n        }\n        fromEvent(document, \"click\")\n            .pipe(takeUntil(this._globalEventListenersCtrl$), takeUntil(this._destroy$))\n            .subscribe({\n                next: (e: MouseEvent) => this.hideOnClickOutsideHandler(e)\n            });\n        fromEvent(this._getScrollParent(this.getRefElement()), \"scroll\")\n            .pipe(takeUntil(this._globalEventListenersCtrl$), takeUntil(this._destroy$))\n            .subscribe({\n                next: (e: MouseEvent) => {\n                    this.hideOnScrollHandler(e);\n                }\n            });\n    }\n\n    toggle() {\n        if (this.disabled) {\n            return;\n        }\n        this._shown ? this.scheduledHide(null, this.hideTimeout) : this.scheduledShow();\n    }\n\n    protected _addListener(eventName: string, cb: () => void): void {\n        fromEvent(this._elementRef.nativeElement, eventName)\n            .pipe(takeUntil(this._destroy$))\n            .subscribe({\n                next: cb\n            });\n    }\n\n    protected _applyChanges() {\n        this._changeDetectorRef.markForCheck();\n        this._changeDetectorRef.detectChanges();\n    }\n\n    protected _checkExisting(key: string, newValue: string | number | boolean | NgxPopperjsPlacements): void {\n        if (this._popperContent) {\n            this._popperContent.popperOptions[key] = newValue;\n            if (!this._shown) {\n                return;\n            }\n            this._popperContent.popperInstance.setOptions(this._popperContent.popperOptions);\n        }\n    }\n\n    protected _constructContent(): NgxPopperjsContentComponent {\n        this._popperContentRef = this._vcr.createComponent(this._popperContentClass);\n\n        return this._popperContentRef.instance as NgxPopperjsContentComponent;\n    }\n\n    protected _getScrollParent(node) {\n        const isElement = node instanceof HTMLElement;\n        const overflowY = isElement && window.getComputedStyle(node).overflowY;\n        const isScrollable = overflowY !== \"visible\" && overflowY !== \"hidden\";\n\n        if (!node) {\n            return null;\n        }\n        else if (isScrollable && node.scrollHeight > node.clientHeight) {\n            return node;\n        }\n\n        return this._getScrollParent(node.parentNode) || document;\n    }\n\n    protected _onPopperUpdate(event) {\n        this.popperOnUpdate.emit(event);\n    }\n\n    protected _setContentProperties(popperRef: NgxPopperjsContentComponent) {\n        popperRef.popperOptions = NgxPopperjsDirective.assignDefined(popperRef.popperOptions, NgxPopperjsDirective.baseOptions, {\n            showDelay: this.showDelay,\n            disableAnimation: this.disableAnimation,\n            disableDefaultStyling: this.disableStyle,\n            placement: this.placement,\n            boundariesElement: this.boundariesElement,\n            trigger: this.showTrigger,\n            positionFixed: this.positionFixed,\n            popperModifiers: this.popperModifiers,\n            ariaDescribe: this.ariaDescribe,\n            ariaRole: this.ariaRole,\n            applyClass: this.applyClass,\n            applyArrowClass: this.popperApplyArrowClass,\n            hideOnMouseLeave: this.hideOnMouseLeave,\n            styles: this.styles,\n            appendTo: this.popperAppendTo,\n            preventOverflow: this.preventOverflow,\n        });\n        popperRef.onUpdate = this._onPopperUpdate.bind(this);\n        popperRef.onHidden\n            .pipe(takeUntil(this._destroy$))\n            .subscribe(this.hide.bind(this));\n    }\n\n    protected _setDefaults() {\n        [\"showDelay\", \"hideOnScroll\", \"hideOnMouseLeave\", \"hideOnClickOutside\", \"ariaRole\", \"ariaDescribe\"].forEach((key) => {\n            this[key] = this[key] === void 0 ? NgxPopperjsDirective.baseOptions[key] : this[key];\n        });\n        this.showTrigger = this.showTrigger || NgxPopperjsDirective.baseOptions.trigger;\n        this.styles = this.styles === void 0 ? {...NgxPopperjsDirective.baseOptions.styles} : this.styles;\n    }\n\n}\n","// tslint:disable:no-input-rename\nimport {\n    ChangeDetectorRef,\n    Directive,\n    ElementRef,\n    Inject,\n    Input,\n    ViewContainerRef\n} from \"@angular/core\";\n//\nimport {NgxPopperjsOptions} from \"../../models/ngx-popperjs-options.model\";\nimport {NgxPopperjsPlacements} from \"../../models/ngx-popperjs-placements.model\";\nimport {NGX_POPPERJS_DEFAULTS} from \"../../models/ngx-popperjs-defaults.model\";\nimport {NgxPopperjsDirective} from \"./ngx-popperjs.directive\";\nimport {NgxPopperjsContentComponent} from \"../../components/ngx-popperjs-content/ngx-popper-content.component\";\nimport {NgxPopperjsTriggers} from \"../../models/ngx-popperjs-triggers.model\";\n\n@Directive({\n    selector: \"[popperLoose]\",\n    exportAs: \"popperLoose\"\n})\nexport class NgxPopperjsLooseDirective extends NgxPopperjsDirective {\n\n    @Input()\n    set popperLoose(newValue: string | NgxPopperjsContentComponent) {\n        this.content = newValue;\n    }\n\n    @Input()\n    set popperLoosePlacement(newValue: `${NgxPopperjsPlacements}`) {\n        this.placement = newValue as NgxPopperjsPlacements;\n    }\n\n    @Input()\n    set popperLooseTrigger(newValue: `${NgxPopperjsTriggers}`) {\n        this.showTrigger = newValue as NgxPopperjsTriggers;\n    }\n\n    constructor(changeDetectorRef: ChangeDetectorRef,\n                elementRef: ElementRef,\n                vcr: ViewContainerRef,\n                @Inject(NGX_POPPERJS_DEFAULTS) popperDefaults: NgxPopperjsOptions = {}) {\n        super(changeDetectorRef, elementRef, vcr, popperDefaults);\n    }\n\n}\n","import {ModuleWithProviders, NgModule, Provider} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\n//\nimport {NgxPopperjsDirective} from \"./directives/ngx-popperjs/ngx-popperjs.directive\";\nimport {NgxPopperjsLooseDirective} from \"./directives/ngx-popperjs/ngx-popperjs-loose.directive\";\nimport {NgxPopperjsContentComponent} from \"./components/ngx-popperjs-content/ngx-popper-content.component\";\nimport {NgxPopperjsOptions} from \"./models/ngx-popperjs-options.model\";\nimport {NGX_POPPERJS_DEFAULTS} from \"./models/ngx-popperjs-defaults.model\";\n\nexport function provideNgxPopperjsOptions(config: NgxPopperjsOptions = {}): Provider[] {\n    return [\n        {provide: NGX_POPPERJS_DEFAULTS, useValue: config},\n    ];\n}\n\n@NgModule({\n    imports: [\n        CommonModule\n    ],\n    declarations: [\n        NgxPopperjsContentComponent,\n        NgxPopperjsDirective,\n        NgxPopperjsLooseDirective\n    ],\n    exports: [\n        NgxPopperjsContentComponent,\n        NgxPopperjsDirective,\n        NgxPopperjsLooseDirective\n    ],\n    providers: [\n        provideNgxPopperjsOptions()\n    ]\n})\nexport class NgxPopperjsModule {\n\n    public static forRoot(popperBaseOptions?: NgxPopperjsOptions): ModuleWithProviders<NgxPopperjsModule> {\n        return {\n            ngModule: NgxPopperjsModule,\n            providers: [\n                provideNgxPopperjsOptions(popperBaseOptions)\n            ]\n        };\n    }\n}\n","/*\n * Public API Surface of ngx-popperjs\n */\n\n// Components\nexport * from \"./lib/components/ngx-popperjs-content/ngx-popper-content.component\";\n// Directives\nexport * from \"./lib/directives/ngx-popperjs/ngx-popperjs.directive\";\nexport * from \"./lib/directives/ngx-popperjs/ngx-popperjs-loose.directive\";\n// Models\nexport * from \"./lib/models/ngx-popperjs-defaults.model\";\nexport * from \"./lib/models/ngx-popperjs-options.model\";\nexport * from \"./lib/models/ngx-popperjs-placements.model\";\nexport * from \"./lib/models/ngx-popperjs-triggers.model\";\n// Module\nexport * from \"./lib/ngx-popperjs.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Popper"],"mappings":"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"}