dropIndicator.js 862 B

12345678910111213141516171819202122232425262728293031323334
  1. import { createVNode as _createVNode } from "vue";
  2. export const offset = 4;
  3. export default function dropIndicatorRender(props) {
  4. const {
  5. dropPosition,
  6. dropLevelOffset,
  7. prefixCls,
  8. indent,
  9. direction = 'ltr'
  10. } = props;
  11. const startPosition = direction === 'ltr' ? 'left' : 'right';
  12. const endPosition = direction === 'ltr' ? 'right' : 'left';
  13. const style = {
  14. [startPosition]: `${-dropLevelOffset * indent + offset}px`,
  15. [endPosition]: 0
  16. };
  17. switch (dropPosition) {
  18. case -1:
  19. style.top = `${-3}px`;
  20. break;
  21. case 1:
  22. style.bottom = `${-3}px`;
  23. break;
  24. default:
  25. // dropPosition === 0
  26. style.bottom = `${-3}px`;
  27. style[startPosition] = `${indent + offset}px`;
  28. break;
  29. }
  30. return _createVNode("div", {
  31. "style": style,
  32. "class": `${prefixCls}-drop-indicator`
  33. }, null);
  34. }