{"version":3,"file":"transfer-operations.mjs","sources":["../../../src/transfer/components/transfer-operations.tsx"],"sourcesContent":["import { defineComponent, createElementVNode, PropType, h } from 'vue';\nimport Button from '../../button';\nimport { TNode } from '../../common';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport props from '../props';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport isArray from 'lodash/isArray';\n\nexport default defineComponent({\n  name: 'XTransferOperations',\n  props: {\n    // 控制左按钮的禁用与否\n    leftDisabled: {\n      type: Boolean as PropType<boolean>,\n      required: true,\n    },\n    // 控制右按钮的禁用与否\n    rightDisabled: {\n      type: Boolean as PropType<boolean>,\n      required: true,\n    },\n    operation: props.operation,\n  },\n  emits: ['moveToRight', 'moveToLeft'],\n  setup(props, { slots, emit }) {\n    const classPrefix = usePrefixClass();\n    const moveToRight = () => {\n      emit('moveToRight');\n    };\n    const moveToLeft = () => {\n      emit('moveToLeft');\n    };\n    const getIconRight = () => {\n      return <icon-ri-arrow-right-s-line />;\n    };\n    const getIconLeft = () => {\n      return <icon-ri-arrow-left-s-line />;\n    };\n    const getIcon = (direction: 'left' | 'right') => {\n      if (isFunction(props.operation)) {\n        return null;\n      }\n      if (direction === 'right' && props.operation && isFunction(props.operation[0])) {\n        return null;\n      }\n      if (direction === 'left' && props.operation && isFunction(props.operation[1])) {\n        return null;\n      }\n\n      if (slots.operation) {\n        return null;\n      }\n\n      return direction === 'left' ? getIconLeft : getIconRight;\n    };\n    // right:去右边，left:去左边\n    const renderButton = (h: typeof createElementVNode, direction: 'left' | 'right') => {\n      if (isFunction(slots.operation)) {\n        return slots.operation({\n          direction,\n        });\n      }\n      if (isFunction(props.operation)) {\n        const renderContent = props.operation;\n        return renderContent(h as any, { direction });\n      }\n      let renderContent: string | TNode;\n      if (isArray(props.operation)) {\n        const [left, right] = props.operation;\n        renderContent = direction === 'right' ? right : left;\n      } else {\n        renderContent = '';\n      }\n      return renderContent;\n    };\n\n    return () => (\n      <div class={`${classPrefix.value}-transfer__operations`}>\n        <Button\n          variant=\"outline\"\n          size=\"small\"\n          shape={isString(props.operation?.[1]) ? 'rectangle' : 'square'}\n          key={props.rightDisabled ? 'right-outline' : 'right-base'}\n          disabled={props.rightDisabled}\n          onClick={moveToRight}\n          icon={getIcon('right')}\n        >\n          {renderButton(h, 'right')}\n        </Button>\n        <Button\n          variant=\"outline\"\n          size=\"small\"\n          shape={isString(props.operation?.[0]) ? 'rectangle' : 'square'}\n          key={props.rightDisabled ? 'left-outline' : 'left-base'}\n          disabled={props.leftDisabled}\n          onClick={moveToLeft}\n          icon={getIcon('left')}\n        >\n          {renderButton(h, 'left')}\n        </Button>\n      </div>\n    );\n  },\n});\n"],"names":["_isVNode","name","props","leftDisabled","type","required","rightDisabled","emits","setup","_resolveComponent","isFunction","direction","isArray","left","right","renderContent","_createVNode","isString"],"mappings":"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"}