UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

58 lines (57 loc) 1.62 kB
/** * DevExtreme (esm/__internal/ui/tooltip/tooltip.js) * Version: 26.1.4 * Build date: Fri Jul 24 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import $ from "../../../core/renderer"; import { Deferred } from "../../../core/utils/deferred"; import { value as viewPort } from "../../../core/utils/view_port"; import Tooltip from "../../../ui/tooltip"; let tooltip = null; let clean = null; const createTooltip = configuration => { var _$tooltip; const options = Object.assign({ position: "top" }, configuration); const { content: content } = options; delete options.content; let $tooltip = $("<div>").html(content).appendTo(viewPort()); tooltip = new Tooltip(null === (_$tooltip = $tooltip) || void 0 === _$tooltip ? void 0 : _$tooltip.get(0), options); clean = () => { var _$tooltip2; null === (_$tooltip2 = $tooltip) || void 0 === _$tooltip2 || _$tooltip2.remove(); $tooltip = null; tooltip = null } }; const removeTooltip = () => { var _clean; if (!tooltip) { return } null === (_clean = clean) || void 0 === _clean || _clean() }; export function show(options) { removeTooltip(); createTooltip(options); if (!tooltip) { return Deferred().resolve(false).promise() } return tooltip.show() } export function hide() { if (!tooltip) { return Deferred().resolve(false).promise() } return tooltip.hide().done(removeTooltip).promise() }