{"version":3,"file":"useMove.mjs","sources":["../../../../../../packages/components/transfer/src/useMove.ts"],"sourcesContent":["import { UPDATE_MODEL_EVENT } from '@sgui-plus/utils/constants'\r\n\r\nimport type { ComputedRef } from 'vue'\r\nimport type {\r\n  TransferProps,\r\n  TransferCheckedState,\r\n  DataItem,\r\n  Key,\r\n} from './transfer'\r\n\r\nexport const useMove = (\r\n  props: TransferProps,\r\n  checkedState: TransferCheckedState,\r\n  propsKey: ComputedRef<string>,\r\n  emit\r\n) => {\r\n  const _emit = (value, type: 'left' | 'right', checked: Key[]) => {\r\n    emit(UPDATE_MODEL_EVENT, value)\r\n    emit('on-change', value, type, checked)\r\n  }\r\n\r\n  const addToLeft = () => {\r\n    const currentValue = props.modelValue.slice()\r\n\r\n    checkedState.rightChecked.forEach((item) => {\r\n      const index = currentValue.indexOf(item)\r\n      if (index > -1) {\r\n        currentValue.splice(index, 1)\r\n      }\r\n    })\r\n    _emit(currentValue, 'left', checkedState.rightChecked)\r\n  }\r\n\r\n  const addToRight = () => {\r\n    let currentValue = props.modelValue.slice()\r\n\r\n    const itemsToBeMoved = props.data\r\n      .filter((item: DataItem) => {\r\n        const itemKey = item[propsKey.value]\r\n        return (\r\n          checkedState.leftChecked.includes(itemKey) &&\r\n          !props.modelValue.includes(itemKey)\r\n        )\r\n      })\r\n      .map((item) => item[propsKey.value])\r\n\r\n    currentValue =\r\n      props.targetOrder === 'unshift'\r\n        ? itemsToBeMoved.concat(currentValue)\r\n        : currentValue.concat(itemsToBeMoved)\r\n\r\n    if (props.targetOrder === 'original') {\r\n      currentValue = props.data\r\n        .filter((item) => currentValue.includes(item[propsKey.value]))\r\n        .map((item) => item[propsKey.value])\r\n    }\r\n\r\n    _emit(currentValue, 'right', checkedState.leftChecked)\r\n  }\r\n\r\n  return {\r\n    addToLeft,\r\n    addToRight,\r\n  }\r\n}\r\n"],"names":[],"mappings":";;AACY,MAAC,OAAO,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,KAAK;AAChE,EAAE,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,KAAK;AAC1C,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,MAAM;AAC1B,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAClD,IAAI,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAChD,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACtB,QAAQ,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;AAC3D,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,MAAM;AAC3B,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAChD,IAAI,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACvD,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,MAAM,OAAO,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/F,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,IAAI,YAAY,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/H,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE;AAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAClI,KAAK;AACL,IAAI,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;AAC3D,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,UAAU;AACd,GAAG,CAAC;AACJ;;;;"}