Tooltip.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _extends2 = require('babel-runtime/helpers/extends');
  6. var _extends3 = _interopRequireDefault(_extends2);
  7. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  8. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  9. var _vueTypes = require('../_util/vue-types');
  10. var _vueTypes2 = _interopRequireDefault(_vueTypes);
  11. var _vcTrigger = require('../vc-trigger');
  12. var _vcTrigger2 = _interopRequireDefault(_vcTrigger);
  13. var _placements = require('./placements');
  14. var _Content = require('./Content');
  15. var _Content2 = _interopRequireDefault(_Content);
  16. var _propsUtil = require('../_util/props-util');
  17. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  18. function noop() {}
  19. exports['default'] = {
  20. props: {
  21. trigger: _vueTypes2['default'].any.def(['hover']),
  22. defaultVisible: _vueTypes2['default'].bool,
  23. visible: _vueTypes2['default'].bool,
  24. placement: _vueTypes2['default'].string.def('right'),
  25. transitionName: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].object]),
  26. animation: _vueTypes2['default'].any,
  27. afterVisibleChange: _vueTypes2['default'].func.def(function () {}),
  28. overlay: _vueTypes2['default'].any,
  29. overlayStyle: _vueTypes2['default'].object,
  30. overlayClassName: _vueTypes2['default'].string,
  31. prefixCls: _vueTypes2['default'].string.def('rc-tooltip'),
  32. mouseEnterDelay: _vueTypes2['default'].number.def(0),
  33. mouseLeaveDelay: _vueTypes2['default'].number.def(0.1),
  34. getTooltipContainer: _vueTypes2['default'].func,
  35. destroyTooltipOnHide: _vueTypes2['default'].bool.def(false),
  36. align: _vueTypes2['default'].object.def(function () {
  37. return {};
  38. }),
  39. arrowContent: _vueTypes2['default'].any.def(null),
  40. tipId: _vueTypes2['default'].string,
  41. builtinPlacements: _vueTypes2['default'].object
  42. },
  43. methods: {
  44. getPopupElement: function getPopupElement() {
  45. var h = this.$createElement;
  46. var _$props = this.$props,
  47. prefixCls = _$props.prefixCls,
  48. tipId = _$props.tipId;
  49. return [h(
  50. 'div',
  51. { 'class': prefixCls + '-arrow', key: 'arrow' },
  52. [(0, _propsUtil.getComponentFromProp)(this, 'arrowContent')]
  53. ), h(_Content2['default'], {
  54. key: 'content',
  55. attrs: { trigger: this.$refs.trigger,
  56. prefixCls: prefixCls,
  57. id: tipId,
  58. overlay: (0, _propsUtil.getComponentFromProp)(this, 'overlay')
  59. }
  60. })];
  61. },
  62. getPopupDomNode: function getPopupDomNode() {
  63. return this.$refs.trigger.getPopupDomNode();
  64. }
  65. },
  66. render: function render(h) {
  67. var _getOptionProps = (0, _propsUtil.getOptionProps)(this),
  68. overlayClassName = _getOptionProps.overlayClassName,
  69. trigger = _getOptionProps.trigger,
  70. mouseEnterDelay = _getOptionProps.mouseEnterDelay,
  71. mouseLeaveDelay = _getOptionProps.mouseLeaveDelay,
  72. overlayStyle = _getOptionProps.overlayStyle,
  73. prefixCls = _getOptionProps.prefixCls,
  74. afterVisibleChange = _getOptionProps.afterVisibleChange,
  75. transitionName = _getOptionProps.transitionName,
  76. animation = _getOptionProps.animation,
  77. placement = _getOptionProps.placement,
  78. align = _getOptionProps.align,
  79. destroyTooltipOnHide = _getOptionProps.destroyTooltipOnHide,
  80. defaultVisible = _getOptionProps.defaultVisible,
  81. getTooltipContainer = _getOptionProps.getTooltipContainer,
  82. restProps = (0, _objectWithoutProperties3['default'])(_getOptionProps, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', 'overlayStyle', 'prefixCls', 'afterVisibleChange', 'transitionName', 'animation', 'placement', 'align', 'destroyTooltipOnHide', 'defaultVisible', 'getTooltipContainer']);
  83. var extraProps = (0, _extends3['default'])({}, restProps);
  84. if ((0, _propsUtil.hasProp)(this, 'visible')) {
  85. extraProps.popupVisible = this.$props.visible;
  86. }
  87. var listeners = (0, _propsUtil.getListeners)(this);
  88. var triggerProps = {
  89. props: (0, _extends3['default'])({
  90. popupClassName: overlayClassName,
  91. prefixCls: prefixCls,
  92. action: trigger,
  93. builtinPlacements: _placements.placements,
  94. popupPlacement: placement,
  95. popupAlign: align,
  96. getPopupContainer: getTooltipContainer,
  97. afterPopupVisibleChange: afterVisibleChange,
  98. popupTransitionName: transitionName,
  99. popupAnimation: animation,
  100. defaultPopupVisible: defaultVisible,
  101. destroyPopupOnHide: destroyTooltipOnHide,
  102. mouseLeaveDelay: mouseLeaveDelay,
  103. popupStyle: overlayStyle,
  104. mouseEnterDelay: mouseEnterDelay
  105. }, extraProps),
  106. on: (0, _extends3['default'])({}, listeners, {
  107. popupVisibleChange: listeners.visibleChange || noop,
  108. popupAlign: listeners.popupAlign || noop
  109. }),
  110. ref: 'trigger'
  111. };
  112. return h(
  113. _vcTrigger2['default'],
  114. triggerProps,
  115. [h(
  116. 'template',
  117. { slot: 'popup' },
  118. [this.getPopupElement(h)]
  119. ), this.$slots['default']]
  120. );
  121. }
  122. };