ui.tooltip.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * DevExtreme (ui/tooltip/ui.tooltip.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var $ = require("../../core/renderer");
  11. var Tooltip = require("./tooltip");
  12. var extend = require("../../core/utils/extend").extend;
  13. var Deferred = require("../../core/utils/deferred").Deferred;
  14. var viewPortUtils = require("../../core/utils/view_port");
  15. var tooltip = null;
  16. var removeTooltipElement = null;
  17. var createTooltip = function(options) {
  18. options = extend({
  19. position: "top"
  20. }, options);
  21. var content = options.content;
  22. delete options.content;
  23. var $tooltip = $("<div>").html(content).appendTo(viewPortUtils.value());
  24. removeTooltipElement = function() {
  25. $tooltip.remove()
  26. };
  27. tooltip = new Tooltip($tooltip, options)
  28. };
  29. var removeTooltip = function() {
  30. if (!tooltip) {
  31. return
  32. }
  33. removeTooltipElement();
  34. tooltip = null
  35. };
  36. exports.show = function(options) {
  37. removeTooltip();
  38. createTooltip(options);
  39. return tooltip.show()
  40. };
  41. exports.hide = function() {
  42. if (!tooltip) {
  43. return (new Deferred).resolve()
  44. }
  45. return tooltip.hide().done(removeTooltip).promise()
  46. };