PickerTrigger.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
  3. import Trigger from '../vc-trigger';
  4. import classNames from '../_util/classNames';
  5. import useMergeProps from './hooks/useMergeProps';
  6. var BUILT_IN_PLACEMENTS = {
  7. bottomLeft: {
  8. points: ['tl', 'bl'],
  9. offset: [0, 4],
  10. overflow: {
  11. adjustX: 1,
  12. adjustY: 1
  13. }
  14. },
  15. bottomRight: {
  16. points: ['tr', 'br'],
  17. offset: [0, 4],
  18. overflow: {
  19. adjustX: 1,
  20. adjustY: 1
  21. }
  22. },
  23. topLeft: {
  24. points: ['bl', 'tl'],
  25. offset: [0, -4],
  26. overflow: {
  27. adjustX: 0,
  28. adjustY: 1
  29. }
  30. },
  31. topRight: {
  32. points: ['br', 'tr'],
  33. offset: [0, -4],
  34. overflow: {
  35. adjustX: 0,
  36. adjustY: 1
  37. }
  38. }
  39. };
  40. function PickerTrigger(props, _ref) {
  41. var _classNames;
  42. var slots = _ref.slots;
  43. var _useMergeProps = useMergeProps(props),
  44. prefixCls = _useMergeProps.prefixCls,
  45. popupStyle = _useMergeProps.popupStyle,
  46. visible = _useMergeProps.visible,
  47. dropdownClassName = _useMergeProps.dropdownClassName,
  48. dropdownAlign = _useMergeProps.dropdownAlign,
  49. transitionName = _useMergeProps.transitionName,
  50. getPopupContainer = _useMergeProps.getPopupContainer,
  51. range = _useMergeProps.range,
  52. popupPlacement = _useMergeProps.popupPlacement,
  53. direction = _useMergeProps.direction;
  54. var dropdownPrefixCls = "".concat(prefixCls, "-dropdown");
  55. var getPopupPlacement = function getPopupPlacement() {
  56. if (popupPlacement !== undefined) {
  57. return popupPlacement;
  58. }
  59. return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';
  60. };
  61. return _createVNode(Trigger, {
  62. "showAction": [],
  63. "hideAction": [],
  64. "popupPlacement": getPopupPlacement(),
  65. "builtinPlacements": BUILT_IN_PLACEMENTS,
  66. "prefixCls": dropdownPrefixCls,
  67. "popupTransitionName": transitionName,
  68. "popupAlign": dropdownAlign,
  69. "popupVisible": visible,
  70. "popupClassName": classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, "".concat(dropdownPrefixCls, "-range"), range), _defineProperty(_classNames, "".concat(dropdownPrefixCls, "-rtl"), direction === 'rtl'), _classNames)),
  71. "popupStyle": popupStyle,
  72. "getPopupContainer": getPopupContainer,
  73. "tryPopPortal": true
  74. }, {
  75. default: slots.default,
  76. popup: slots.popupElement
  77. });
  78. }
  79. export default PickerTrigger;