{"version":3,"file":"deja-js-component-tooltip.mjs","sources":["../../../../projects/deja-js/component/tooltip/tooltip.service.ts","../../../../projects/deja-js/component/tooltip/tooltip.component.ts","../../../../projects/deja-js/component/tooltip/tooltip.component.html","../../../../projects/deja-js/component/tooltip/tooltip.directive.ts","../../../../projects/deja-js/component/tooltip/tooltip-params.interface.ts","../../../../projects/deja-js/component/tooltip/index.ts","../../../../projects/deja-js/component/tooltip/deja-js-component-tooltip.ts"],"sourcesContent":["/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { ITooltipParams } from './tooltip-params.interface';\n\n/**\n * Service to pass some params through tooltip module\n */\n@Injectable()\nexport class DejaTooltipService {\n    /** Tooltip params */\n    public params = {} as { [name: string]: ITooltipParams };\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { DejaConnectionPositionPair, Destroy } from '@deja-js/component/core';\nimport { Position, Rect } from '@deja-js/component/core/graphics';\nimport { debounceTime, delay, filter, from, fromEvent, map, Observable, takeUntil, tap } from 'rxjs';\n\nimport { DejaTooltipService } from './tooltip.service';\nimport { ITooltipParams } from './tooltip-params.interface';\n\n/**\n * Customizable tooltip component for Angular\n */\n@Component({\n    encapsulation: ViewEncapsulation.None,\n    selector: 'deja-tooltip',\n    templateUrl: './tooltip.component.html',\n    styleUrls: [\n        './tooltip.component.scss'\n    ]\n})\nexport class DejaTooltipComponent extends Destroy implements OnInit {\n    /** Tooltip name. Mandatory, and need to be unic */\n    @Input() public name: string;\n    /** Event Emmited when hide action is called */\n    @Output() public readonly hide = new EventEmitter();\n\n    /** Template for tooltip content */\n    @ContentChild('tooltipTemplate')\n    public tooltipTemplate: TemplateRef<unknown>;\n\n    /** Parameters of the tooltip */\n    public params: ITooltipParams;\n    public overlayVisible = false;\n    public ownerElement: HTMLElement;\n\n    /**\n     * This position config ensures that the top \"start\" corner of the overlay\n     * is aligned with with the top \"start\" of the origin by default (overlapping\n     * the trigger completely). If the panel cannot fit below the trigger, it\n     * will fall back to a position above the trigger.\n     */\n    private _positions = [\n        {\n            originX: 'center',\n            originY: 'bottom',\n            overlayX: 'center',\n            overlayY: 'top'\n        },\n        {\n            originX: 'center',\n            originY: 'top',\n            overlayX: 'center',\n            overlayY: 'bottom'\n        },\n        {\n            originX: 'start',\n            originY: 'bottom',\n            overlayX: 'start',\n            overlayY: 'top'\n        },\n        {\n            originX: 'start',\n            originY: 'top',\n            overlayX: 'start',\n            overlayY: 'bottom'\n        },\n        {\n            originX: 'end',\n            originY: 'bottom',\n            overlayX: 'end',\n            overlayY: 'top'\n        },\n        {\n            originX: 'end',\n            originY: 'top',\n            overlayX: 'end',\n            overlayY: 'bottom'\n        }\n    ] as DejaConnectionPositionPair[];\n\n    private _model: unknown;\n    private _closeOnMoveOver = false;\n\n    @Input()\n    public set closeOnMoveOver(value: boolean) {\n        this._closeOnMoveOver = coerceBooleanProperty(value);\n    }\n\n    public get closeOnMoveOver(): boolean {\n        return this._closeOnMoveOver;\n    }\n\n    @Input()\n    public set positions(value: DejaConnectionPositionPair[] | string) {\n        this._positions = typeof value === 'string' ? DejaConnectionPositionPair.parse(value) : value;\n    }\n\n    public get positions(): string | DejaConnectionPositionPair[] {\n        return this._positions;\n    }\n\n    public get model(): unknown {\n        return this._model;\n    }\n\n    /**\n     * Constructor\n     * Subscribe to mouseover to know when tooltip must disappear.\n     */\n    public constructor(elementRef: ElementRef, private tooltipService: DejaTooltipService) {\n        super();\n\n        const element = elementRef.nativeElement as HTMLElement;\n\n        const hide$ = from(this.hide).pipe(\n            tap(() => {\n                this._model = undefined;\n            })\n        );\n\n        fromEvent<MouseEvent>(element.ownerDocument, 'mousemove').pipe(\n            // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n            takeUntil(hide$),\n            debounceTime(100),\n            map(event => new Position(event.pageX, event.pageY)),\n            filter(position => {\n                if (this._closeOnMoveOver) {\n                    return true;\n                }\n                const containerElement = document.elementFromPoint(position.left, position.top);\n                let parentElement = containerElement;\n                // eslint-disable-next-line no-loops/no-loops\n                while (parentElement) {\n                    if (parentElement.className === 'cdk-overlay-pane') {\n                        return false;\n                    }\n                    parentElement = parentElement.parentElement;\n                }\n                return true;\n            }),\n            filter(position => {\n                if (this._closeOnMoveOver) {\n                    return true;\n                }\n                const ownerElement = (this.params.ownerElement as ElementRef<HTMLElement>).nativeElement || this.params.ownerElement as HTMLElement;\n                const ownerRect = new Rect(ownerElement.getBoundingClientRect());\n                return !ownerRect.containsPoint(position);\n            }),\n            delay(300),\n            takeUntil(this.destroyed$)\n        ).subscribe(() => {\n            this.hide.emit();\n            this.overlayVisible = false;\n        });\n    }\n\n    /**\n     * Init tooltip configuration\n     * Check if ng-template model passed through param is an observable or a promise and resolve it before set.\n     */\n    public ngOnInit(): void {\n        if (!this.name) {\n            throw (new Error('Name is required'));\n        }\n        this.params = this.tooltipService.params[this.name];\n        this.ownerElement = (this.params.ownerElement as ElementRef<HTMLElement>).nativeElement || this.params.ownerElement as HTMLElement;\n\n        const model$ = this.params.model as Observable<unknown>;\n        if (!model$) {\n            this._model = undefined;\n            this.overlayVisible = true;\n        } else if (model$.subscribe) {\n            model$.pipe(\n                takeUntil(this.destroyed$)\n            ).subscribe(model => {\n                this._model = model;\n                this.overlayVisible = true;\n            }, () => {\n                this.hide.emit();\n                this.overlayVisible = false;\n            });\n        } else {\n            const promise = this.params.model as Promise<unknown>;\n            if (promise.then) {\n                promise\n                    .then(model => {\n                        this._model = model;\n                        this.overlayVisible = true;\n                    })\n                    .catch(() => {\n                        this.hide.emit();\n                        this.overlayVisible = false;\n                    });\n            } else {\n                this._model = this.params.model;\n                this.overlayVisible = true;\n            }\n        }\n    }\n}\n","<deja-overlay [overlayOffsetX]=\"0\" [overlayOffsetY]=\"10\" [ownerElement]=\"ownerElement\" [isVisible]=\"overlayVisible\" [positions]=\"positions\" hasBackdrop=\"false\" isMobile=\"false\">\n    <ng-template *ngIf=\"!!tooltipTemplate\" [ngTemplateOutlet]=\"tooltipTemplate\" [ngTemplateOutletContext]=\"{ $implicit: model }\"></ng-template>\n    <ng-container *ngIf=\"!tooltipTemplate\">\n        <ng-content></ng-content>\n    </ng-container>\n</deja-overlay>\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { DejaConnectionPositionPair, Destroy } from '@deja-js/component/core';\nimport { delay, fromEvent, of, switchMap, takeUntil } from 'rxjs';\n\nimport { DejaTooltipService } from './tooltip.service';\n\n@Directive({\n    selector: '[deja-tooltip]'\n})\nexport class DejaTooltipDirective extends Destroy {\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    @Input('tooltip-delay') public delay = 600;\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    @Input('tooltip-model') public model: unknown;\n    @Input('deja-tooltip') public name: string;\n    // eslint-disable-next-line @angular-eslint/no-input-rename\n    @Input('tooltip-positions') public positions: DejaConnectionPositionPair | string;\n    // eslint-disable-next-line @angular-eslint/no-output-rename, @angular-eslint/no-output-native\n    @Output('tooltip-show') public readonly show = new EventEmitter();\n\n    public constructor(elementRef: ElementRef, tooltipService: DejaTooltipService) {\n        super();\n\n        const element = elementRef.nativeElement as HTMLElement;\n\n        const leave$ = fromEvent<MouseEvent>(element, 'mouseleave');\n\n        fromEvent<MouseEvent>(element, 'mouseenter').pipe(\n            switchMap(e => of(e).pipe(\n                delay(this.delay),\n                takeUntil(leave$)\n            )),\n            takeUntil(this.destroyed$)\n        ).subscribe(() => {\n            tooltipService.params[this.name] = {\n                model: this.model,\n                ownerElement: elementRef,\n                positions: this.positions\n            };\n\n            this.show.emit();\n        });\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { ElementRef } from '@angular/core';\nimport { DejaConnectionPositionPair } from '@deja-js/component/core';\n\n/**\n * Format of tooltip params\n */\nexport interface ITooltipParams {\n    /** Renvoie ou définit l'élement du DOM sur lequel le conteneur déroulant devra s'aligner */\n    ownerElement: ElementRef<HTMLElement> | HTMLElement;\n    positions: DejaConnectionPositionPair | string;\n    model: unknown;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MediaModule } from '@deja-js/component/core';\nimport { DejaOverlayModule } from '@deja-js/component/overlay';\n\nimport { DejaTooltipComponent } from './tooltip.component';\nimport { DejaTooltipDirective } from './tooltip.directive';\nimport { DejaTooltipService } from './tooltip.service';\n\n@NgModule({\n    declarations: [\n        DejaTooltipComponent,\n        DejaTooltipDirective\n    ],\n    exports: [\n        DejaTooltipComponent,\n        DejaTooltipDirective\n    ],\n    imports: [\n        CommonModule,\n        DejaOverlayModule,\n        MediaModule\n    ],\n    providers: [\n        DejaTooltipService\n    ]\n})\nexport class DejaTooltipModule { }\n\nexport * from './tooltip-params.interface';\nexport * from './tooltip.service';\nexport * from './tooltip.directive';\nexport * from './tooltip.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DejaTooltipService"],"mappings":"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"}