UNPKG

@hxui/angular

Version:

* * *

160 lines 13.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Component, Input, ChangeDetectorRef } from '@angular/core'; import { Context, Visibility } from '../enums'; import { Subject } from 'rxjs'; var TooltipContentComponent = /** @class */ (function () { function TooltipContentComponent(_changeDetectionRef) { this._changeDetectionRef = _changeDetectionRef; this.placement = 'bottom'; this.context = Context.None; this.maxWidth = 200; /** * Enums to be used in the template * */ this.contextEnum = Context; this.visibilityEnum = Visibility; this.visibility = Visibility.Hidden; /** * Subject for notifying that the tooltip has been hidden from the view */ this._onHide = new Subject(); } /** * Shows the tooltip * @param delay Amount of milliseconds to the delay showing the tooltip. */ /** * Shows the tooltip * @param {?} delay Amount of milliseconds to the delay showing the tooltip. * @return {?} */ TooltipContentComponent.prototype.show = /** * Shows the tooltip * @param {?} delay Amount of milliseconds to the delay showing the tooltip. * @return {?} */ function (delay) { var _this = this; // Cancel the delayed hide if it is scheduled if (this._hideTimeoutId) { clearTimeout(this._hideTimeoutId); } this._showTimeoutId = window.setTimeout(function () { // Schedule for change detection incase the tooltip is used within a // component with OnPush change detection _this._changeDetectionRef.markForCheck(); _this.visibility = Visibility.Visible; }, delay); }; /** * Hide the tooltip after the provided delay in ms. * @param delay Amount of milliseconds to delay hiding the tooltip. */ /** * Hide the tooltip after the provided delay in ms. * @param {?} delay Amount of milliseconds to delay hiding the tooltip. * @return {?} */ TooltipContentComponent.prototype.hide = /** * Hide the tooltip after the provided delay in ms. * @param {?} delay Amount of milliseconds to delay hiding the tooltip. * @return {?} */ function (delay) { var _this = this; // Cancel the delayed show if it is scheduled if (this._showTimeoutId) { clearTimeout(this._showTimeoutId); } this._hideTimeoutId = window.setTimeout(function () { _this.visibility = Visibility.Hidden; _this._onHide.next(); }, delay); }; /** Returns an observable that notifies when the tooltip has been hidden from view. */ /** * Returns an observable that notifies when the tooltip has been hidden from view. * @return {?} */ TooltipContentComponent.prototype.afterHidden = /** * Returns an observable that notifies when the tooltip has been hidden from view. * @return {?} */ function () { return this._onHide.asObservable(); }; /** * @return {?} */ TooltipContentComponent.prototype.isVisible = /** * @return {?} */ function () { return this.visibility === Visibility.Visible; }; TooltipContentComponent.decorators = [ { type: Component, args: [{ selector: 'hx-tooltip-content, hxa-tooltip-content', template: "\n <div class=\"hxui-reset\">\n <div class=\"hx-tooltip is-{{ placement }}\"\n [class.is-active]='visibility === visibilityEnum.Visible'\n [class.is-success]=\"context === contextEnum.Success\"\n [class.is-warning]=\"context === contextEnum.Warning\"\n [class.is-danger]=\"context === contextEnum.Danger\"\n role=\"tooltip\">\n <div class=\"hx-tooltip-content\" [innerHtml]=\"content\" [style.max-width.px]=\"maxWidth\">\n </div>\n </div>\n </div>\n", styles: [ '.hxa-tooltip-panel { display:flex; position: absolute; pointer-events: auto; box-sizing: border-box; z-index: 1000; max-width: 100%; max-height: 100%;}', '.hx-tooltip.is-left, .hx-tooltip.is-left:before{ margin-right:.5rem; }', '.hx-tooltip.is-right, .hx-tooltip.is-right:before{ margin-left:.5rem; }', '.hx-tooltip.is-bottom, .hx-tooltip.is-bottom:before{ margin-top:.5rem; }', '.hx-tooltip.is-top, .hx-tooltip.is-top:before{ margin-bottom:.5rem; }' ] },] }, ]; /** @nocollapse */ TooltipContentComponent.ctorParameters = function () { return [ { type: ChangeDetectorRef } ]; }; TooltipContentComponent.propDecorators = { content: [{ type: Input }], placement: [{ type: Input }], context: [{ type: Input }], maxWidth: [{ type: Input }] }; return TooltipContentComponent; }()); export { TooltipContentComponent }; if (false) { /** @type {?} */ TooltipContentComponent.prototype.content; /** @type {?} */ TooltipContentComponent.prototype.placement; /** @type {?} */ TooltipContentComponent.prototype.context; /** @type {?} */ TooltipContentComponent.prototype.maxWidth; /** * Enums to be used in the template * * @type {?} */ TooltipContentComponent.prototype.contextEnum; /** @type {?} */ TooltipContentComponent.prototype.visibilityEnum; /** @type {?} */ TooltipContentComponent.prototype.visibility; /** * Subject for notifying that the tooltip has been hidden from the view * @type {?} */ TooltipContentComponent.prototype._onHide; /** * The timeout ID of any current timer set to show the tooltip * @type {?} */ TooltipContentComponent.prototype._showTimeoutId; /** * The timeout ID of any current timer set to hide the tooltip * @type {?} */ TooltipContentComponent.prototype._hideTimeoutId; /** @type {?} */ TooltipContentComponent.prototype._changeDetectionRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoeHVpL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdG9vbHRpcC90b29sdGlwLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV6QztJQW9ERSxpQ0FBb0IsbUJBQXNDO1FBQXRDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBbUI7UUF2QjFELGNBQVMsR0FBd0MsUUFBUSxDQUFDO1FBRzFELFlBQU8sR0FBWSxPQUFPLENBQUMsSUFBSSxDQUFDO1FBR2hDLGFBQVEsR0FBVyxHQUFHLENBQUM7Ozs7UUFHdkIsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxVQUFVLENBQUM7UUFFNUIsZUFBVSxHQUFlLFVBQVUsQ0FBQyxNQUFNLENBQUM7Ozs7UUFHMUIsWUFBTyxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBUU0sQ0FBQztJQUc5RDs7O09BR0c7Ozs7OztJQUNILHNDQUFJOzs7OztJQUFKLFVBQUssS0FBYTtRQUFsQixpQkFXQztRQVZDLDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN0QyxvRUFBb0U7WUFDcEUseUNBQXlDO1lBQ3pDLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QyxLQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDdkMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRzs7Ozs7O0lBQ0gsc0NBQUk7Ozs7O0lBQUosVUFBSyxLQUFhO1FBQWxCLGlCQVVDO1FBVEMsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ3RDLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxLQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxzRkFBc0Y7Ozs7O0lBQ3RGLDZDQUFXOzs7O0lBQVg7UUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7OztJQUVELDJDQUFTOzs7SUFBVDtRQUNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7O2dCQS9GRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztvQkFDbkQsUUFBUSxFQUFFLHdpQkFZWDtvQkFDQyxNQUFNLEVBQUU7d0JBQ04seUpBQXlKO3dCQUN6Six3RUFBd0U7d0JBQ3hFLHlFQUF5RTt3QkFDekUsMEVBQTBFO3dCQUMxRSx1RUFBdUU7cUJBQ3hFO2lCQUNGOzs7O2dCQTNCQyxpQkFBaUI7OzswQkE4QmhCLEtBQUs7NEJBR0wsS0FBSzswQkFHTCxLQUFLOzJCQUdMLEtBQUs7O0lBK0RSLDhCQUFDO0NBQUEsQUFqR0QsSUFpR0M7U0ExRVksdUJBQXVCOzs7SUFFbEMsMENBQ2dCOztJQUVoQiw0Q0FDMEQ7O0lBRTFELDBDQUNnQzs7SUFFaEMsMkNBQ3VCOzs7OztJQUd2Qiw4Q0FBc0I7O0lBQ3RCLGlEQUE0Qjs7SUFFNUIsNkNBQTJDOzs7OztJQUczQywwQ0FBdUQ7Ozs7O0lBR3ZELGlEQUErQjs7Ozs7SUFHL0IsaURBQStCOztJQUVuQixzREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRleHQsIFZpc2liaWxpdHl9IGZyb20gJy4uL2VudW1zJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaHgtdG9vbHRpcC1jb250ZW50LCBoeGEtdG9vbHRpcC1jb250ZW50JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaHh1aS1yZXNldFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoeC10b29sdGlwIGlzLXt7IHBsYWNlbWVudCB9fVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPSd2aXNpYmlsaXR5ID09PSB2aXNpYmlsaXR5RW51bS5WaXNpYmxlJ1xyXG4gICAgICAgICAgICBbY2xhc3MuaXMtc3VjY2Vzc109XCJjb250ZXh0ID09PSBjb250ZXh0RW51bS5TdWNjZXNzXCJcclxuICAgICAgICAgICAgW2NsYXNzLmlzLXdhcm5pbmddPVwiY29udGV4dCA9PT0gY29udGV4dEVudW0uV2FybmluZ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1kYW5nZXJdPVwiY29udGV4dCA9PT0gY29udGV4dEVudW0uRGFuZ2VyXCJcclxuICAgICAgICAgICAgcm9sZT1cInRvb2x0aXBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImh4LXRvb2x0aXAtY29udGVudFwiIFtpbm5lckh0bWxdPVwiY29udGVudFwiIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwibWF4V2lkdGhcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5gLFxyXG4gIHN0eWxlczogW1xyXG4gICAgJy5oeGEtdG9vbHRpcC1wYW5lbCB7IGRpc3BsYXk6ZmxleDsgcG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogYXV0bzsgYm94LXNpemluZzogYm9yZGVyLWJveDsgei1pbmRleDogMTAwMDsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiAxMDAlO30nLFxyXG4gICAgJy5oeC10b29sdGlwLmlzLWxlZnQsIC5oeC10b29sdGlwLmlzLWxlZnQ6YmVmb3JleyBtYXJnaW4tcmlnaHQ6LjVyZW07IH0nLFxyXG4gICAgJy5oeC10b29sdGlwLmlzLXJpZ2h0LCAuaHgtdG9vbHRpcC5pcy1yaWdodDpiZWZvcmV7IG1hcmdpbi1sZWZ0Oi41cmVtOyB9JyxcclxuICAgICcuaHgtdG9vbHRpcC5pcy1ib3R0b20sIC5oeC10b29sdGlwLmlzLWJvdHRvbTpiZWZvcmV7IG1hcmdpbi10b3A6LjVyZW07IH0nLFxyXG4gICAgJy5oeC10b29sdGlwLmlzLXRvcCwgLmh4LXRvb2x0aXAuaXMtdG9wOmJlZm9yZXsgbWFyZ2luLWJvdHRvbTouNXJlbTsgfSdcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29udGVudENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGVudDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYWNlbWVudDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgPSAnYm90dG9tJztcclxuXHJcbiAgQElucHV0KClcclxuICBjb250ZXh0OiBDb250ZXh0ID0gQ29udGV4dC5Ob25lO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1heFdpZHRoOiBudW1iZXIgPSAyMDA7XHJcblxyXG4gIC8qKiBFbnVtcyB0byBiZSB1c2VkIGluIHRoZSB0ZW1wbGF0ZSAqKi9cclxuICBjb250ZXh0RW51bSA9IENvbnRleHQ7XHJcbiAgdmlzaWJpbGl0eUVudW0gPSBWaXNpYmlsaXR5O1xyXG5cclxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5ID0gVmlzaWJpbGl0eS5IaWRkZW47XHJcblxyXG4gIC8qKiBTdWJqZWN0IGZvciBub3RpZnlpbmcgdGhhdCB0aGUgdG9vbHRpcCBoYXMgYmVlbiBoaWRkZW4gZnJvbSB0aGUgdmlldyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uSGlkZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqIFRoZSB0aW1lb3V0IElEIG9mIGFueSBjdXJyZW50IHRpbWVyIHNldCB0byBzaG93IHRoZSB0b29sdGlwICovXHJcbiAgcHJpdmF0ZSBfc2hvd1RpbWVvdXRJZDogbnVtYmVyO1xyXG5cclxuICAvKiogVGhlIHRpbWVvdXQgSUQgb2YgYW55IGN1cnJlbnQgdGltZXIgc2V0IHRvIGhpZGUgdGhlIHRvb2x0aXAgKi9cclxuICBwcml2YXRlIF9oaWRlVGltZW91dElkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdGlvblJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgdG9vbHRpcFxyXG4gICAqIEBwYXJhbSBkZWxheSBBbW91bnQgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBkZWxheSBzaG93aW5nIHRoZSB0b29sdGlwLlxyXG4gICAqL1xyXG4gIHNob3coZGVsYXk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy8gQ2FuY2VsIHRoZSBkZWxheWVkIGhpZGUgaWYgaXQgaXMgc2NoZWR1bGVkXHJcbiAgICBpZiAodGhpcy5faGlkZVRpbWVvdXRJZCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5faGlkZVRpbWVvdXRJZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zaG93VGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBTY2hlZHVsZSBmb3IgY2hhbmdlIGRldGVjdGlvbiBpbmNhc2UgdGhlIHRvb2x0aXAgaXMgdXNlZCB3aXRoaW4gYVxyXG4gICAgICAvLyBjb21wb25lbnQgd2l0aCBPblB1c2ggY2hhbmdlIGRldGVjdGlvblxyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rpb25SZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIHRoaXMudmlzaWJpbGl0eSA9IFZpc2liaWxpdHkuVmlzaWJsZTtcclxuICAgIH0sIGRlbGF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhpZGUgdGhlIHRvb2x0aXAgYWZ0ZXIgdGhlIHByb3ZpZGVkIGRlbGF5IGluIG1zLlxyXG4gICAqIEBwYXJhbSBkZWxheSBBbW91bnQgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGhpZGluZyB0aGUgdG9vbHRpcC5cclxuICAgKi9cclxuICBoaWRlKGRlbGF5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIC8vIENhbmNlbCB0aGUgZGVsYXllZCBzaG93IGlmIGl0IGlzIHNjaGVkdWxlZFxyXG4gICAgaWYgKHRoaXMuX3Nob3dUaW1lb3V0SWQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Nob3dUaW1lb3V0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hpZGVUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudmlzaWJpbGl0eSA9IFZpc2liaWxpdHkuSGlkZGVuO1xyXG4gICAgICB0aGlzLl9vbkhpZGUubmV4dCgpO1xyXG4gICAgfSwgZGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5vdGlmaWVzIHdoZW4gdGhlIHRvb2x0aXAgaGFzIGJlZW4gaGlkZGVuIGZyb20gdmlldy4gKi9cclxuICBhZnRlckhpZGRlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkhpZGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBpc1Zpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52aXNpYmlsaXR5ID09PSBWaXNpYmlsaXR5LlZpc2libGU7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=