index.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 _tooltip = require('../tooltip');
  8. var _tooltip2 = _interopRequireDefault(_tooltip);
  9. var _abstractTooltipProps = require('../tooltip/abstractTooltipProps');
  10. var _abstractTooltipProps2 = _interopRequireDefault(_abstractTooltipProps);
  11. var _vueTypes = require('../_util/vue-types');
  12. var _vueTypes2 = _interopRequireDefault(_vueTypes);
  13. var _propsUtil = require('../_util/props-util');
  14. var _configConsumerProps = require('../config-provider/configConsumerProps');
  15. var _base = require('../base');
  16. var _base2 = _interopRequireDefault(_base);
  17. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  18. var props = (0, _abstractTooltipProps2['default'])();
  19. var Popover = {
  20. name: 'APopover',
  21. props: (0, _extends3['default'])({}, props, {
  22. prefixCls: _vueTypes2['default'].string,
  23. transitionName: _vueTypes2['default'].string.def('zoom-big'),
  24. content: _vueTypes2['default'].any,
  25. title: _vueTypes2['default'].any
  26. }),
  27. model: {
  28. prop: 'visible',
  29. event: 'visibleChange'
  30. },
  31. inject: {
  32. configProvider: { 'default': function _default() {
  33. return _configConsumerProps.ConfigConsumerProps;
  34. } }
  35. },
  36. methods: {
  37. getPopupDomNode: function getPopupDomNode() {
  38. return this.$refs.tooltip.getPopupDomNode();
  39. }
  40. },
  41. render: function render() {
  42. var h = arguments[0];
  43. var title = this.title,
  44. customizePrefixCls = this.prefixCls,
  45. $slots = this.$slots;
  46. var getPrefixCls = this.configProvider.getPrefixCls;
  47. var prefixCls = getPrefixCls('popover', customizePrefixCls);
  48. var props = (0, _propsUtil.getOptionProps)(this);
  49. delete props.title;
  50. delete props.content;
  51. var tooltipProps = {
  52. props: (0, _extends3['default'])({}, props, {
  53. prefixCls: prefixCls
  54. }),
  55. ref: 'tooltip',
  56. on: (0, _propsUtil.getListeners)(this)
  57. };
  58. return h(
  59. _tooltip2['default'],
  60. tooltipProps,
  61. [h(
  62. 'template',
  63. { slot: 'title' },
  64. [h('div', [(title || $slots.title) && h(
  65. 'div',
  66. { 'class': prefixCls + '-title' },
  67. [(0, _propsUtil.getComponentFromProp)(this, 'title')]
  68. ), h(
  69. 'div',
  70. { 'class': prefixCls + '-inner-content' },
  71. [(0, _propsUtil.getComponentFromProp)(this, 'content')]
  72. )])]
  73. ), this.$slots['default']]
  74. );
  75. }
  76. };
  77. /* istanbul ignore next */
  78. Popover.install = function (Vue) {
  79. Vue.use(_base2['default']);
  80. Vue.component(Popover.name, Popover);
  81. };
  82. exports['default'] = Popover;