ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
937 lines (925 loc) • 31.1 kB
JavaScript
import { EventEmitter, TemplateRef, Output, ChangeDetectorRef, Host, Optional, ViewChild, Input, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, Directive, ElementRef, ViewContainerRef, ComponentFactoryResolver, Renderer2, NgModule } from '@angular/core';
import { DEFAULT_TOOLTIP_POSITIONS, getPlacementName, isNotNil, POSITION_MAP, toBoolean, NzNoAnimationDirective, zoomBigMotion, warnDeprecation, NzAddOnModule, NzOverlayModule, NzNoAnimationModule } from 'ng-zorro-antd/core';
import { OverlayModule } from '@angular/cdk/overlay';
import { Subject } from 'rxjs';
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @license
* Copyright Alibaba.com All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Tooltip component. Also the base component for legacy components.
* @abstract
*/
class NzTooltipBaseComponent {
/**
* @param {?} cdr
* @param {?=} noAnimation
*/
constructor(cdr, noAnimation) {
this.cdr = cdr;
this.noAnimation = noAnimation;
this.nzVisibleChange = new EventEmitter();
this._classMap = {};
this._hasBackdrop = false;
this._prefix = 'ant-tooltip-placement';
this._visible = false;
this._positions = [...DEFAULT_TOOLTIP_POSITIONS];
this._placement = 'top';
this._trigger = 'hover';
}
/**
* @return {?}
*/
get content() {
return this.nzContent !== undefined ? this.nzContent : this.nzContentTemplate;
}
/**
* @return {?}
*/
get title() {
return this.nzTitle !== undefined ? this.nzTitle : this.nzTitleTemplate;
}
/**
* @return {?}
*/
show() {
if (this.nzVisible) {
return;
}
if (!this.isTitleEmpty() || !this.isContentEmpty()) {
this.nzVisible = true;
this.nzVisibleChange.emit(true);
this.cdr.detectChanges();
}
}
/**
* @return {?}
*/
hide() {
if (!this.nzVisible) {
return;
}
this.nzVisible = false;
this.nzVisibleChange.emit(false);
this.cdr.detectChanges();
}
/**
* @return {?}
*/
updateByDirective() {
this.setClassMap();
this.cdr.detectChanges();
Promise.resolve().then((/**
* @return {?}
*/
() => {
this.updatePosition();
}));
}
/**
* Force the component to update its position.
* @return {?}
*/
updatePosition() {
if (this.origin && this.overlay && this.overlay.overlayRef) {
this.overlay.overlayRef.updatePosition();
}
}
/**
* @param {?} position
* @return {?}
*/
onPositionChange(position) {
this._placement = (/** @type {?} */ (getPlacementName(position)));
this.setClassMap();
this.cdr.detectChanges();
}
/**
* @return {?}
*/
setClassMap() {
this._classMap = {
[this.nzOverlayClassName]: true,
[`${this._prefix}-${this._placement}`]: true
};
}
/**
* @param {?} origin
* @return {?}
*/
setOverlayOrigin(origin) {
this.origin = origin;
this.cdr.markForCheck();
}
/**
* @private
* @return {?}
*/
isTitleEmpty() {
return this.title instanceof TemplateRef ? false : this.title === '' || !isNotNil(this.title);
}
/**
* @private
* @return {?}
*/
isContentEmpty() {
return this.content instanceof TemplateRef ? false : this.content === '' || !isNotNil(this.content);
}
}
NzTooltipBaseComponent.propDecorators = {
nzVisibleChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
NzTooltipBaseComponent.prototype.nzTitle;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzContent;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzVisible;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzPlacement;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzOverlayClassName;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzOverlayStyle;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzMouseEnterDelay;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzMouseLeaveDelay;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzTrigger;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzTitleTemplate;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzContentTemplate;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzVisibleChange;
/** @type {?} */
NzTooltipBaseComponent.prototype.overlay;
/** @type {?} */
NzTooltipBaseComponent.prototype.origin;
/** @type {?} */
NzTooltipBaseComponent.prototype._classMap;
/** @type {?} */
NzTooltipBaseComponent.prototype._hasBackdrop;
/** @type {?} */
NzTooltipBaseComponent.prototype._prefix;
/** @type {?} */
NzTooltipBaseComponent.prototype._visible;
/** @type {?} */
NzTooltipBaseComponent.prototype._positions;
/** @type {?} */
NzTooltipBaseComponent.prototype._placement;
/** @type {?} */
NzTooltipBaseComponent.prototype._trigger;
/** @type {?} */
NzTooltipBaseComponent.prototype.cdr;
/** @type {?} */
NzTooltipBaseComponent.prototype.noAnimation;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* This component overrides some properties of `NzTooltipBaseComponent` and make them
* input properties.
*
* @deprecated 9.0.0 tooltip and other components deprecate the old API. This
* would be removed in 9.0.0.
*
* \@example This example is what going to be removed
*
* ```html
* <nz-tooltip>
* <a nz-tooltip></a>
* </nz-tooltip>
* ```
*/
class NzTooltipBaseComponentLegacy extends NzTooltipBaseComponent {
/**
* @param {?} cdr
* @param {?=} noAnimation
*/
constructor(cdr, noAnimation) {
super(cdr, noAnimation);
this.noAnimation = noAnimation;
this.nzOverlayClassName = '';
this.nzOverlayStyle = {};
this.nzMouseEnterDelay = 0.15; // second
// second
this.nzMouseLeaveDelay = 0.1; // second
this.nzVisibleChange = new EventEmitter();
}
// second
// TODO: placement logic should be removed into `NzTooltipBaseDirective` once this component is removed.
/**
* @param {?} value
* @return {?}
*/
set nzPlacement(value) {
if (value !== this._placement) {
this._placement = value;
this._positions = [POSITION_MAP[this.nzPlacement], ...this._positions];
}
}
/**
* @return {?}
*/
get nzPlacement() {
return this._placement;
}
/**
* @param {?} value
* @return {?}
*/
set nzVisible(value) {
/** @type {?} */
const visible = toBoolean(value);
if (this._visible !== visible) {
this._visible = visible;
this.nzVisibleChange.emit(visible);
}
}
/**
* @return {?}
*/
get nzVisible() {
return this._visible;
}
/**
* @param {?} value
* @return {?}
*/
set nzTrigger(value) {
this._trigger = value;
this._hasBackdrop = this._trigger === 'click';
}
/**
* @return {?}
*/
get nzTrigger() {
return this._trigger;
}
/**
* @return {?}
*/
ngOnChanges() {
Promise.resolve().then((/**
* @return {?}
*/
() => {
this.updatePosition();
}));
}
}
/** @nocollapse */
NzTooltipBaseComponentLegacy.ctorParameters = () => [
{ type: ChangeDetectorRef },
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
];
NzTooltipBaseComponentLegacy.propDecorators = {
overlay: [{ type: ViewChild, args: ['overlay', { static: false },] }],
nzOverlayClassName: [{ type: Input }],
nzOverlayStyle: [{ type: Input }],
nzMouseEnterDelay: [{ type: Input }],
nzMouseLeaveDelay: [{ type: Input }],
nzPlacement: [{ type: Input }],
nzVisible: [{ type: Input }],
nzTrigger: [{ type: Input }],
nzVisibleChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.overlay;
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.nzOverlayClassName;
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.nzOverlayStyle;
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.nzMouseEnterDelay;
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.nzMouseLeaveDelay;
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.nzVisibleChange;
/** @type {?} */
NzTooltipBaseComponentLegacy.prototype.noAnimation;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzToolTipComponent extends NzTooltipBaseComponentLegacy {
/**
* @param {?} cdr
* @param {?=} noAnimation
*/
constructor(cdr, noAnimation) {
super(cdr);
this.noAnimation = noAnimation;
}
}
NzToolTipComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-tooltip',
exportAs: 'nzTooltipComponent',
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
animations: [zoomBigMotion],
template: "<ng-content></ng-content>\n<ng-template\n #overlay=\"cdkConnectedOverlay\"\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"_visible\"\n [cdkConnectedOverlayHasBackdrop]=\"_hasBackdrop\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n (backdropClick)=\"hide()\"\n (detach)=\"hide()\"\n (positionChange)=\"onPositionChange($event)\">\n <div\n class=\"ant-tooltip\"\n [ngClass]=\"_classMap\"\n [ngStyle]=\"nzOverlayStyle\"\n [@.disabled]=\"noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [@zoomBigMotion]=\"'active'\">\n <div class=\"ant-tooltip-content\">\n <div class=\"ant-tooltip-arrow\"></div>\n <div class=\"ant-tooltip-inner\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n </div>\n </div>\n </div>\n</ng-template>",
preserveWhitespaces: false,
providers: [
{
provide: NzTooltipBaseComponentLegacy,
useExisting: NzToolTipComponent
}
],
styles: [`
.ant-tooltip {
position: relative;
}
`]
}] }
];
/** @nocollapse */
NzToolTipComponent.ctorParameters = () => [
{ type: ChangeDetectorRef },
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
];
NzToolTipComponent.propDecorators = {
nzTitle: [{ type: Input }],
nzTitleTemplate: [{ type: ContentChild, args: ['nzTemplate', { static: true },] }]
};
if (false) {
/** @type {?} */
NzToolTipComponent.prototype.nzTitle;
/** @type {?} */
NzToolTipComponent.prototype.nzTitleTemplate;
/** @type {?} */
NzToolTipComponent.prototype.noAnimation;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
class NzTooltipBaseDirective {
/**
* @param {?} elementRef
* @param {?} hostView
* @param {?} resolver
* @param {?} renderer
* @param {?=} _tooltip
* @param {?=} noAnimation
*/
constructor(elementRef, hostView, resolver, renderer, _tooltip, noAnimation) {
this.elementRef = elementRef;
this.hostView = hostView;
this.resolver = resolver;
this.renderer = renderer;
this._tooltip = _tooltip;
this.noAnimation = noAnimation;
/**
* @deprecated 9.0.0. This is deprecated and going to be removed in 9.0.0.
* Please use a more specific API. Like `nzTooltipTrigger`.
*/
this.nzTrigger = 'hover';
/**
* @deprecated 9.0.0. This is deprecated and going to be removed in 9.0.0.
* Please use a more specific API. Like `nzTooltipPlacement`.
*/
this.nzPlacement = 'top';
this.needProxyProperties = [
'nzOverlayClassName',
'nzOverlayStyle',
'nzMouseEnterDelay',
'nzMouseLeaveDelay',
'nzVisible',
'noAnimation'
];
this.nzVisibleChange = new EventEmitter();
this.isTooltipComponentVisible = false;
/**
* @deprecated 9.0.0. Tooltips would always be dynamic in 9.0.0.
*/
this.isDynamicTooltip = false;
this.triggerUnlisteners = [];
this.$destroy = new Subject();
}
/**
* This true title that would be used in other parts on this component.
* @protected
* @return {?}
*/
get title() {
return this.specificTitle || this.directiveNameTitle || this.nzTitle;
}
/**
* @protected
* @return {?}
*/
get content() {
return this.specificContent || this.directiveNameContent || this.nzContent;
}
/**
* @protected
* @return {?}
*/
get placement() {
return this.specificPlacement || this.nzPlacement;
}
/**
* @protected
* @return {?}
*/
get trigger() {
return this.specificTrigger || this.nzTrigger;
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
if (this.tooltip && this.isDynamicTooltip) {
this.updateChangedProperties(changes);
}
// TODO: enable these warning in 9.0.0.
// if (changes.nzTitle) {
// warnDeprecation(
// `'nzTitle' of 'nz-tooltip' is deprecated and will be removed in 10.0.0. Please use 'nzTooltipTitle' instead. The same with 'nz-popover' and 'nz-popconfirm'.`
// );
// }
// if (changes.nzContent) {
// warnDeprecation(
// `'nzContent' of 'nz-popover' is deprecated and will be removed in 10.0.0. Please use 'nzPopoverContent' instead.`
// );
// }
// if (changes.nzPlacement) {
// warnDeprecation(
// `'nzPlacement' of 'nz-tooltip' is deprecated and will be removed in 10.0.0. Please use 'nzTooltipContent' instead. The same with 'nz-popover' and 'nz-popconfirm'.`
// );
// }
// if (changes.nzTrigger) {
// warnDeprecation(
// `'nzTrigger' of 'nz-tooltip' is deprecated and will be removed in 10.0.0. Please use 'nzTooltipTrigger' instead. The same with 'nz-popover' and 'nz-popconfirm'.`
// );
// }
}
/**
* @return {?}
*/
ngOnInit() {
if (!this._tooltip) {
this.createDynamicTooltipComponent();
}
else {
warnDeprecation(`'<nz-tooltip></nz-tooltip>', '<nz-popover></nz-popover>' and '<nz-popconfirm></nz-popconfirm>' is deprecated and will be removed in 9.0.0. Refer: https://ng.ant.design/components/tooltip/zh .`);
this.tooltip = this._tooltip;
this.tooltip.setOverlayOrigin((/** @type {?} */ (this)));
}
this.tooltip.nzVisibleChange
.pipe(distinctUntilChanged(), takeUntil(this.$destroy))
.subscribe((/**
* @param {?} visible
* @return {?}
*/
(visible) => {
this.isTooltipComponentVisible = visible;
this.nzVisibleChange.emit(visible);
}));
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.registerTriggers();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.$destroy.next();
this.$destroy.complete();
if (this.tooltipRef) {
this.tooltipRef.destroy();
}
}
/**
* @return {?}
*/
show() {
this.tooltip.show();
}
/**
* @return {?}
*/
hide() {
this.tooltip.hide();
}
/**
* Force the component to update its position.
* @return {?}
*/
updatePosition() {
if (this.tooltip && this.isDynamicTooltip) {
this.tooltip.updatePosition();
}
}
/**
* Create a dynamic tooltip component. This method can be override.
* @protected
* @return {?}
*/
createDynamicTooltipComponent() {
this.isDynamicTooltip = true;
this.tooltipRef = this.hostView.createComponent(this.componentFactory);
this.tooltip = this.tooltipRef.instance;
this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement), this.tooltipRef.location.nativeElement); // Remove the component's DOM because it should be in the overlay container.
// If the tooltip component is dynamically created, we should set its origin before updating properties to
// the component.
this.tooltip.setOverlayOrigin((/** @type {?} */ (this)));
// Update all properties to the component.
this.updateChangedProperties(this.needProxyProperties);
}
/**
* @protected
* @return {?}
*/
registerTriggers() {
// When the method gets invoked, all properties has been synced to the dynamic component.
// After removing the old API, we can just check the directive's own `nzTrigger`.
/** @type {?} */
const el = this.elementRef.nativeElement;
/** @type {?} */
const trigger = this.isDynamicTooltip ? this.trigger : this.tooltip.nzTrigger;
if (trigger === 'hover') {
/** @type {?} */
let overlayElement;
this.triggerUnlisteners.push(this.renderer.listen(el, 'mouseenter', (/**
* @return {?}
*/
() => {
this.delayEnterLeave(true, true, this.tooltip.nzMouseEnterDelay);
})));
this.triggerUnlisteners.push(this.renderer.listen(el, 'mouseleave', (/**
* @return {?}
*/
() => {
this.delayEnterLeave(true, false, this.tooltip.nzMouseLeaveDelay);
if (this.tooltip.overlay.overlayRef && !overlayElement) {
overlayElement = this.tooltip.overlay.overlayRef.overlayElement;
this.triggerUnlisteners.push(this.renderer.listen(overlayElement, 'mouseenter', (/**
* @return {?}
*/
() => {
this.delayEnterLeave(false, true);
})));
this.triggerUnlisteners.push(this.renderer.listen(overlayElement, 'mouseleave', (/**
* @return {?}
*/
() => {
this.delayEnterLeave(false, false);
})));
}
})));
}
else if (trigger === 'focus') {
this.triggerUnlisteners.push(this.renderer.listen(el, 'focus', (/**
* @return {?}
*/
() => this.show())));
this.triggerUnlisteners.push(this.renderer.listen(el, 'blur', (/**
* @return {?}
*/
() => this.hide())));
}
else if (trigger === 'click') {
this.triggerUnlisteners.push(this.renderer.listen(el, 'click', (/**
* @param {?} e
* @return {?}
*/
e => {
e.preventDefault();
this.show();
})));
// Hiding would be triggered by the component itself.
} // else do nothing because user wants to control the visibility programmatically.
}
/**
* Sync changed properties to the component and trigger change detection in that component.
* @protected
* @param {?} propertiesOrChanges
* @return {?}
*/
updateChangedProperties(propertiesOrChanges) {
/** @type {?} */
const isArray = Array.isArray(propertiesOrChanges);
/** @type {?} */
const keys_ = isArray ? ((/** @type {?} */ (propertiesOrChanges))) : Object.keys(propertiesOrChanges);
// tslint:disable-next-line no-any
keys_.forEach((/**
* @param {?} property
* @return {?}
*/
(property) => {
if (this.needProxyProperties.indexOf(property) !== -1) {
// @ts-ignore
this.updateComponentValue(property, this[property]);
}
}));
if (isArray) {
this.updateComponentValue('nzTitle', this.title);
this.updateComponentValue('nzContent', this.content);
this.updateComponentValue('nzPlacement', this.placement);
this.updateComponentValue('nzTrigger', this.trigger);
}
else {
/** @type {?} */
const c = (/** @type {?} */ (propertiesOrChanges));
if (c.specificTitle || c.directiveNameTitle || c.nzTitle) {
this.updateComponentValue('nzTitle', this.title);
}
if (c.specificContent || c.directiveNameContent || c.nzContent) {
this.updateComponentValue('nzContent', this.content);
}
if (c.specificTrigger || c.nzTrigger) {
this.updateComponentValue('nzTrigger', this.trigger);
}
if (c.specificPlacement || c.nzPlacement) {
this.updateComponentValue('nzPlacement', this.placement);
}
}
this.tooltip.updateByDirective();
}
// tslint:disable-next-line no-any
/**
* @private
* @param {?} key
* @param {?} value
* @return {?}
*/
updateComponentValue(key, value) {
if (isNotNil(value)) {
// @ts-ignore
this.tooltip[key] = value;
}
}
/**
* @private
* @param {?} isOrigin
* @param {?} isEnter
* @param {?=} delay
* @return {?}
*/
delayEnterLeave(isOrigin, isEnter, delay = -1) {
if (this.delayTimer) {
clearTimeout(this.delayTimer);
this.delayTimer = undefined;
}
else if (delay > 0) {
this.delayTimer = setTimeout((/**
* @return {?}
*/
() => {
this.delayTimer = undefined;
isEnter ? this.show() : this.hide();
}), delay * 1000);
}
else {
// `isOrigin` is used due to the tooltip will not hide immediately
// (may caused by the fade-out animation).
isEnter && isOrigin ? this.show() : this.hide();
}
}
}
NzTooltipBaseDirective.propDecorators = {
nzTitle: [{ type: Input }],
nzContent: [{ type: Input }],
nzTrigger: [{ type: Input }],
nzPlacement: [{ type: Input }],
nzMouseEnterDelay: [{ type: Input }],
nzMouseLeaveDelay: [{ type: Input }],
nzOverlayClassName: [{ type: Input }],
nzOverlayStyle: [{ type: Input }],
nzVisible: [{ type: Input }],
nzVisibleChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
NzTooltipBaseDirective.prototype.directiveNameTitle;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificTitle;
/** @type {?} */
NzTooltipBaseDirective.prototype.directiveNameContent;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificContent;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificTrigger;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificPlacement;
/** @type {?} */
NzTooltipBaseDirective.prototype.tooltipRef;
/**
* @deprecated 9.0.0. This is deprecated and going to be removed in 9.0.0.
* Please use a more specific API. Like `nzTooltipTitle`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzTitle;
/**
* @deprecated 9.0.0. This is deprecated and going to be removed in 9.0.0.
* Please use a more specific API. Like `nzPopoverContent`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzContent;
/**
* @deprecated 9.0.0. This is deprecated and going to be removed in 9.0.0.
* Please use a more specific API. Like `nzTooltipTrigger`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzTrigger;
/**
* @deprecated 9.0.0. This is deprecated and going to be removed in 9.0.0.
* Please use a more specific API. Like `nzTooltipPlacement`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzPlacement;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzMouseEnterDelay;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzMouseLeaveDelay;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzOverlayClassName;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzOverlayStyle;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzVisible;
/**
* For create tooltip dynamically. This should be override for each different component.
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.componentFactory;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.needProxyProperties;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzVisibleChange;
/** @type {?} */
NzTooltipBaseDirective.prototype.tooltip;
/** @type {?} */
NzTooltipBaseDirective.prototype.isTooltipComponentVisible;
/**
* @deprecated 9.0.0. Tooltips would always be dynamic in 9.0.0.
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.isDynamicTooltip;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.triggerUnlisteners;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.$destroy;
/**
* @type {?}
* @private
*/
NzTooltipBaseDirective.prototype.delayTimer;
/** @type {?} */
NzTooltipBaseDirective.prototype.elementRef;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.hostView;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.resolver;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.renderer;
/**
* @deprecated 9.0.0. This will always be `null`.
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype._tooltip;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.noAnimation;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzTooltipDirective extends NzTooltipBaseDirective {
/**
* @param {?} elementRef
* @param {?} hostView
* @param {?} resolver
* @param {?} renderer
* @param {?=} _tooltip
* @param {?=} noAnimation
*/
constructor(elementRef, hostView, resolver, renderer, _tooltip, noAnimation) {
super(elementRef, hostView, resolver, renderer, _tooltip, noAnimation);
this.componentFactory = this.resolver.resolveComponentFactory(NzToolTipComponent);
}
}
NzTooltipDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-tooltip]',
exportAs: 'nzTooltip',
host: {
'[class.ant-tooltip-open]': 'isTooltipComponentVisible'
}
},] }
];
/** @nocollapse */
NzTooltipDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: ViewContainerRef },
{ type: ComponentFactoryResolver },
{ type: Renderer2 },
{ type: NzTooltipBaseComponentLegacy, decorators: [{ type: Optional }] },
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
];
NzTooltipDirective.propDecorators = {
specificTitle: [{ type: Input, args: ['nzTooltipTitle',] }],
directiveNameTitle: [{ type: Input, args: ['nz-tooltip',] }],
specificTrigger: [{ type: Input, args: ['nzTooltipTrigger',] }],
specificPlacement: [{ type: Input, args: ['nzTooltipPlacement',] }]
};
if (false) {
/**
* The title that should have highest priority.
* @type {?}
*/
NzTooltipDirective.prototype.specificTitle;
/**
* Use the directive's name as the title that have priority in the second place.
* @type {?}
*/
NzTooltipDirective.prototype.directiveNameTitle;
/** @type {?} */
NzTooltipDirective.prototype.specificTrigger;
/** @type {?} */
NzTooltipDirective.prototype.specificPlacement;
/** @type {?} */
NzTooltipDirective.prototype.componentFactory;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzToolTipModule {
}
NzToolTipModule.decorators = [
{ type: NgModule, args: [{
declarations: [NzToolTipComponent, NzTooltipDirective],
exports: [NzToolTipComponent, NzTooltipDirective],
imports: [CommonModule, OverlayModule, NzAddOnModule, NzOverlayModule, NzNoAnimationModule],
entryComponents: [NzToolTipComponent]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { NzToolTipComponent, NzToolTipModule, NzTooltipBaseComponent, NzTooltipBaseComponentLegacy, NzTooltipBaseDirective, NzTooltipDirective };
//# sourceMappingURL=ng-zorro-antd-tooltip.js.map