{"version":3,"file":"bootkit-angular-components-popover.mjs","sources":["../../../projects/bootkit/components/popover/popover-wrapper/popover-wrapper.component.ts","../../../projects/bootkit/components/popover/popover-wrapper/popover-wrapper.component.html","../../../projects/bootkit/components/popover/popover.directive.ts","../../../projects/bootkit/components/popover/bootkit-angular-components-popover.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, OnInit, TemplateRef } from '@angular/core';\r\nimport { PopoverContent, PopoverPlacement } from '../types';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n    selector: 'jss-popover-wrapper',\r\n    exportAs: 'jssPopoverWrapper',\r\n    styleUrls: ['./popover-wrapper.component.scss'],\r\n    templateUrl: './popover-wrapper.component.html',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: true,\r\n    imports: [CommonModule]\r\n})\r\nexport class PopoverWrapperComponent implements OnInit {\r\n    placement!: PopoverPlacement;\r\n    header?: string;\r\n    content: PopoverContent;\r\n    protected _hasTemplate!: boolean;\r\n\r\n    constructor(private _elementRef: ElementRef, private _renderer: Renderer2,) {\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        this._hasTemplate = this.content instanceof TemplateRef;\r\n        const e = this._elementRef.nativeElement;\r\n        this._renderer.setAttribute(e, 'role', 'tooltip');\r\n        ['popover', 'fade', 'show', 'bs-popover-' + this.placement].forEach(c => this._renderer.addClass(e, c));\r\n    }\r\n}\r\n","<div class=\"popover-arrow\"></div>\r\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\r\n<div class=\"popover-body\">\r\n    @if(_hasTemplate) {\r\n        <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n    }@else{\r\n        {{content}}\r\n    }\r\n</div>","import {\r\n    Directive, TemplateRef, ViewContainerRef, OnDestroy, ElementRef, HostListener, OnInit,\r\n    input\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { PopoverWrapperComponent } from './popover-wrapper/popover-wrapper.component';\r\nimport { PopoverContent, PopoverPlacement, PopoverTrigger } from './types';\r\n\r\n@Directive({\r\n    selector: '[bkPopover]',\r\n    exportAs: 'bkPopover',\r\n    standalone: true\r\n})\r\nexport class PopoverDirective implements OnInit, OnDestroy {\r\n    public header = input<string>();\r\n    public content = input<PopoverContent>(undefined, { alias: 'bkPopover' });\r\n    public placement = input<PopoverPlacement>('bottom');\r\n    public triggerBy = input<PopoverTrigger>('click');\r\n\r\n    private _portal!: ComponentPortal<PopoverWrapperComponent>;\r\n    private _overlayRef?: OverlayRef;\r\n\r\n    constructor(\r\n        private _overlayService: Overlay,\r\n        private _elementRef: ElementRef,\r\n        private _viewRef: ViewContainerRef) {\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        this._portal = new ComponentPortal(PopoverWrapperComponent, this._viewRef);\r\n    }\r\n\r\n    private _createOverlay(): void {\r\n        let wrapperInstance: PopoverWrapperComponent;\r\n\r\n        const scrollStrategy = this._overlayService.scrollStrategies.reposition();\r\n        const positionStrategy = this._overlayService.position()\r\n            .flexibleConnectedTo(this._elementRef)\r\n            .withPositions(this._getPositions());\r\n\r\n        positionStrategy.positionChanges.subscribe(p => {\r\n            // wrapperInstance.placement = (p.connectionPair as any).key;\r\n        });\r\n\r\n        this._overlayRef = this._overlayService.create({ scrollStrategy, positionStrategy });\r\n\r\n        wrapperInstance = this._overlayRef.attach(this._portal).instance;\r\n        wrapperInstance.header = this.header();\r\n        wrapperInstance.content = this.content();\r\n        wrapperInstance.placement = this.placement();\r\n    }\r\n\r\n    private _disposeOverlay(): void {\r\n        if (this._overlayRef) {\r\n            this._overlayRef.dispose();\r\n            this._overlayRef = undefined;\r\n        }\r\n    }\r\n\r\n    private _toggleOverlay() {\r\n        if (this._overlayRef) {\r\n            this._disposeOverlay();\r\n        } else {\r\n            this._createOverlay();\r\n        }\r\n    }\r\n\r\n    private _getPositions(): any[] {\r\n        const c = 'center', t = 'top', b = 'bottom', s = 'start', e = 'end';\r\n        const top = { key: t, originX: c, originY: t, overlayX: c, overlayY: b, };\r\n        const bottom = { key: b, originX: c, originY: b, overlayX: c, overlayY: t, };\r\n        const start = { key: s, originX: s, originY: c, overlayX: e, overlayY: c, };\r\n        const end = { key: e, originX: e, originY: c, overlayX: s, overlayY: c, };\r\n\r\n        let positions: Array<any>;\r\n\r\n        switch (this.placement()) {\r\n            case 'bottom':\r\n                positions = [bottom, top];\r\n                break;\r\n            case 'start':\r\n                positions = [start, start];\r\n                break;\r\n            case 'end':\r\n                positions = [end, start];\r\n                break;\r\n            case 'top':\r\n                positions = [top, bottom];\r\n                break;\r\n            default:\r\n                positions = [bottom, top];\r\n        }\r\n\r\n        return positions;\r\n    }\r\n\r\n    @HostListener('click') private _onClick(): void {\r\n        if (this.triggerBy() === 'click') {\r\n            this._toggleOverlay()\r\n        }\r\n    }\r\n\r\n    @HostListener('dblclick') private _onDblclick(): void {\r\n        if (this.triggerBy() === 'dblclick') {\r\n            this._toggleOverlay()\r\n        }\r\n    }\r\n\r\n    @HostListener('mouseenter') private _onMouseEnter(): void {\r\n        if (this.triggerBy() === 'hover') {\r\n            this._toggleOverlay()\r\n        }\r\n    }\r\n\r\n    @HostListener('mouseleave') private _onMouseLeave(): void {\r\n        if (this.triggerBy() === 'hover') {\r\n            this._toggleOverlay()\r\n        }\r\n    }\r\n\r\n    @HostListener('focus') private _onFocus(): void {\r\n        if (this.triggerBy() === 'focus') {\r\n            this._toggleOverlay()\r\n        }\r\n    }\r\n\r\n    @HostListener('focusout') private _onFocusout(): void {\r\n        if (this.triggerBy() === 'focus') {\r\n            this._toggleOverlay()\r\n        }\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this._disposeOverlay();\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}