UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.76 kB
{"version":3,"file":"use-move.mjs","sources":["../../../../../../../packages/components/transfer/src/composables/use-move.ts"],"sourcesContent":["import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { SetupContext } from 'vue'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferEmits,\n TransferKey,\n TransferProps,\n} from '../transfer'\n\nexport const useMove = (\n props: Required<\n Omit<TransferProps, 'filterPlaceholder' | 'filterMethod' | 'renderContent'>\n >,\n checkedState: TransferCheckedState,\n emit: SetupContext<TransferEmits>['emit']\n) => {\n const propsAlias = usePropsAlias(props)\n\n const _emit = (\n value: TransferKey[],\n direction: TransferDirection,\n movedKeys: TransferKey[]\n ) => {\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value, direction, movedKeys)\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: TransferDataItem) => {\n const itemKey = item[propsAlias.value.key]\n return (\n checkedState.leftChecked.includes(itemKey) &&\n !props.modelValue.includes(itemKey)\n )\n })\n .map((item) => item[propsAlias.value.key])\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[propsAlias.value.key]))\n .map((item) => item[propsAlias.value.key])\n }\n\n _emit(currentValue, 'right', checkedState.leftChecked)\n }\n\n return {\n addToLeft,\n addToRight,\n }\n}\n"],"names":[],"mappings":";;;AAaO,MAAM,OAAA,GAAU,CACrB,KAAA,EAGA,YAAA,EACA,IAAA,KACG;AACH,EAAA,MAAM,UAAA,GAAa,cAAc,KAAK,CAAA;AAEtC,EAAA,MAAM,KAAA,GAAQ,CACZ,KAAA,EACA,SAAA,EACA,SAAA,KACG;AACH,IAAA,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9B,IAAA,IAAA,CAAK,YAAA,EAAc,KAAA,EAAO,SAAA,EAAW,SAAS,CAAA;AAAA,EAChD,CAAA;AAEA,EAAA,MAAM,YAAY,MAAM;AACtB,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,UAAA,CAAW,KAAA,EAAM;AAE5C,IAAA,YAAA,CAAa,YAAA,CAAa,OAAA,CAAQ,CAAC,IAAA,KAAS;AAC1C,MAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,OAAA,CAAQ,IAAI,CAAA;AACvC,MAAA,IAAI,QAAQ,EAAA,EAAI;AACd,QAAA,YAAA,CAAa,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,MAC9B;AAAA,IACF,CAAC,CAAA;AACD,IAAA,KAAA,CAAM,YAAA,EAAc,MAAA,EAAQ,YAAA,CAAa,YAAY,CAAA;AAAA,EACvD,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,IAAI,YAAA,GAAe,KAAA,CAAM,UAAA,CAAW,KAAA,EAAM;AAE1C,IAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,IAAA,CAC1B,MAAA,CAAO,CAAC,IAAA,KAA2B;AAClC,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,GAAG,CAAA;AACzC,MAAA,OACE,YAAA,CAAa,YAAY,QAAA,CAAS,OAAO,KACzC,CAAC,KAAA,CAAM,UAAA,CAAW,QAAA,CAAS,OAAO,CAAA;AAAA,IAEtC,CAAC,EACA,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,GAAG,CAAC,CAAA;AAE3C,IAAA,YAAA,GACE,KAAA,CAAM,gBAAgB,SAAA,GAClB,cAAA,CAAe,OAAO,YAAY,CAAA,GAClC,YAAA,CAAa,MAAA,CAAO,cAAc,CAAA;AAExC,IAAA,IAAI,KAAA,CAAM,gBAAgB,UAAA,EAAY;AACpC,MAAA,YAAA,GAAe,KAAA,CAAM,KAClB,MAAA,CAAO,CAAC,SAAS,YAAA,CAAa,QAAA,CAAS,KAAK,UAAA,CAAW,KAAA,CAAM,GAAG,CAAC,CAAC,EAClE,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,GAAG,CAAC,CAAA;AAAA,IAC7C;AAEA,IAAA,KAAA,CAAM,YAAA,EAAc,OAAA,EAAS,YAAA,CAAa,WAAW,CAAA;AAAA,EACvD,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}