ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1,070 lines (1,058 loc) • 36.9 kB
JavaScript
import { __spread, __extends } from 'tslib';
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
*/
var NzTooltipBaseComponent = /** @class */ (function () {
function NzTooltipBaseComponent(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 = __spread(DEFAULT_TOOLTIP_POSITIONS);
this._placement = 'top';
this._trigger = 'hover';
}
Object.defineProperty(NzTooltipBaseComponent.prototype, "content", {
get: /**
* @return {?}
*/
function () {
return this.nzContent !== undefined ? this.nzContent : this.nzContentTemplate;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseComponent.prototype, "title", {
get: /**
* @return {?}
*/
function () {
return this.nzTitle !== undefined ? this.nzTitle : this.nzTitleTemplate;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.show = /**
* @return {?}
*/
function () {
if (this.nzVisible) {
return;
}
if (!this.isTitleEmpty() || !this.isContentEmpty()) {
this.nzVisible = true;
this.nzVisibleChange.emit(true);
this.cdr.detectChanges();
}
};
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.hide = /**
* @return {?}
*/
function () {
if (!this.nzVisible) {
return;
}
this.nzVisible = false;
this.nzVisibleChange.emit(false);
this.cdr.detectChanges();
};
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.updateByDirective = /**
* @return {?}
*/
function () {
var _this = this;
this.setClassMap();
this.cdr.detectChanges();
Promise.resolve().then((/**
* @return {?}
*/
function () {
_this.updatePosition();
}));
};
/**
* Force the component to update its position.
*/
/**
* Force the component to update its position.
* @return {?}
*/
NzTooltipBaseComponent.prototype.updatePosition = /**
* Force the component to update its position.
* @return {?}
*/
function () {
if (this.origin && this.overlay && this.overlay.overlayRef) {
this.overlay.overlayRef.updatePosition();
}
};
/**
* @param {?} position
* @return {?}
*/
NzTooltipBaseComponent.prototype.onPositionChange = /**
* @param {?} position
* @return {?}
*/
function (position) {
this._placement = (/** @type {?} */ (getPlacementName(position)));
this.setClassMap();
this.cdr.detectChanges();
};
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.setClassMap = /**
* @return {?}
*/
function () {
var _a;
this._classMap = (_a = {},
_a[this.nzOverlayClassName] = true,
_a[this._prefix + "-" + this._placement] = true,
_a);
};
/**
* @param {?} origin
* @return {?}
*/
NzTooltipBaseComponent.prototype.setOverlayOrigin = /**
* @param {?} origin
* @return {?}
*/
function (origin) {
this.origin = origin;
this.cdr.markForCheck();
};
/**
* @private
* @return {?}
*/
NzTooltipBaseComponent.prototype.isTitleEmpty = /**
* @private
* @return {?}
*/
function () {
return this.title instanceof TemplateRef ? false : this.title === '' || !isNotNil(this.title);
};
/**
* @private
* @return {?}
*/
NzTooltipBaseComponent.prototype.isContentEmpty = /**
* @private
* @return {?}
*/
function () {
return this.content instanceof TemplateRef ? false : this.content === '' || !isNotNil(this.content);
};
NzTooltipBaseComponent.propDecorators = {
nzVisibleChange: [{ type: Output }]
};
return NzTooltipBaseComponent;
}());
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>
* ```
*/
var NzTooltipBaseComponentLegacy = /** @class */ (function (_super) {
__extends(NzTooltipBaseComponentLegacy, _super);
function NzTooltipBaseComponentLegacy(cdr, noAnimation) {
var _this = _super.call(this, cdr, noAnimation) || this;
_this.noAnimation = noAnimation;
_this.nzOverlayClassName = '';
_this.nzOverlayStyle = {};
_this.nzMouseEnterDelay = 0.15; // second
// second
_this.nzMouseLeaveDelay = 0.1; // second
_this.nzVisibleChange = new EventEmitter();
return _this;
}
Object.defineProperty(NzTooltipBaseComponentLegacy.prototype, "nzPlacement", {
get: /**
* @return {?}
*/
function () {
return this._placement;
},
// TODO: placement logic should be removed into `NzTooltipBaseDirective` once this component is removed.
set:
// second
// TODO: placement logic should be removed into `NzTooltipBaseDirective` once this component is removed.
/**
* @param {?} value
* @return {?}
*/
function (value) {
if (value !== this._placement) {
this._placement = value;
this._positions = __spread([POSITION_MAP[this.nzPlacement]], this._positions);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseComponentLegacy.prototype, "nzVisible", {
get: /**
* @return {?}
*/
function () {
return this._visible;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var visible = toBoolean(value);
if (this._visible !== visible) {
this._visible = visible;
this.nzVisibleChange.emit(visible);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseComponentLegacy.prototype, "nzTrigger", {
get: /**
* @return {?}
*/
function () {
return this._trigger;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._trigger = value;
this._hasBackdrop = this._trigger === 'click';
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzTooltipBaseComponentLegacy.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
var _this = this;
Promise.resolve().then((/**
* @return {?}
*/
function () {
_this.updatePosition();
}));
};
/** @nocollapse */
NzTooltipBaseComponentLegacy.ctorParameters = function () { return [
{ 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 }]
};
return NzTooltipBaseComponentLegacy;
}(NzTooltipBaseComponent));
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
*/
var NzToolTipComponent = /** @class */ (function (_super) {
__extends(NzToolTipComponent, _super);
function NzToolTipComponent(cdr, noAnimation) {
var _this = _super.call(this, cdr) || this;
_this.noAnimation = noAnimation;
return _this;
}
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: ["\n .ant-tooltip {\n position: relative;\n }\n "]
}] }
];
/** @nocollapse */
NzToolTipComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef },
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
]; };
NzToolTipComponent.propDecorators = {
nzTitle: [{ type: Input }],
nzTitleTemplate: [{ type: ContentChild, args: ['nzTemplate', { static: true },] }]
};
return NzToolTipComponent;
}(NzTooltipBaseComponentLegacy));
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
*/
var NzTooltipBaseDirective = /** @class */ (function () {
function NzTooltipBaseDirective(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();
}
Object.defineProperty(NzTooltipBaseDirective.prototype, "title", {
/**
* This true title that would be used in other parts on this component.
*/
get: /**
* This true title that would be used in other parts on this component.
* @protected
* @return {?}
*/
function () {
return this.specificTitle || this.directiveNameTitle || this.nzTitle;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "content", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificContent || this.directiveNameContent || this.nzContent;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "placement", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificPlacement || this.nzPlacement;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "trigger", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificTrigger || this.nzTrigger;
},
enumerable: true,
configurable: true
});
/**
* @param {?} changes
* @return {?}
*/
NzTooltipBaseDirective.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (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 {?}
*/
NzTooltipBaseDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
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 {?}
*/
function (visible) {
_this.isTooltipComponentVisible = visible;
_this.nzVisibleChange.emit(visible);
}));
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
this.registerTriggers();
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.$destroy.next();
this.$destroy.complete();
if (this.tooltipRef) {
this.tooltipRef.destroy();
}
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.show = /**
* @return {?}
*/
function () {
this.tooltip.show();
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.hide = /**
* @return {?}
*/
function () {
this.tooltip.hide();
};
/**
* Force the component to update its position.
*/
/**
* Force the component to update its position.
* @return {?}
*/
NzTooltipBaseDirective.prototype.updatePosition = /**
* Force the component to update its position.
* @return {?}
*/
function () {
if (this.tooltip && this.isDynamicTooltip) {
this.tooltip.updatePosition();
}
};
/**
* Create a dynamic tooltip component. This method can be override.
*/
/**
* Create a dynamic tooltip component. This method can be override.
* @protected
* @return {?}
*/
NzTooltipBaseDirective.prototype.createDynamicTooltipComponent = /**
* Create a dynamic tooltip component. This method can be override.
* @protected
* @return {?}
*/
function () {
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 {?}
*/
NzTooltipBaseDirective.prototype.registerTriggers = /**
* @protected
* @return {?}
*/
function () {
var _this = this;
// 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 {?} */
var el = this.elementRef.nativeElement;
/** @type {?} */
var trigger = this.isDynamicTooltip ? this.trigger : this.tooltip.nzTrigger;
if (trigger === 'hover') {
/** @type {?} */
var overlayElement_1;
this.triggerUnlisteners.push(this.renderer.listen(el, 'mouseenter', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(true, true, _this.tooltip.nzMouseEnterDelay);
})));
this.triggerUnlisteners.push(this.renderer.listen(el, 'mouseleave', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(true, false, _this.tooltip.nzMouseLeaveDelay);
if (_this.tooltip.overlay.overlayRef && !overlayElement_1) {
overlayElement_1 = _this.tooltip.overlay.overlayRef.overlayElement;
_this.triggerUnlisteners.push(_this.renderer.listen(overlayElement_1, 'mouseenter', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(false, true);
})));
_this.triggerUnlisteners.push(_this.renderer.listen(overlayElement_1, 'mouseleave', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(false, false);
})));
}
})));
}
else if (trigger === 'focus') {
this.triggerUnlisteners.push(this.renderer.listen(el, 'focus', (/**
* @return {?}
*/
function () { return _this.show(); })));
this.triggerUnlisteners.push(this.renderer.listen(el, 'blur', (/**
* @return {?}
*/
function () { return _this.hide(); })));
}
else if (trigger === 'click') {
this.triggerUnlisteners.push(this.renderer.listen(el, 'click', (/**
* @param {?} e
* @return {?}
*/
function (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.
*/
/**
* Sync changed properties to the component and trigger change detection in that component.
* @protected
* @param {?} propertiesOrChanges
* @return {?}
*/
NzTooltipBaseDirective.prototype.updateChangedProperties = /**
* Sync changed properties to the component and trigger change detection in that component.
* @protected
* @param {?} propertiesOrChanges
* @return {?}
*/
function (propertiesOrChanges) {
var _this = this;
/** @type {?} */
var isArray = Array.isArray(propertiesOrChanges);
/** @type {?} */
var keys_ = isArray ? ((/** @type {?} */ (propertiesOrChanges))) : Object.keys(propertiesOrChanges);
// tslint:disable-next-line no-any
keys_.forEach((/**
* @param {?} property
* @return {?}
*/
function (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 {?} */
var 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
// tslint:disable-next-line no-any
/**
* @private
* @param {?} key
* @param {?} value
* @return {?}
*/
NzTooltipBaseDirective.prototype.updateComponentValue =
// tslint:disable-next-line no-any
/**
* @private
* @param {?} key
* @param {?} value
* @return {?}
*/
function (key, value) {
if (isNotNil(value)) {
// @ts-ignore
this.tooltip[key] = value;
}
};
/**
* @private
* @param {?} isOrigin
* @param {?} isEnter
* @param {?=} delay
* @return {?}
*/
NzTooltipBaseDirective.prototype.delayEnterLeave = /**
* @private
* @param {?} isOrigin
* @param {?} isEnter
* @param {?=} delay
* @return {?}
*/
function (isOrigin, isEnter, delay) {
var _this = this;
if (delay === void 0) { delay = -1; }
if (this.delayTimer) {
clearTimeout(this.delayTimer);
this.delayTimer = undefined;
}
else if (delay > 0) {
this.delayTimer = setTimeout((/**
* @return {?}
*/
function () {
_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 }]
};
return NzTooltipBaseDirective;
}());
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
*/
var NzTooltipDirective = /** @class */ (function (_super) {
__extends(NzTooltipDirective, _super);
function NzTooltipDirective(elementRef, hostView, resolver, renderer, _tooltip, noAnimation) {
var _this = _super.call(this, elementRef, hostView, resolver, renderer, _tooltip, noAnimation) || this;
_this.componentFactory = _this.resolver.resolveComponentFactory(NzToolTipComponent);
return _this;
}
NzTooltipDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-tooltip]',
exportAs: 'nzTooltip',
host: {
'[class.ant-tooltip-open]': 'isTooltipComponentVisible'
}
},] }
];
/** @nocollapse */
NzTooltipDirective.ctorParameters = function () { return [
{ 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',] }]
};
return NzTooltipDirective;
}(NzTooltipBaseDirective));
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
*/
var NzToolTipModule = /** @class */ (function () {
function NzToolTipModule() {
}
NzToolTipModule.decorators = [
{ type: NgModule, args: [{
declarations: [NzToolTipComponent, NzTooltipDirective],
exports: [NzToolTipComponent, NzTooltipDirective],
imports: [CommonModule, OverlayModule, NzAddOnModule, NzOverlayModule, NzNoAnimationModule],
entryComponents: [NzToolTipComponent]
},] }
];
return NzToolTipModule;
}());
/**
* @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