{"version":3,"file":"transfer-operations.mjs","sources":["../../../../components/transfer/components/transfer-operations.tsx"],"sourcesContent":["import { defineComponent, createElementVNode, PropType, h, VNode } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { SlotReturnArray, TNode } from '../../common';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from '../props';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nexport default defineComponent({\n  name: 'TTransferOperations',\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 { ChevronRightIcon, ChevronLeftIcon } = useGlobalIcon({\n      ChevronRightIcon: TdChevronRightIcon,\n      ChevronLeftIcon: TdChevronLeftIcon,\n    });\n    const moveToRight = () => {\n      emit('moveToRight');\n    };\n    const moveToLeft = () => {\n      emit('moveToLeft');\n    };\n    const getIconRight = () => {\n      return <ChevronRightIcon />;\n    };\n    const getIconLeft = () => {\n      return <ChevronLeftIcon />;\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\n      if (isFunction(props.operation)) {\n        const renderContent = props.operation;\n        return renderContent(h as any, { direction });\n      }\n\n      let renderContent: string | TNode | VNode | SlotReturnArray | null;\n      if (isArray(props.operation)) {\n        const [left, right] = props.operation;\n        const directionOp = direction === 'right' ? right : left;\n        const content = isFunction(directionOp) ? directionOp(h as any) : directionOp;\n\n        // 过滤掉 boolean\n        renderContent = content === false || content === true ? '' : content;\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={isArray(props.operation) && 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={isArray(props.operation) && 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":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","leftDisabled","type","Boolean","required","rightDisabled","operation","emits","setup","slots","_ref","emit","classPrefix","usePrefixClass","_useGlobalIcon","useGlobalIcon","ChevronRightIcon","TdChevronRightIcon","ChevronLeftIcon","TdChevronLeftIcon","moveToRight","moveToLeft","getIconRight","_createVNode","getIconLeft","getIcon","direction","isFunction","renderButton","h","renderContent","isArray","_props2$operation","_slicedToArray","left","right","directionOp","content","_slot","_slot2","concat","value","Button","isString"],"mappings":"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"}