PresetPanel.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { createVNode as _createVNode } from "vue";
  2. import { defineComponent } from 'vue';
  3. export default defineComponent({
  4. name: 'PresetPanel',
  5. props: {
  6. prefixCls: String,
  7. presets: {
  8. type: Array,
  9. default: () => []
  10. },
  11. onClick: Function,
  12. onHover: Function
  13. },
  14. setup(props) {
  15. return () => {
  16. if (!props.presets.length) {
  17. return null;
  18. }
  19. return _createVNode("div", {
  20. "class": `${props.prefixCls}-presets`
  21. }, [_createVNode("ul", null, [props.presets.map((_ref, index) => {
  22. let {
  23. label,
  24. value
  25. } = _ref;
  26. return _createVNode("li", {
  27. "key": index,
  28. "onClick": e => {
  29. e.stopPropagation();
  30. props.onClick(value);
  31. },
  32. "onMouseenter": () => {
  33. var _a;
  34. (_a = props.onHover) === null || _a === void 0 ? void 0 : _a.call(props, value);
  35. },
  36. "onMouseleave": () => {
  37. var _a;
  38. (_a = props.onHover) === null || _a === void 0 ? void 0 : _a.call(props, null);
  39. }
  40. }, [label]);
  41. })])]);
  42. };
  43. }
  44. });