SliderTooltip.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. var _typeof = require("@babel/runtime/helpers/typeof");
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = void 0;
  8. var _vue = require("vue");
  9. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  10. var _tooltip = _interopRequireWildcard(require("../tooltip"));
  11. var _raf = _interopRequireDefault(require("../_util/raf"));
  12. function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
  13. function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
  14. var _default = (0, _vue.defineComponent)({
  15. compatConfig: {
  16. MODE: 3
  17. },
  18. name: 'SliderTooltip',
  19. inheritAttrs: false,
  20. props: (0, _tooltip.tooltipProps)(),
  21. setup: function setup(props, _ref) {
  22. var attrs = _ref.attrs,
  23. slots = _ref.slots;
  24. var innerRef = (0, _vue.ref)(null);
  25. var rafRef = (0, _vue.ref)(null);
  26. function cancelKeepAlign() {
  27. _raf.default.cancel(rafRef.value);
  28. rafRef.value = null;
  29. }
  30. function keepAlign() {
  31. rafRef.value = (0, _raf.default)(function () {
  32. var _innerRef$value;
  33. (_innerRef$value = innerRef.value) === null || _innerRef$value === void 0 ? void 0 : _innerRef$value.forcePopupAlign();
  34. rafRef.value = null;
  35. });
  36. }
  37. var align = function align() {
  38. cancelKeepAlign();
  39. if (props.visible) {
  40. keepAlign();
  41. }
  42. };
  43. (0, _vue.watch)([function () {
  44. return props.visible;
  45. }, function () {
  46. return props.title;
  47. }], function () {
  48. align();
  49. }, {
  50. flush: 'post',
  51. immediate: true
  52. });
  53. (0, _vue.onActivated)(function () {
  54. align();
  55. });
  56. (0, _vue.onBeforeUnmount)(function () {
  57. cancelKeepAlign();
  58. });
  59. return function () {
  60. return (0, _vue.createVNode)(_tooltip.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({
  61. "ref": innerRef
  62. }, props), attrs), slots);
  63. };
  64. }
  65. });
  66. exports.default = _default;