ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1,139 lines (1,132 loc) • 39.5 kB
JavaScript
import { __read, __spread, __extends } from 'tslib';
import { EventEmitter, Directive, ElementRef, ViewContainerRef, ComponentFactoryResolver, Renderer2, Input, Output, ChangeDetectorRef, ViewChild, TemplateRef, Host, Optional, Component, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
import { zoomBigMotion } from 'ng-zorro-antd/core/animation';
import { NzNoAnimationDirective, NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';
import { OverlayModule } from '@angular/cdk/overlay';
import { warnDeprecation } from 'ng-zorro-antd/core/logger';
import { DEFAULT_TOOLTIP_POSITIONS, POSITION_MAP, getPlacementName, NzOverlayModule } from 'ng-zorro-antd/core/overlay';
import { toBoolean, isNotNil } from 'ng-zorro-antd/core/util';
import { Subject } from 'rxjs';
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
/**
* @fileoverview added by tsickle
* Generated from: base.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
var NzTooltipBaseDirective = /** @class */ (function () {
function NzTooltipBaseDirective(elementRef, hostView, resolver, renderer, noAnimation) {
this.elementRef = elementRef;
this.hostView = hostView;
this.resolver = resolver;
this.renderer = renderer;
this.noAnimation = noAnimation;
this.specificVisibleChange = new EventEmitter();
/**
* @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
* Please use a more specific API. Like `nzTooltipTrigger`.
*/
this.nzTrigger = 'hover';
/**
* @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
* Please use a more specific API. Like `nzTooltipPlacement`.
*/
this.nzPlacement = 'top';
this.visible = false;
this.needProxyProperties = ['noAnimation'];
this.nzVisibleChange = new EventEmitter();
this.destroy$ = new Subject();
this.triggerDisposables = [];
}
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 || null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "content", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificContent || this.directiveNameContent || this.nzContent || null;
},
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 () {
// NzTooltipTrigger can be null.
return typeof this.specificTrigger !== 'undefined' ? this.specificTrigger : this.nzTrigger;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "isVisible", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificVisible || this.nzVisible || false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "mouseEnterDelay", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificMouseEnterDelay || this.nzMouseEnterDelay || 0.15;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "mouseLeaveDelay", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificMouseLeaveDelay || this.nzMouseLeaveDelay || 0.1;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "overlayClassName", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificOverlayClassName || this.nzOverlayClassName || null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseDirective.prototype, "overlayStyle", {
get: /**
* @protected
* @return {?}
*/
function () {
return this.specificOverlayStyle || this.nzOverlayStyle || null;
},
enumerable: true,
configurable: true
});
/**
* @param {?} isNeeded
* @param {?} property
* @param {?} newProperty
* @param {?=} comp
* @param {?=} shared
* @return {?}
*/
NzTooltipBaseDirective.prototype.warnDeprecationIfNeeded = /**
* @param {?} isNeeded
* @param {?} property
* @param {?} newProperty
* @param {?=} comp
* @param {?=} shared
* @return {?}
*/
function (isNeeded, property, newProperty, comp, shared) {
if (comp === void 0) { comp = 'nz-tooltip'; }
if (shared === void 0) { shared = true; }
if (isNeeded) {
/** @type {?} */
var message = "'" + property + "' of '" + comp + "' is deprecated and will be removed in 10.0.0.\n Please use '" + newProperty + "' instead.";
if (shared) {
message = message + " The same with 'nz-popover' and 'nz-popconfirm'.";
}
warnDeprecation(message);
}
};
/**
* @param {?} changes
* @return {?}
*/
NzTooltipBaseDirective.prototype.warnDeprecationByChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
// warn deprecated things when specific property is not given
this.warnDeprecationIfNeeded(changes.nzTitle && !this.specificTitle && !this.directiveNameTitle, 'nzTitle', 'nzTooltipTitle');
this.warnDeprecationIfNeeded(changes.nzContent && !this.specificContent, 'nzContent', 'nzPopoverContent', 'nz-popover', false);
this.warnDeprecationIfNeeded(changes.nzPlacement && !this.specificPlacement, 'nzPlacement', 'nzTooltipPlacement');
this.warnDeprecationIfNeeded(changes.nzTrigger && !this.specificTrigger, 'nzTrigger', 'nzTooltipTrigger');
this.warnDeprecationIfNeeded(changes.nzVisible && !this.specificVisible, 'nzVisible', 'nzTooltipVisible');
this.warnDeprecationIfNeeded(changes.nzMouseEnterDelay && !this.specificMouseEnterDelay, 'nzMouseEnterDelay', 'nzTooltipMouseEnterDelay');
this.warnDeprecationIfNeeded(changes.nzMouseLeaveDelay && !this.specificMouseLeaveDelay, 'nzMouseLeaveDelay', 'nzTooltipMouseLeaveDelay');
this.warnDeprecationIfNeeded(changes.nzOverlayClassName && !this.specificOverlayClassName, 'nzOverlayClassName', 'nzTooltipClassName');
this.warnDeprecationIfNeeded(changes.nzOverlayStyle && !this.specificOverlayStyle, 'nzOverlayStyle', 'nzTooltipOverlayStyle');
};
/**
* @param {?} changes
* @return {?}
*/
NzTooltipBaseDirective.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var nzTrigger = changes.nzTrigger, specificTrigger = changes.specificTrigger;
/** @type {?} */
var trigger = specificTrigger || nzTrigger;
if (trigger && !trigger.isFirstChange()) {
this.registerTriggers();
}
if (this.component) {
this.updateChangedProperties(changes);
}
this.warnDeprecationByChanges(changes);
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
this.createComponent();
this.registerTriggers();
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.destroy$.next();
this.destroy$.complete();
// Clear toggling timer. Issue #3875 #4317 #4386
this.clearTogglingTimer();
this.removeTriggerListeners();
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.show = /**
* @return {?}
*/
function () {
var _a;
(_a = this.component) === null || _a === void 0 ? void 0 : _a.show();
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.hide = /**
* @return {?}
*/
function () {
var _a;
(_a = this.component) === null || _a === void 0 ? void 0 : _a.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.component) {
this.component.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.createComponent = /**
* Create a dynamic tooltip component. This method can be override.
* @protected
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var componentRef = this.hostView.createComponent(this.componentFactory);
this.component = componentRef.instance;
// Remove the component's DOM because it should be in the overlay container.
this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement), componentRef.location.nativeElement);
this.component.setOverlayOrigin({ elementRef: this.specificOrigin || this.elementRef });
this.updateChangedProperties(this.needProxyProperties);
this.component.nzVisibleChange.pipe(distinctUntilChanged(), takeUntil(this.destroy$)).subscribe((/**
* @param {?} visible
* @return {?}
*/
function (visible) {
_this.visible = visible;
_this.specificVisibleChange.emit(visible);
_this.nzVisibleChange.emit(visible);
}));
};
/**
* @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.trigger;
this.removeTriggerListeners();
if (trigger === 'hover') {
/** @type {?} */
var overlayElement_1;
this.triggerDisposables.push(this.renderer.listen(el, 'mouseenter', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(true, true, _this.mouseEnterDelay);
})));
this.triggerDisposables.push(this.renderer.listen(el, 'mouseleave', (/**
* @return {?}
*/
function () {
var _a;
_this.delayEnterLeave(true, false, _this.mouseLeaveDelay);
if (((_a = _this.component) === null || _a === void 0 ? void 0 : _a.overlay.overlayRef) && !overlayElement_1) {
overlayElement_1 = _this.component.overlay.overlayRef.overlayElement;
_this.triggerDisposables.push(_this.renderer.listen(overlayElement_1, 'mouseenter', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(false, true);
})));
_this.triggerDisposables.push(_this.renderer.listen(overlayElement_1, 'mouseleave', (/**
* @return {?}
*/
function () {
_this.delayEnterLeave(false, false);
})));
}
})));
}
else if (trigger === 'focus') {
this.triggerDisposables.push(this.renderer.listen(el, 'focus', (/**
* @return {?}
*/
function () { return _this.show(); })));
this.triggerDisposables.push(this.renderer.listen(el, 'blur', (/**
* @return {?}
*/
function () { return _this.hide(); })));
}
else if (trigger === 'click') {
this.triggerDisposables.push(this.renderer.listen(el, 'click', (/**
* @param {?} e
* @return {?}
*/
function (e) {
e.preventDefault();
_this.show();
})));
} // Else do nothing because user wants to control the visibility programmatically.
};
/**
* @param {?} changes
* @return {?}
*/
NzTooltipBaseDirective.prototype.updatePropertiesByChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var _this = this;
/** @type {?} */
var properties = {
specificTitle: ['nzTitle', this.title],
directiveNameTitle: ['nzTitle', this.title],
nzTitle: ['nzTitle', this.title],
specificContent: ['nzContent', this.content],
directiveNameContent: ['nzContent', this.content],
nzContent: ['nzContent', this.content],
specificTrigger: ['nzTrigger', this.trigger],
nzTrigger: ['nzTrigger', this.trigger],
specificPlacement: ['nzPlacement', this.placement],
nzPlacement: ['nzPlacement', this.placement],
specificVisible: ['nzVisible', this.isVisible],
nzVisible: ['nzVisible', this.isVisible],
specificMouseEnterDelay: ['nzMouseEnterDelay', this.mouseEnterDelay],
nzMouseEnterDelay: ['nzMouseEnterDelay', this.mouseEnterDelay],
specificMouseLeaveDelay: ['nzMouseLeaveDelay', this.mouseLeaveDelay],
nzMouseLeaveDelay: ['nzMouseLeaveDelay', this.mouseLeaveDelay],
specificOverlayClassName: ['nzOverlayClassName', this.overlayClassName],
nzOverlayClassName: ['nzOverlayClassName', this.overlayClassName],
specificOverlayStyle: ['nzOverlayStyle', this.overlayStyle],
nzOverlayStyle: ['nzOverlayStyle', this.overlayStyle]
};
/** @type {?} */
var keys = Object.keys(changes);
keys.forEach((/**
* @param {?} property
* @return {?}
*/
function (property) {
// @ts-ignore
if (properties[property]) {
// @ts-ignore
var _a = __read(properties[property], 2), name_1 = _a[0], value = _a[1];
_this.updateComponentValue(name_1, value);
}
}));
};
/**
* @return {?}
*/
NzTooltipBaseDirective.prototype.updatePropertiesByArray = /**
* @return {?}
*/
function () {
this.updateComponentValue('nzTitle', this.title);
this.updateComponentValue('nzContent', this.content);
this.updateComponentValue('nzPlacement', this.placement);
this.updateComponentValue('nzTrigger', this.trigger);
this.updateComponentValue('nzVisible', this.isVisible);
this.updateComponentValue('nzMouseEnterDelay', this.mouseEnterDelay);
this.updateComponentValue('nzMouseLeaveDelay', this.mouseLeaveDelay);
this.updateComponentValue('nzOverlayClassName', this.overlayClassName);
this.updateComponentValue('nzOverlayStyle', this.overlayStyle);
};
/**
* 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;
var _a;
/** @type {?} */
var isArray = Array.isArray(propertiesOrChanges);
/** @type {?} */
var keys = isArray ? ((/** @type {?} */ (propertiesOrChanges))) : Object.keys(propertiesOrChanges);
keys.forEach((/**
* @param {?} property
* @return {?}
*/
function (property) {
if (_this.needProxyProperties.indexOf(property) !== -1) {
// @ts-ignore
_this.updateComponentValue(property, _this[property]);
}
}));
if (isArray) {
this.updatePropertiesByArray();
}
else {
this.updatePropertiesByChanges((/** @type {?} */ (propertiesOrChanges)));
}
(_a = this.component) === null || _a === void 0 ? void 0 : _a.updateByDirective();
};
/**
* @private
* @param {?} key
* @param {?} value
* @return {?}
*/
NzTooltipBaseDirective.prototype.updateComponentValue = /**
* @private
* @param {?} key
* @param {?} value
* @return {?}
*/
function (key, value) {
if (typeof value !== 'undefined') {
// @ts-ignore
this.component[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) {
this.clearTogglingTimer();
}
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();
}
};
/**
* @private
* @return {?}
*/
NzTooltipBaseDirective.prototype.removeTriggerListeners = /**
* @private
* @return {?}
*/
function () {
this.triggerDisposables.forEach((/**
* @param {?} dispose
* @return {?}
*/
function (dispose) { return dispose(); }));
this.triggerDisposables.length = 0;
};
/**
* @private
* @return {?}
*/
NzTooltipBaseDirective.prototype.clearTogglingTimer = /**
* @private
* @return {?}
*/
function () {
if (this.delayTimer) {
clearTimeout(this.delayTimer);
this.delayTimer = undefined;
}
};
NzTooltipBaseDirective.decorators = [
{ type: Directive }
];
/** @nocollapse */
NzTooltipBaseDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: ViewContainerRef },
{ type: ComponentFactoryResolver },
{ type: Renderer2 },
{ type: NzNoAnimationDirective }
]; };
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.specificOrigin;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificVisible;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificMouseEnterDelay;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificMouseLeaveDelay;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificOverlayClassName;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificOverlayStyle;
/** @type {?} */
NzTooltipBaseDirective.prototype.specificVisibleChange;
/**
* @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
* Please use a more specific API. Like `nzTooltipTitle`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzTitle;
/**
* @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
* Please use a more specific API. Like `nzPopoverContent`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzContent;
/**
* @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
* Please use a more specific API. Like `nzTooltipTrigger`.
* @type {?}
*/
NzTooltipBaseDirective.prototype.nzTrigger;
/**
* @deprecated 10.0.0. This is deprecated and going to be removed in 10.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 {?} */
NzTooltipBaseDirective.prototype.visible;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.needProxyProperties;
/** @type {?} */
NzTooltipBaseDirective.prototype.nzVisibleChange;
/** @type {?} */
NzTooltipBaseDirective.prototype.component;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.destroy$;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.triggerDisposables;
/**
* @type {?}
* @private
*/
NzTooltipBaseDirective.prototype.delayTimer;
/** @type {?} */
NzTooltipBaseDirective.prototype.elementRef;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.hostView;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.resolver;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.renderer;
/**
* @type {?}
* @protected
*/
NzTooltipBaseDirective.prototype.noAnimation;
}
/**
* @abstract
*/
var NzTooltipBaseComponent = /** @class */ (function () {
function NzTooltipBaseComponent(cdr, noAnimation) {
this.cdr = cdr;
this.noAnimation = noAnimation;
this.nzVisibleChange = new Subject();
this.nzTitle = null;
this.nzContent = null;
this.nzOverlayStyle = {};
this._visible = false;
this._trigger = 'hover';
this.preferredPlacement = 'top';
this._classMap = {};
this._hasBackdrop = false;
this._prefix = 'ant-tooltip-placement';
this._positions = __spread(DEFAULT_TOOLTIP_POSITIONS);
}
Object.defineProperty(NzTooltipBaseComponent.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.next(visible);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzTooltipBaseComponent.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
});
Object.defineProperty(NzTooltipBaseComponent.prototype, "nzPlacement", {
get: /**
* @return {?}
*/
function () {
return this.preferredPlacement;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value !== this.preferredPlacement) {
this.preferredPlacement = value;
this._positions = __spread([POSITION_MAP[this.nzPlacement]], this._positions);
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.nzVisibleChange.complete();
};
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.show = /**
* @return {?}
*/
function () {
if (this.nzVisible) {
return;
}
if (!this.isEmpty()) {
this.nzVisible = true;
this.nzVisibleChange.next(true);
this.cdr.detectChanges();
}
};
/**
* @return {?}
*/
NzTooltipBaseComponent.prototype.hide = /**
* @return {?}
*/
function () {
if (!this.nzVisible) {
return;
}
this.nzVisible = false;
this.nzVisibleChange.next(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();
_this.updateVisibilityByTitle();
}));
};
/**
* 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.preferredPlacement = (/** @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.preferredPlacement] = true,
_a);
};
/**
* @param {?} origin
* @return {?}
*/
NzTooltipBaseComponent.prototype.setOverlayOrigin = /**
* @param {?} origin
* @return {?}
*/
function (origin) {
this.origin = origin;
this.cdr.markForCheck();
};
/**
* Hide the component while the content is empty.
*/
/**
* Hide the component while the content is empty.
* @private
* @return {?}
*/
NzTooltipBaseComponent.prototype.updateVisibilityByTitle = /**
* Hide the component while the content is empty.
* @private
* @return {?}
*/
function () {
if (this.isEmpty()) {
this.hide();
}
};
NzTooltipBaseComponent.decorators = [
{ type: Directive }
];
/** @nocollapse */
NzTooltipBaseComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef },
{ type: NzNoAnimationDirective }
]; };
NzTooltipBaseComponent.propDecorators = {
overlay: [{ type: ViewChild, args: ['overlay', { static: false },] }]
};
return NzTooltipBaseComponent;
}());
if (false) {
/** @type {?} */
NzTooltipBaseComponent.ngAcceptInputType_nzVisible;
/** @type {?} */
NzTooltipBaseComponent.prototype.overlay;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzVisibleChange;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzTitle;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzContent;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzOverlayClassName;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzOverlayStyle;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzMouseEnterDelay;
/** @type {?} */
NzTooltipBaseComponent.prototype.nzMouseLeaveDelay;
/** @type {?} */
NzTooltipBaseComponent.prototype._visible;
/**
* @type {?}
* @protected
*/
NzTooltipBaseComponent.prototype._trigger;
/** @type {?} */
NzTooltipBaseComponent.prototype.origin;
/** @type {?} */
NzTooltipBaseComponent.prototype.preferredPlacement;
/** @type {?} */
NzTooltipBaseComponent.prototype._classMap;
/** @type {?} */
NzTooltipBaseComponent.prototype._hasBackdrop;
/** @type {?} */
NzTooltipBaseComponent.prototype._prefix;
/** @type {?} */
NzTooltipBaseComponent.prototype._positions;
/** @type {?} */
NzTooltipBaseComponent.prototype.cdr;
/** @type {?} */
NzTooltipBaseComponent.prototype.noAnimation;
/**
* Empty component cannot be opened.
* @abstract
* @protected
* @return {?}
*/
NzTooltipBaseComponent.prototype.isEmpty = function () { };
}
/**
* @param {?} value
* @return {?}
*/
function isTooltipEmpty(value) {
return value instanceof TemplateRef ? false : value === '' || !isNotNil(value);
}
/**
* @fileoverview added by tsickle
* Generated from: tooltip.ts
* @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, noAnimation) {
var _this = _super.call(this, elementRef, hostView, resolver, renderer, noAnimation) || this;
// tslint:disable-next-line:no-output-rename
_this.specificVisibleChange = new EventEmitter();
_this.componentFactory = _this.resolver.resolveComponentFactory(NzToolTipComponent);
return _this;
}
NzTooltipDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-tooltip]',
exportAs: 'nzTooltip',
host: {
'[class.ant-tooltip-open]': 'visible'
}
},] }
];
/** @nocollapse */
NzTooltipDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: ViewContainerRef },
{ type: ComponentFactoryResolver },
{ type: Renderer2 },
{ 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',] }],
specificOrigin: [{ type: Input, args: ['nzTooltipOrigin',] }],
specificVisible: [{ type: Input, args: ['nzTooltipVisible',] }],
specificMouseEnterDelay: [{ type: Input, args: ['nzTooltipMouseEnterDelay',] }],
specificMouseLeaveDelay: [{ type: Input, args: ['nzTooltipMouseLeaveDelay',] }],
specificOverlayClassName: [{ type: Input, args: ['nzTooltipOverlayClassName',] }],
specificOverlayStyle: [{ type: Input, args: ['nzTooltipOverlayStyle',] }],
specificVisibleChange: [{ type: Output, args: ['nzTooltipVisibleChange',] }]
};
return NzTooltipDirective;
}(NzTooltipBaseDirective));
if (false) {
/** @type {?} */
NzTooltipDirective.prototype.specificTitle;
/** @type {?} */
NzTooltipDirective.prototype.directiveNameTitle;
/** @type {?} */
NzTooltipDirective.prototype.specificTrigger;
/** @type {?} */
NzTooltipDirective.prototype.specificPlacement;
/** @type {?} */
NzTooltipDirective.prototype.specificOrigin;
/** @type {?} */
NzTooltipDirective.prototype.specificVisible;
/** @type {?} */
NzTooltipDirective.prototype.specificMouseEnterDelay;
/** @type {?} */
NzTooltipDirective.prototype.specificMouseLeaveDelay;
/** @type {?} */
NzTooltipDirective.prototype.specificOverlayClassName;
/** @type {?} */
NzTooltipDirective.prototype.specificOverlayStyle;
/** @type {?} */
NzTooltipDirective.prototype.specificVisibleChange;
/** @type {?} */
NzTooltipDirective.prototype.componentFactory;
}
var NzToolTipComponent = /** @class */ (function (_super) {
__extends(NzToolTipComponent, _super);
function NzToolTipComponent(cdr, noAnimation) {
var _this = _super.call(this, cdr, noAnimation) || this;
_this.noAnimation = noAnimation;
_this.nzTitle = null;
return _this;
}
/**
* @protected
* @return {?}
*/
NzToolTipComponent.prototype.isEmpty = /**
* @protected
* @return {?}
*/
function () {
return isTooltipEmpty(this.nzTitle);
};
NzToolTipComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-tooltip',
exportAs: 'nzTooltipComponent',
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
animations: [zoomBigMotion],
template: "\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 >\n <div\n class=\"ant-tooltip\"\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\"></div>\n <div class=\"ant-tooltip-inner\">\n <ng-container *nzStringTemplateOutlet=\"nzTitle\">{{ nzTitle }}</ng-container>\n </div>\n </div>\n </div>\n </ng-template>\n ",
preserveWhitespaces: false
}] }
];
/** @nocollapse */
NzToolTipComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef },
{ type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] }
]; };
NzToolTipComponent.propDecorators = {
nzTitle: [{ type: Input }]
};
return NzToolTipComponent;
}(NzTooltipBaseComponent));
if (false) {
/** @type {?} */
NzToolTipComponent.prototype.nzTitle;
/** @type {?} */
NzToolTipComponent.prototype.noAnimation;
}
/**
* @fileoverview added by tsickle
* Generated from: tooltip.module.ts
* @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],
entryComponents: [NzToolTipComponent],
imports: [CommonModule, OverlayModule, NzOutletModule, NzOverlayModule, NzNoAnimationModule]
},] }
];
return NzToolTipModule;
}());
/**
* @fileoverview added by tsickle
* Generated from: public-api.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* Generated from: ng-zorro-antd-tooltip.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { NzToolTipComponent, NzToolTipModule, NzTooltipBaseComponent, NzTooltipBaseDirective, NzTooltipDirective, isTooltipEmpty };
//# sourceMappingURL=ng-zorro-antd-tooltip.js.map