{"version":3,"file":"movedown.mjs","sources":["../../../../../../packages/components/array-base/src/movedown.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { ElButton, useNamespace } from 'element-plus'\nimport { ArrowDown } from '@element-plus/icons-vue'\nimport { useArray, useIndex } from './hooks'\n\nexport type IArrayBaseMoveDownProps = {\n  title?: string\n  index?: number\n}\n\nexport const ArrayBaseMoveDown = defineComponent<IArrayBaseMoveDownProps>({\n  name: 'ArrayBaseMoveDown',\n  props: {\n    title: {\n      type: String,\n      default: '',\n    },\n    index: {\n      type: Number,\n    },\n  },\n  setup(props, { attrs, slots }) {\n    const ns = useNamespace('array-base')\n    const indexRef = useIndex(props.index)\n    const { field, form, keyMap } = useArray()\n    return () => {\n      if (!field) return null\n      return h(\n        ElButton,\n        {\n          class: `${ns.b('move-down')}`,\n          size: 'small',\n          link: true,\n          icon: ArrowDown,\n          disabled: form?.disabled,\n          onClick: (evt: MouseEvent) => {\n            if (attrs.onClick) {\n              return (attrs as any).onClick?.(evt, { field, form, keyMap })\n            }\n            if (form?.disabled) return\n\n            evt.stopPropagation()\n            const curIndex = indexRef.value\n            if (Array.isArray(keyMap)) {\n              let nextIndex = indexRef.value + 1\n              const length = keyMap.length\n              nextIndex = nextIndex >= length ? 0 : nextIndex\n              keyMap.splice(nextIndex, 0, keyMap.splice(curIndex, 1)[0])\n            }\n            if (Array.isArray(field.fieldValue)) {\n              let nextIndex = indexRef.value + 1\n              const length = field.fieldValue.length\n              nextIndex = nextIndex >= length ? 0 : nextIndex\n              field.fieldValue.splice(\n                nextIndex,\n                0,\n                field.fieldValue.splice(curIndex, 1)[0]\n              )\n            }\n          },\n          ...attrs,\n        },\n        {\n          default: () => [slots?.default?.() ?? props.title],\n        }\n      )\n    }\n  },\n})\n"],"names":[],"mappings":"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"}