UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

1 lines 34.8 kB
{"version":3,"file":"ng-zorro-antd-tooltip.mjs","sources":["../../components/tooltip/base.ts","../../components/tooltip/tooltip.ts","../../components/tooltip/tooltip.module.ts","../../components/tooltip/public-api.ts","../../components/tooltip/ng-zorro-antd-tooltip.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { CdkConnectedOverlay, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { NzConfigService, PopConfirmConfig, PopoverConfig } from 'ng-zorro-antd/core/config';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { DEFAULT_TOOLTIP_POSITIONS, getPlacementName, POSITION_MAP, POSITION_TYPE } from 'ng-zorro-antd/core/overlay';\nimport { BooleanInput, NgClassInterface, NgStyleInterface, NzSafeAny, NzTSType } from 'ng-zorro-antd/core/types';\nimport { isNotNil, toBoolean } from 'ng-zorro-antd/core/util';\n\nexport interface PropertyMapping {\n [key: string]: [string, () => unknown];\n}\n\nexport type NzTooltipTrigger = 'click' | 'focus' | 'hover' | null;\n\n@Directive()\nexport abstract class NzTooltipBaseDirective implements OnChanges, OnDestroy, AfterViewInit {\n arrowPointAtCenter?: boolean;\n config?: Required<PopoverConfig | PopConfirmConfig>;\n directiveTitle?: NzTSType | null;\n directiveContent?: NzTSType | null;\n title?: NzTSType | null;\n content?: NzTSType | null;\n trigger?: NzTooltipTrigger;\n placement?: string | string[];\n origin?: ElementRef<HTMLElement>;\n visible?: boolean;\n mouseEnterDelay?: number;\n mouseLeaveDelay?: number;\n overlayClassName?: string;\n overlayStyle?: NgStyleInterface;\n visibleChange = new EventEmitter<boolean>();\n\n /**\n * For create tooltip dynamically. This should be override for each different component.\n */\n protected componentRef!: ComponentRef<NzTooltipBaseComponent>;\n\n /**\n * This true title that would be used in other parts on this component.\n */\n protected get _title(): NzTSType | null {\n return this.title || this.directiveTitle || null;\n }\n\n protected get _content(): NzTSType | null {\n return this.content || this.directiveContent || null;\n }\n\n protected get _trigger(): NzTooltipTrigger {\n return typeof this.trigger !== 'undefined' ? this.trigger : 'hover';\n }\n\n protected get _placement(): string[] {\n const p = this.placement;\n return Array.isArray(p) && p.length > 0 ? p : typeof p === 'string' && p ? [p] : ['top'];\n }\n\n protected get _visible(): boolean {\n return (typeof this.visible !== 'undefined' ? this.visible : this.internalVisible) || false;\n }\n\n protected get _mouseEnterDelay(): number {\n return this.mouseEnterDelay || 0.15;\n }\n\n protected get _mouseLeaveDelay(): number {\n return this.mouseLeaveDelay || 0.1;\n }\n\n protected get _overlayClassName(): string | null {\n return this.overlayClassName || null;\n }\n\n protected get _overlayStyle(): NgStyleInterface | null {\n return this.overlayStyle || null;\n }\n\n private internalVisible = false;\n\n protected getProxyPropertyMap(): PropertyMapping {\n return {\n noAnimation: ['noAnimation', () => !!this.noAnimation]\n };\n }\n\n component?: NzTooltipBaseComponent;\n\n protected readonly destroy$ = new Subject<void>();\n protected readonly triggerDisposables: Array<() => void> = [];\n\n private delayTimer?: number;\n\n constructor(\n public elementRef: ElementRef,\n protected hostView: ViewContainerRef,\n protected resolver: ComponentFactoryResolver,\n protected renderer: Renderer2,\n protected noAnimation?: NzNoAnimationDirective,\n protected nzConfigService?: NzConfigService\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n const { trigger } = changes;\n\n if (trigger && !trigger.isFirstChange()) {\n this.registerTriggers();\n }\n\n if (this.component) {\n this.updatePropertiesByChanges(changes);\n }\n }\n\n ngAfterViewInit(): void {\n this.createComponent();\n this.registerTriggers();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n // Clear toggling timer. Issue #3875 #4317 #4386\n this.clearTogglingTimer();\n this.removeTriggerListeners();\n }\n\n show(): void {\n this.component?.show();\n }\n\n hide(): void {\n this.component?.hide();\n }\n\n /**\n * Force the component to update its position.\n */\n updatePosition(): void {\n if (this.component) {\n this.component.updatePosition();\n }\n }\n\n /**\n * Create a dynamic tooltip component. This method can be override.\n */\n protected createComponent(): void {\n const componentRef = this.componentRef;\n this.component = componentRef.instance as NzTooltipBaseComponent;\n\n // Remove the component's DOM because it should be in the overlay container.\n this.renderer.removeChild(\n this.renderer.parentNode(this.elementRef.nativeElement),\n componentRef.location.nativeElement\n );\n this.component.setOverlayOrigin(this.origin || this.elementRef);\n\n this.initProperties();\n\n this.component.nzVisibleChange\n .pipe(distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((visible: boolean) => {\n this.internalVisible = visible;\n this.visibleChange.emit(visible);\n });\n }\n\n protected registerTriggers(): void {\n // When the method gets invoked, all properties has been synced to the dynamic component.\n // After removing the old API, we can just check the directive's own `nzTrigger`.\n const el = this.elementRef.nativeElement;\n const trigger = this.trigger;\n\n this.removeTriggerListeners();\n\n if (trigger === 'hover') {\n let overlayElement: HTMLElement;\n this.triggerDisposables.push(\n this.renderer.listen(el, 'mouseenter', () => {\n this.delayEnterLeave(true, true, this._mouseEnterDelay);\n })\n );\n this.triggerDisposables.push(\n this.renderer.listen(el, 'mouseleave', () => {\n this.delayEnterLeave(true, false, this._mouseLeaveDelay);\n if (this.component?.overlay.overlayRef && !overlayElement) {\n overlayElement = this.component.overlay.overlayRef.overlayElement;\n this.triggerDisposables.push(\n this.renderer.listen(overlayElement, 'mouseenter', () => {\n this.delayEnterLeave(false, true, this._mouseEnterDelay);\n })\n );\n this.triggerDisposables.push(\n this.renderer.listen(overlayElement, 'mouseleave', () => {\n this.delayEnterLeave(false, false, this._mouseLeaveDelay);\n })\n );\n }\n })\n );\n } else if (trigger === 'focus') {\n this.triggerDisposables.push(this.renderer.listen(el, 'focusin', () => this.show()));\n this.triggerDisposables.push(this.renderer.listen(el, 'focusout', () => this.hide()));\n } else if (trigger === 'click') {\n this.triggerDisposables.push(\n this.renderer.listen(el, 'click', (e: MouseEvent) => {\n e.preventDefault();\n this.show();\n })\n );\n }\n // Else do nothing because user wants to control the visibility programmatically.\n }\n\n private updatePropertiesByChanges(changes: SimpleChanges): void {\n this.updatePropertiesByKeys(Object.keys(changes));\n }\n\n private updatePropertiesByKeys(keys?: string[]): void {\n const mappingProperties: PropertyMapping = {\n // common mappings\n title: ['nzTitle', () => this._title],\n directiveTitle: ['nzTitle', () => this._title],\n content: ['nzContent', () => this._content],\n directiveContent: ['nzContent', () => this._content],\n trigger: ['nzTrigger', () => this._trigger],\n placement: ['nzPlacement', () => this._placement],\n visible: ['nzVisible', () => this._visible],\n mouseEnterDelay: ['nzMouseEnterDelay', () => this._mouseEnterDelay],\n mouseLeaveDelay: ['nzMouseLeaveDelay', () => this._mouseLeaveDelay],\n overlayClassName: ['nzOverlayClassName', () => this._overlayClassName],\n overlayStyle: ['nzOverlayStyle', () => this._overlayStyle],\n arrowPointAtCenter: ['nzArrowPointAtCenter', () => this.arrowPointAtCenter],\n ...this.getProxyPropertyMap()\n };\n\n (keys || Object.keys(mappingProperties).filter(key => !key.startsWith('directive'))).forEach(\n (property: NzSafeAny) => {\n if (mappingProperties[property]) {\n const [name, valueFn] = mappingProperties[property];\n this.updateComponentValue(name, valueFn());\n }\n }\n );\n\n this.component?.updateByDirective();\n }\n\n private initProperties(): void {\n this.updatePropertiesByKeys();\n }\n\n private updateComponentValue(key: string, value: NzSafeAny): void {\n if (typeof value !== 'undefined') {\n // @ts-ignore\n this.component[key] = value;\n }\n }\n\n private delayEnterLeave(isOrigin: boolean, isEnter: boolean, delay: number = -1): void {\n if (this.delayTimer) {\n this.clearTogglingTimer();\n } else if (delay > 0) {\n this.delayTimer = setTimeout(() => {\n this.delayTimer = undefined;\n isEnter ? this.show() : this.hide();\n }, delay * 1000);\n } else {\n // `isOrigin` is used due to the tooltip will not hide immediately\n // (may caused by the fade-out animation).\n isEnter && isOrigin ? this.show() : this.hide();\n }\n }\n\n private removeTriggerListeners(): void {\n this.triggerDisposables.forEach(dispose => dispose());\n this.triggerDisposables.length = 0;\n }\n\n private clearTogglingTimer(): void {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = undefined;\n }\n }\n}\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class NzTooltipBaseComponent implements OnDestroy, OnInit {\n static ngAcceptInputType_nzVisible: BooleanInput;\n static ngAcceptInputType_nzArrowPointAtCenter: BooleanInput;\n\n @ViewChild('overlay', { static: false }) overlay!: CdkConnectedOverlay;\n\n nzTitle: NzTSType | null = null;\n nzContent: NzTSType | null = null;\n nzArrowPointAtCenter: boolean = false;\n nzOverlayClassName!: string;\n nzOverlayStyle: NgStyleInterface = {};\n nzBackdrop = false;\n nzMouseEnterDelay?: number;\n nzMouseLeaveDelay?: number;\n\n nzVisibleChange = new Subject<boolean>();\n\n set nzVisible(value: boolean) {\n const visible = toBoolean(value);\n if (this._visible !== visible) {\n this._visible = visible;\n this.nzVisibleChange.next(visible);\n }\n }\n\n get nzVisible(): boolean {\n return this._visible;\n }\n\n _visible = false;\n\n set nzTrigger(value: NzTooltipTrigger) {\n this._trigger = value;\n }\n\n get nzTrigger(): NzTooltipTrigger {\n return this._trigger;\n }\n\n protected _trigger: NzTooltipTrigger = 'hover';\n\n set nzPlacement(value: POSITION_TYPE[]) {\n const preferredPosition = value.map(placement => POSITION_MAP[placement]);\n this._positions = [...preferredPosition, ...DEFAULT_TOOLTIP_POSITIONS];\n }\n\n preferredPlacement: string = 'top';\n\n origin!: ElementRef<NzSafeAny>;\n\n public dir: Direction = 'ltr';\n\n _classMap: NgClassInterface = {};\n\n _prefix = 'ant-tooltip';\n\n _positions: ConnectionPositionPair[] = [...DEFAULT_TOOLTIP_POSITIONS];\n\n protected destroy$ = new Subject<void>();\n\n constructor(\n public cdr: ChangeDetectorRef,\n @Optional() private directionality: Directionality,\n public noAnimation?: NzNoAnimationDirective\n ) {}\n\n ngOnInit(): void {\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n\n this.dir = this.directionality.value;\n }\n\n ngOnDestroy(): void {\n this.nzVisibleChange.complete();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n show(): void {\n if (this.nzVisible) {\n return;\n }\n\n if (!this.isEmpty()) {\n this.nzVisible = true;\n this.nzVisibleChange.next(true);\n this.cdr.detectChanges();\n }\n\n // for ltr for overlay to display tooltip in correct placement in rtl direction.\n if (this.origin && this.overlay && this.overlay.overlayRef && this.overlay.overlayRef.getDirection() === 'rtl') {\n this.overlay.overlayRef.setDirection('ltr');\n }\n }\n\n hide(): void {\n if (!this.nzVisible) {\n return;\n }\n\n this.nzVisible = false;\n this.nzVisibleChange.next(false);\n this.cdr.detectChanges();\n }\n\n updateByDirective(): void {\n this.updateStyles();\n this.cdr.detectChanges();\n\n Promise.resolve().then(() => {\n this.updatePosition();\n this.updateVisibilityByTitle();\n });\n }\n\n /**\n * Force the component to update its position.\n */\n updatePosition(): void {\n if (this.origin && this.overlay && this.overlay.overlayRef) {\n this.overlay.overlayRef.updatePosition();\n }\n }\n\n onPositionChange(position: ConnectedOverlayPositionChange): void {\n this.preferredPlacement = getPlacementName(position)!;\n this.updateStyles();\n\n // We have to trigger immediate change detection or the element would blink.\n this.cdr.detectChanges();\n }\n\n setOverlayOrigin(origin: ElementRef<HTMLElement>): void {\n this.origin = origin;\n this.cdr.markForCheck();\n }\n\n onClickOutside(event: MouseEvent): void {\n if (!this.origin.nativeElement.contains(event.target) && this.nzTrigger !== null) {\n this.hide();\n }\n }\n\n /**\n * Hide the component while the content is empty.\n */\n private updateVisibilityByTitle(): void {\n if (this.isEmpty()) {\n this.hide();\n }\n }\n\n protected updateStyles(): void {\n this._classMap = {\n [this.nzOverlayClassName]: true,\n [`${this._prefix}-placement-${this.preferredPlacement}`]: true\n };\n }\n\n /**\n * Empty component cannot be opened.\n */\n protected abstract isEmpty(): boolean;\n}\n\nexport function isTooltipEmpty(value: string | TemplateRef<void> | null): boolean {\n return value instanceof TemplateRef ? false : value === '' || !isNotNil(value);\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Host,\n Input,\n Optional,\n Output,\n Renderer2,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { zoomBigMotion } from 'ng-zorro-antd/core/animation';\nimport { isPresetColor, NzPresetColor } from 'ng-zorro-antd/core/color';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { BooleanInput, NgStyleInterface, NzTSType } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport {\n isTooltipEmpty,\n NzTooltipBaseComponent,\n NzTooltipBaseDirective,\n NzTooltipTrigger,\n PropertyMapping\n} from './base';\n\n@Directive({\n selector: '[nz-tooltip]',\n exportAs: 'nzTooltip',\n host: {\n '[class.ant-tooltip-open]': 'visible'\n }\n})\nexport class NzTooltipDirective extends NzTooltipBaseDirective {\n static ngAcceptInputType_nzTooltipArrowPointAtCenter: BooleanInput;\n\n @Input('nzTooltipTitle') override title?: NzTSType | null;\n @Input('nzTooltipTitleContext') titleContext?: Object | null = null;\n @Input('nz-tooltip') override directiveTitle?: NzTSType | null;\n @Input('nzTooltipTrigger') override trigger?: NzTooltipTrigger = 'hover';\n @Input('nzTooltipPlacement') override placement?: string | string[] = 'top';\n @Input('nzTooltipOrigin') override origin?: ElementRef<HTMLElement>;\n @Input('nzTooltipVisible') override visible?: boolean;\n @Input('nzTooltipMouseEnterDelay') override mouseEnterDelay?: number;\n @Input('nzTooltipMouseLeaveDelay') override mouseLeaveDelay?: number;\n @Input('nzTooltipOverlayClassName') override overlayClassName?: string;\n @Input('nzTooltipOverlayStyle') override overlayStyle?: NgStyleInterface;\n @Input('nzTooltipArrowPointAtCenter') @InputBoolean() override arrowPointAtCenter?: boolean;\n @Input() nzTooltipColor?: string;\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('nzTooltipVisibleChange') override readonly visibleChange = new EventEmitter<boolean>();\n\n override componentRef: ComponentRef<NzToolTipComponent> = this.hostView.createComponent(NzToolTipComponent);\n\n constructor(\n elementRef: ElementRef,\n hostView: ViewContainerRef,\n resolver: ComponentFactoryResolver,\n renderer: Renderer2,\n @Host() @Optional() noAnimation?: NzNoAnimationDirective\n ) {\n super(elementRef, hostView, resolver, renderer, noAnimation);\n }\n\n protected override getProxyPropertyMap(): PropertyMapping {\n return {\n ...super.getProxyPropertyMap(),\n nzTooltipColor: ['nzColor', () => this.nzTooltipColor],\n nzTooltipTitleContext: ['nzTitleContext', () => this.titleContext]\n };\n }\n}\n\n@Component({\n selector: 'nz-tooltip',\n exportAs: 'nzTooltipComponent',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [zoomBigMotion],\n template: `\n <ng-template\n #overlay=\"cdkConnectedOverlay\"\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"_visible\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n [cdkConnectedOverlayPush]=\"true\"\n [nzArrowPointAtCenter]=\"nzArrowPointAtCenter\"\n (overlayOutsideClick)=\"onClickOutside($event)\"\n (detach)=\"hide()\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div\n class=\"ant-tooltip\"\n [class.ant-tooltip-rtl]=\"dir === 'rtl'\"\n [ngClass]=\"_classMap\"\n [ngStyle]=\"nzOverlayStyle\"\n [@.disabled]=\"noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [@zoomBigMotion]=\"'active'\"\n >\n <div class=\"ant-tooltip-content\">\n <div class=\"ant-tooltip-arrow\">\n <span class=\"ant-tooltip-arrow-content\" [ngStyle]=\"_contentStyleMap\"></span>\n </div>\n <div class=\"ant-tooltip-inner\" [ngStyle]=\"_contentStyleMap\">\n <ng-container *nzStringTemplateOutlet=\"nzTitle; context: nzTitleContext\">{{ nzTitle }}</ng-container>\n </div>\n </div>\n </div>\n </ng-template>\n `,\n preserveWhitespaces: false\n})\nexport class NzToolTipComponent extends NzTooltipBaseComponent {\n override nzTitle: NzTSType | null = null;\n nzTitleContext: Object | null = null;\n\n nzColor?: string | NzPresetColor;\n\n _contentStyleMap: NgStyleInterface = {};\n\n constructor(\n cdr: ChangeDetectorRef,\n @Optional() directionality: Directionality,\n @Host() @Optional() noAnimation?: NzNoAnimationDirective\n ) {\n super(cdr, directionality, noAnimation);\n }\n\n protected isEmpty(): boolean {\n return isTooltipEmpty(this.nzTitle);\n }\n\n protected override updateStyles(): void {\n const isColorPreset = this.nzColor && isPresetColor(this.nzColor);\n\n this._classMap = {\n [this.nzOverlayClassName]: true,\n [`${this._prefix}-placement-${this.preferredPlacement}`]: true,\n [`${this._prefix}-${this.nzColor}`]: isColorPreset\n };\n\n this._contentStyleMap = {\n backgroundColor: !!this.nzColor && !isColorPreset ? this.nzColor : null\n };\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzOverlayModule } from 'ng-zorro-antd/core/overlay';\n\n// NOTE: the `t` is not uppercase in directives. Change this would however introduce breaking change.\nimport { NzToolTipComponent, NzTooltipDirective } from './tooltip';\n\n@NgModule({\n declarations: [NzToolTipComponent, NzTooltipDirective],\n exports: [NzToolTipComponent, NzTooltipDirective],\n entryComponents: [NzToolTipComponent],\n imports: [BidiModule, CommonModule, OverlayModule, NzOutletModule, NzOverlayModule, NzNoAnimationModule]\n})\nexport class NzToolTipModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './tooltip';\nexport * from './tooltip.module';\nexport * from './base';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}