novo-elements
Version:
1 lines • 25.3 kB
Source Map (JSON)
{"version":3,"file":"novo-elements-elements-popover.mjs","sources":["../../../projects/novo-elements/src/elements/popover/PopOverContent.ts","../../../projects/novo-elements/src/elements/popover/PopOver.ts","../../../projects/novo-elements/src/elements/popover/PopOver.module.ts","../../../projects/novo-elements/src/elements/popover/novo-elements-elements-popover.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n\n@Component({\n selector: 'popover-content',\n template: `\n <div\n #popoverDiv\n class=\"popover {{ effectivePlacement }}\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\"\n [class.fade]=\"animation\"\n style=\"display: block\"\n role=\"popover\"\n >\n <div class=\"arrow {{ effectiveAlignment }}\"></div>\n <div class=\"popover-title\" [hidden]=\"!title\">{{ title }}</div>\n <div class=\"popover-content\">\n <ng-content></ng-content>\n <div *ngIf=\"htmlContent\" class=\"popover-content-text\" [innerHTML]=\"htmlContent\"></div>\n <div *ngIf=\"!htmlContent\" class=\"popover-content-text\">{{ content }}</div>\n </div>\n </div>\n `,\n styleUrls: ['./PopOver.scss'],\n standalone: false,\n})\nexport class PopOverContent implements AfterViewInit {\n @Input()\n content: string;\n @Input()\n htmlContent: string;\n @Input()\n placement: string = 'top';\n @Input()\n title: string;\n @Input()\n animation: boolean = true;\n\n @ViewChild('popoverDiv')\n popoverDiv: ElementRef;\n popover: PopOverDirective;\n onCloseFromOutside = new EventEmitter();\n top: number = -10000;\n left: number = -10000;\n displayType: string = 'none';\n effectivePlacement: string;\n effectiveAlignment: string;\n isHidden: boolean = false;\n\n constructor(protected element: ElementRef, protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this.show();\n this.cdr.detectChanges();\n }\n\n toggle(): void {\n if (this.isHidden) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show(): void {\n if (!this.popover || !this.popover.getElement()) {\n return;\n }\n\n const p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.displayType = 'block';\n this.top = p.top;\n this.left = p.left;\n this.isHidden = false;\n }\n\n hide(): void {\n this.top = -10000;\n this.left = -10000;\n this.isHidden = true;\n this.popover.hide();\n }\n\n hideFromPopover() {\n this.top = -10000;\n this.left = -10000;\n }\n\n protected positionElements(\n hostEl: HTMLElement,\n targetEl: HTMLElement,\n positionStr: string,\n appendToBody = false,\n ): { top: number; left: number } {\n const positionStrParts = positionStr.split('-');\n const mainSide = (this.effectivePlacement = this.getEffectivePlacement(positionStrParts[0] || 'right', hostEl, targetEl));\n const orientation = (this.effectiveAlignment = positionStrParts[1] || 'center');\n const hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);\n const targetElWidth = targetEl.offsetWidth;\n const targetElHeight = targetEl.offsetHeight;\n\n const shiftWidth: any = {\n center(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth) / 2;\n },\n right(): number {\n return hostElPos.left;\n },\n left(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth);\n },\n };\n\n const shiftHeight: any = {\n center(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight) / 2;\n },\n bottom(): number {\n return hostElPos.top;\n },\n top(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight);\n },\n };\n\n let targetElPos: { top: number; left: number };\n switch (mainSide) {\n case 'right':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left + hostElPos.width,\n };\n break;\n\n case 'left':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left - targetElWidth,\n };\n break;\n\n case 'bottom':\n targetElPos = {\n top: hostElPos.top + hostElPos.height,\n left: shiftWidth[orientation](),\n };\n break;\n\n default:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth[orientation](),\n };\n break;\n }\n\n return targetElPos;\n }\n\n protected position(nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } {\n let offsetParentBCR = { top: 0, left: 0 };\n const elBCR = this.offset(nativeEl);\n const offsetParentEl = this.parentOffsetEl(nativeEl);\n if (offsetParentEl !== window.document) {\n offsetParentBCR = this.offset(offsetParentEl);\n offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n }\n\n protected offset(nativeEl: any): { width: number; height: number; top: number; left: number } {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft),\n };\n }\n\n protected getStyle(nativeEl: HTMLElement, cssProp: string): string {\n if ((nativeEl as any).currentStyle) {\n return (nativeEl as any).currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return (window.getComputedStyle as any)(nativeEl)[cssProp];\n }\n\n return (nativeEl.style as any)[cssProp];\n }\n\n protected isStaticPositioned(nativeEl: HTMLElement): boolean {\n return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n }\n\n protected parentOffsetEl(nativeEl: HTMLElement): any {\n let offsetParent: any = nativeEl.offsetParent || window.document;\n while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || window.document;\n }\n\n protected getEffectivePlacement(desiredPlacement: string, hostElement: HTMLElement, targetElement: HTMLElement): string {\n const hostElBoundingRect = hostElement.getBoundingClientRect();\n\n if (desiredPlacement === 'top' && hostElBoundingRect.top - targetElement.offsetHeight < 0) {\n return 'bottom';\n }\n if (desiredPlacement === 'bottom' && hostElBoundingRect.bottom + targetElement.offsetHeight > window.innerHeight) {\n return 'top';\n }\n if (desiredPlacement === 'left' && hostElBoundingRect.left - targetElement.offsetWidth < 0) {\n return 'right';\n }\n if (desiredPlacement === 'right' && hostElBoundingRect.right + targetElement.offsetWidth > window.innerWidth) {\n return 'left';\n }\n\n return desiredPlacement;\n }\n}\n","// NG2\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PopOverContent } from './PopOverContent';\n\n@Directive({\n /**\n * [popover] selector retained for backwards compatability, but should be avoived as\n * it interferes with the newly added (2023) HTML standard spec popover attribute.\n */\n selector: '[popover], [novoPopover]',\n standalone: false,\n})\nexport class PopOverDirective implements OnChanges, OnDestroy {\n protected PopoverComponent = PopOverContent;\n protected popover: ComponentRef<PopOverContent>;\n protected visible: boolean;\n private subscriptions = new Subscription();\n\n constructor(protected viewContainerRef: ViewContainerRef, protected resolver: ComponentFactoryResolver) {}\n\n @Input('popover')\n content: string | PopOverContent;\n @Input('novoPopover')\n set novoPopover(content: string | PopOverContent) {\n this.content = content;\n }\n @Input()\n popoverHtmlContent: string;\n @Input()\n popoverDisabled: boolean;\n @Input()\n popoverAlways: boolean;\n @Input()\n popoverAnimation: boolean;\n @Input()\n popoverPlacement: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverOnHover: boolean = false;\n @Input()\n popoverDismissTimeout: number = 0;\n\n @Output()\n onShown = new EventEmitter<PopOverDirective>();\n @Output()\n onHidden = new EventEmitter<PopOverDirective>();\n\n // ---------------------------------------------------\n // Event listeners\n // ---------------------------------------------------\n @HostListener('click')\n showOrHideOnClick(): void {\n if (this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('focusin')\n @HostListener('mouseenter')\n showOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.show();\n }\n\n @HostListener('focusout')\n @HostListener('mouseleave')\n hideOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.hide();\n }\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (changes.popoverDisabled) {\n if (changes.popoverDisabled.currentValue) {\n this.hide();\n }\n }\n if (changes.popoverAlways) {\n if (changes.popoverAlways.currentValue) {\n this.show();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n toggle() {\n if (!this.visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show() {\n if (this.visible || (!this.content && !this.popoverHtmlContent)) {\n return;\n }\n\n this.visible = true;\n if (typeof this.content === 'string' || this.popoverHtmlContent) {\n const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);\n if (!this.visible) {\n return;\n }\n\n this.popover = this.viewContainerRef.createComponent(factory);\n const popover = this.popover.instance as PopOverContent;\n popover.popover = this;\n if (this.content) {\n popover.content = this.content as string;\n }\n if (this.popoverHtmlContent) {\n popover.htmlContent = this.popoverHtmlContent;\n }\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n } else {\n const popover = this.content as PopOverContent;\n popover.popover = this;\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n popover.show();\n }\n\n this.onShown.emit(this);\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n if (this.popover) {\n this.popover.destroy();\n }\n\n if (this.content instanceof PopOverContent) {\n (this.content as PopOverContent).hideFromPopover();\n }\n\n this.onHidden.emit(this);\n }\n\n getElement() {\n return this.viewContainerRef.element.nativeElement;\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n// APP\nimport { PopOverContent } from './PopOverContent';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [PopOverContent, PopOverDirective],\n exports: [PopOverContent, PopOverDirective],\n imports: [\n CommonModule,\n ],\n})\nexport class NovoPopOverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}