{"version":3,"file":"ListBody.cjs","sources":["../../../../../../packages/components/transfer/src/ListBody.tsx"],"sourcesContent":["import type { TransferItem } from './interface';\nimport { classNames } from '@antdv/utils';\nimport { computed, defineComponent, ref, watch } from 'vue';\nimport Pagination from '../../pagination';\nimport ListItem from './ListItem';\nimport { transferListBodyProps } from './props';\n\nfunction parsePagination(pagination) {\n  if (!pagination)\n    return null;\n\n  const defaultPagination = {\n    pageSize: 10,\n    simple: true,\n    showSizeChanger: false,\n    showLessItems: false,\n  };\n\n  if (typeof pagination === 'object') {\n    return {\n      ...defaultPagination,\n      ...pagination,\n    };\n  }\n\n  return defaultPagination;\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ListBody',\n  inheritAttrs: false,\n  props: transferListBodyProps(),\n  emits: ['itemSelect', 'itemRemove', 'scroll'],\n  setup(props, { emit, expose }) {\n    const current = ref(1);\n\n    const handleItemSelect = (item: TransferItem) => {\n      const { selectedKeys } = props;\n      const checked = selectedKeys.includes(item.key);\n      emit('itemSelect', item.key, !checked);\n    };\n\n    const handleItemRemove = (item: TransferItem) => {\n      emit('itemRemove', [item.key]);\n    };\n\n    const handleScroll = (e: Event) => {\n      emit('scroll', e);\n    };\n\n    const mergedPagination = computed(() => parsePagination(props.pagination));\n\n    watch(\n      [mergedPagination, () => props.filteredRenderItems],\n      () => {\n        if (mergedPagination.value) {\n          // Calculate the page number\n          const maxPageCount = Math.ceil(\n            props.filteredRenderItems.length / mergedPagination.value.pageSize,\n          );\n          current.value = Math.min(current.value, maxPageCount);\n        }\n      },\n      { immediate: true },\n    );\n    const items = computed(() => {\n      const { filteredRenderItems } = props;\n\n      let displayItems = filteredRenderItems;\n\n      if (mergedPagination.value) {\n        displayItems = filteredRenderItems.slice(\n          (current.value - 1) * mergedPagination.value.pageSize,\n          current.value * mergedPagination.value.pageSize,\n        );\n      }\n\n      return displayItems;\n    });\n\n    const onPageChange = (cur: number) => {\n      current.value = cur;\n    };\n\n    expose({ items });\n\n    return () => {\n      const {\n        prefixCls,\n        filteredRenderItems,\n        selectedKeys,\n        disabled: globalDisabled,\n        showRemove,\n      } = props;\n\n      let paginationNode = null;\n\n      if (mergedPagination.value) {\n        paginationNode = (\n          <Pagination\n            simple={mergedPagination.value.simple}\n            showSizeChanger={mergedPagination.value.showSizeChanger}\n            showLessItems={mergedPagination.value.showLessItems}\n            size=\"small\"\n            disabled={globalDisabled}\n            class={`${prefixCls}-pagination`}\n            total={filteredRenderItems.length}\n            pageSize={mergedPagination.value.pageSize}\n            current={current.value}\n            onChange={onPageChange}\n          />\n        );\n      }\n\n      const itemsList = items.value.map(({ renderedEl, renderedText, item }: any) => {\n        const { disabled } = item;\n        const checked = selectedKeys.includes(item.key);\n\n        return (\n          <ListItem\n            disabled={globalDisabled || disabled}\n            key={item.key}\n            item={item}\n            renderedText={renderedText}\n            renderedEl={renderedEl}\n            checked={checked}\n            prefixCls={prefixCls}\n            onClick={handleItemSelect}\n            onRemove={handleItemRemove}\n            showRemove={showRemove}\n          />\n        );\n      });\n      return (\n        <>\n          <ul\n            class={classNames(`${prefixCls}-content`, {\n              [`${prefixCls}-content-show-remove`]: showRemove,\n            })}\n            onScroll={handleScroll}\n          >\n            {itemsList}\n          </ul>\n          {paginationNode}\n        </>\n      );\n    };\n  },\n});\n"],"names":["parsePagination","pagination","defaultPagination","pageSize","simple","showSizeChanger","showLessItems","defineComponent","compatConfig","MODE","name","inheritAttrs","props","transferListBodyProps","emits","setup","emit","expose","current","ref","handleItemSelect","item","selectedKeys","checked","includes","key","handleItemRemove","handleScroll","e","mergedPagination","computed","watch","filteredRenderItems","value","maxPageCount","Math","ceil","length","min","immediate","items","displayItems","slice","onPageChange","cur","prefixCls","disabled","globalDisabled","showRemove","paginationNode","_createVNode","Pagination","itemsList","map","renderedEl","renderedText","ListItem","_Fragment","classNames"],"mappings":"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"}