{"version":3,"file":"useMove.mjs","sources":["../../../../../../packages/components/transfer/src/useMove.ts"],"sourcesContent":["import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\n\nimport type { ComputedRef } from 'vue'\nimport type {\n  TransferProps,\n  TransferCheckedState,\n  DataItem,\n  Key,\n} from './transfer'\n\nexport const useMove = (\n  props: TransferProps,\n  checkedState: TransferCheckedState,\n  propsKey: ComputedRef<string>,\n  emit\n) => {\n  const _emit = (value, type: 'left' | 'right', checked: Key[]) => {\n    emit(UPDATE_MODEL_EVENT, value)\n    emit(CHANGE_EVENT, value, type, checked)\n  }\n\n  const addToLeft = () => {\n    const currentValue = props.modelValue.slice()\n\n    checkedState.rightChecked.forEach((item) => {\n      const index = currentValue.indexOf(item)\n      if (index > -1) {\n        currentValue.splice(index, 1)\n      }\n    })\n    _emit(currentValue, 'left', checkedState.rightChecked)\n  }\n\n  const addToRight = () => {\n    let currentValue = props.modelValue.slice()\n\n    const itemsToBeMoved = props.data\n      .filter((item: DataItem) => {\n        const itemKey = item[propsKey.value]\n        return (\n          checkedState.leftChecked.includes(itemKey) &&\n          !props.modelValue.includes(itemKey)\n        )\n      })\n      .map((item) => item[propsKey.value])\n\n    currentValue =\n      props.targetOrder === 'unshift'\n        ? itemsToBeMoved.concat(currentValue)\n        : currentValue.concat(itemsToBeMoved)\n\n    if (props.targetOrder === 'original') {\n      currentValue = props.data\n        .filter((item) => currentValue.includes(item[propsKey.value]))\n        .map((item) => item[propsKey.value])\n    }\n\n    _emit(currentValue, 'right', checkedState.leftChecked)\n  }\n\n  return {\n    addToLeft,\n    addToRight,\n  }\n}\n"],"names":[],"mappings":";;MAUa,UAAU,CACrB,OACA,cACA,UACA,SACG;AACH,QAAM,QAAQ,CAAC,OAAO,MAAwB,YAAmB;AAC/D,SAAK,oBAAoB;AACzB,SAAK,cAAc,OAAO,MAAM;AAAA;AAGlC,QAAM,YAAY,MAAM;AACtB,UAAM,eAAe,MAAM,WAAW;AAEtC,iBAAa,aAAa,QAAQ,CAAC,SAAS;AAC1C,YAAM,QAAQ,aAAa,QAAQ;AACnC,UAAI,QAAQ,IAAI;AACd,qBAAa,OAAO,OAAO;AAAA;AAAA;AAG/B,UAAM,cAAc,QAAQ,aAAa;AAAA;AAG3C,QAAM,aAAa,MAAM;AACvB,QAAI,eAAe,MAAM,WAAW;AAEpC,UAAM,iBAAiB,MAAM,KAC1B,OAAO,CAAC,SAAmB;AAC1B,YAAM,UAAU,KAAK,SAAS;AAC9B,aACE,aAAa,YAAY,SAAS,YAClC,CAAC,MAAM,WAAW,SAAS;AAAA,OAG9B,IAAI,CAAC,SAAS,KAAK,SAAS;AAE/B,mBACE,MAAM,gBAAgB,YAClB,eAAe,OAAO,gBACtB,aAAa,OAAO;AAE1B,QAAI,MAAM,gBAAgB,YAAY;AACpC,qBAAe,MAAM,KAClB,OAAO,CAAC,SAAS,aAAa,SAAS,KAAK,SAAS,SACrD,IAAI,CAAC,SAAS,KAAK,SAAS;AAAA;AAGjC,UAAM,cAAc,SAAS,aAAa;AAAA;AAG5C,SAAO;AAAA,IACL;AAAA,IACA;AAAA;AAAA;;;;"}