{"version":3,"file":"transfer-list.mjs","sources":["../../../../components/transfer/components/transfer-list.tsx"],"sourcesContent":["import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n  EmptyType,\n  SearchEvent,\n  SearchOption,\n  TransferValue,\n  TdTransferProps,\n  TransferListType,\n  TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { filter, isString, cloneDeep } from 'lodash-es';\n\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n  checkboxProps: {\n    type: Object as PropType<CheckboxProps>,\n    default: () => ({}),\n  },\n  dataSource: {\n    type: Array as PropType<Array<TransferItemOption>>,\n    default(): Array<TransferItemOption> {\n      return [];\n    },\n  },\n  listType: {\n    type: String as PropType<TransferListType>,\n    default: 'target',\n  },\n  title: {\n    type: [String, Function],\n  },\n  checkedValue: {\n    type: Array as PropType<Array<TransferValue>>,\n    default(): Array<TransferValue> {\n      return [];\n    },\n  },\n  disabled: {\n    type: Boolean,\n    default: false,\n  },\n  search: {\n    type: [Boolean, Object] as PropType<SearchOption>,\n    default: false,\n  },\n  transferItem: Function as PropType<TdTransferProps['transferItem']>,\n  empty: {\n    type: [Function, String] as PropType<EmptyType>,\n  },\n  pagination: [Boolean, Object],\n  footer: [Function, String],\n  checkAll: Boolean,\n  isTreeMode: {\n    type: Boolean as PropType<boolean>,\n    default: false,\n  },\n  onCheckedChange: Function as PropType<(event: Array<TransferValue>) => void>,\n  onPageChange: Function,\n  onScroll: Function,\n  onSearch: Function,\n  onDataChange: Function as PropType<(data: Array<TransferValue>, movedValue: Array<TransferValue>) => void>,\n  draggable: Boolean,\n  currentValue: {\n    type: Array as PropType<Array<TransferValue>>,\n  },\n};\n\nexport default defineComponent({\n  name: 'TTransferList',\n  props,\n  setup(props) {\n    const classPrefix = usePrefixClass();\n    const { currentValue } = toRefs(props);\n    const { t, globalConfig } = useConfig('transfer');\n    // 搜索框输入内容\n    const filterValue = ref('');\n    // 用于兼容处理 Pagination 的非受控属性（非受控属性仅有 change 事件变化，无 props 变化，因此只需监听事件）\n    const defaultCurrent = ref(1);\n    // 用于兼容处理 Pagination 的非受控属性\n    const defaultPageSize = ref(0);\n\n    const currentPage = computed(() => {\n      const pagination = props.pagination as any;\n      return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n    });\n    const pageSize = computed(() => {\n      const pagination = props.pagination as any;\n      return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n    });\n\n    const filteredData = computed(() => {\n      const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n      if (!isTreeData) {\n        return props.dataSource.filter((item: TransferItemOption) => {\n          const label = item && item.label.toString();\n          return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n        });\n      } else {\n        return filteredTreeData(props.dataSource, filterValue.value);\n      }\n    });\n\n    const pageTotal = computed(() => {\n      return (filteredData.value && filteredData.value.length) || 0;\n    });\n\n    const curPageData = computed(() => {\n      let pageData = filteredData.value;\n      if (!props.pagination) return pageData;\n      if (pageSize.value === 0) return pageData;\n      const startIndex = (currentPage.value - 1) * pageSize.value;\n      const endIndex = currentPage.value * pageSize.value;\n      pageData = pageData.slice(startIndex, endIndex);\n      return pageData;\n    });\n    const paginationProps = computed(() => {\n      const defaultPaginationProps: TdPaginationProps = {\n        totalContent: false,\n        pageSizeOptions: [],\n      };\n      return typeof props.pagination === 'object'\n        ? {\n            ...defaultPaginationProps,\n            ...props.pagination,\n            size: 'small',\n            theme: 'simple',\n            current: currentPage.value,\n            total: pageTotal.value,\n            pageSize: pageSize.value,\n          }\n        : {};\n    });\n    const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n      currentValue,\n      curPageData,\n      props.onDataChange,\n    );\n    const isAllChecked = computed(() => {\n      const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n      return (\n        props.checkedValue.length > 0 &&\n        (props.isTreeMode\n          ? allValue.every((item) => props.checkedValue.includes(item))\n          : (props.search ? filteredData.value : props.dataSource).every(\n              (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n            ))\n      );\n    });\n    const indeterminate = computed(() => {\n      return !isAllChecked.value && props.checkedValue.length > 0;\n    });\n\n    const totalCount = computed(() => {\n      return getLefCount(props.dataSource);\n    });\n\n    watch(totalCount, (val) => {\n      if (val <= (currentPage.value - 1) * pageSize.value) {\n        const lastPage = Math.ceil(val / pageSize.value);\n        defaultCurrent.value = lastPage;\n      }\n    });\n\n    const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n      const res = filter(cloneDeep(list), (node) => {\n        if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n          return true;\n        }\n        if (node.children && node.children.length > 0) {\n          node.children = filteredTreeData(node.children, keyword);\n          if (node.children.length > 0) {\n            return true;\n          }\n        }\n        return false;\n      });\n      return res;\n    };\n\n    const handlePaginationChange = (pageInfo: PageInfo) => {\n      props.onPageChange?.(pageInfo);\n      defaultCurrent.value = pageInfo.current;\n      defaultPageSize.value = pageInfo.pageSize;\n    };\n    const handleCheckedChange = (val: Array<TransferValue>) => {\n      props.onCheckedChange?.(val);\n    };\n    const handleCheckedAllChange = (checked: boolean) => {\n      if (checked) {\n        const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n          isTreeMode: props.isTreeMode,\n          include: false,\n        });\n        handleCheckedChange(allValue);\n      } else {\n        handleCheckedChange([]);\n      }\n    };\n    const handleScroll = (e: Event) => {\n      props.onScroll?.(e);\n    };\n    const handleSearch = (e: any) => {\n      const event: SearchEvent = {\n        query: e.value,\n        type: props.listType as TransferListType,\n        e: e.e,\n        trigger: e.trigger,\n      };\n      filterValue.value = e.value;\n      props.onSearch?.(event);\n    };\n    const renderTNodeJSX = useTNodeDefault();\n    const renderTitle = () => {\n      const defaultNode = props.title && isString(props.title) ? <template>{props.title}</template> : null;\n      const titleNode = renderTNodeJSX('title', {\n        defaultNode,\n        params: {\n          type: props.listType,\n        },\n      });\n      return <span>{titleNode}</span>;\n    };\n    const renderContent = () => {\n      const isDraggable = props.draggable && props.listType === TARGET;\n      let defaultNode: VNode = null;\n      if (!isDraggable) {\n        defaultNode = (\n          <TCheckboxGroup value={props.checkedValue} onChange={handleCheckedChange}>\n            {curPageData.value.map((item, index) => (\n              <TCheckbox\n                disabled={props.disabled || item.disabled}\n                value={item.value}\n                needRipple={true}\n                class={[\n                  `${classPrefix.value}-transfer__list-item`,\n                  props.checkedValue.includes(item.value) ? `${classPrefix.value}-is-checked` : '',\n                ]}\n                key={item.key}\n                {...props.checkboxProps}\n              >\n                {renderTNodeJSX('transferItem', {\n                  defaultNode: <span>{item.label}</span>,\n                  params: { data: item.data, index, type: props.listType },\n                })}\n              </TCheckbox>\n            ))}\n          </TCheckboxGroup>\n        );\n      } else {\n        defaultNode = (\n          <TCheckboxGroup value={props.checkedValue} onChange={handleCheckedChange}>\n            {curPageData.value.map((item, index) => (\n              <div\n                draggable={isDraggable}\n                onDragend={onDragEnd}\n                onDragstart={onDragStart}\n                onDragover={onDragOver}\n                onDragleave={onDragLeave}\n                onDrop={onDrop}\n                data-index={index}\n              >\n                <TCheckbox\n                  disabled={props.disabled || item.disabled}\n                  value={item.value}\n                  needRipple={true}\n                  class={[\n                    `${classPrefix.value}-transfer__list-item`,\n                    props.checkedValue.includes(item.value) ? `${classPrefix.value}-is-checked` : '',\n                  ]}\n                  key={item.key}\n                  {...props.checkboxProps}\n                >\n                  {renderTNodeJSX('transferItem', {\n                    defaultNode: <span>{item.label}</span>,\n                    params: { data: item.data, index, type: props.listType },\n                  })}\n                </TCheckbox>\n              </div>\n            ))}\n          </TCheckboxGroup>\n        );\n      }\n\n      return (\n        <div class={[`${classPrefix.value}-transfer__list-content`, 'narrow-scrollbar']} onScroll={handleScroll}>\n          {renderTNodeJSX('tree', {\n            defaultNode,\n            params: {\n              data: curPageData.value,\n              value: props.checkedValue,\n              onChange: handleCheckedChange,\n            },\n          })}\n        </div>\n      );\n    };\n    const renderEmpty = () => {\n      const empty = props.empty || t(globalConfig.value.empty);\n      const defaultNode: VNode = isString(empty) ? <span>{empty}</span> : null;\n      return (\n        <div class={`${classPrefix.value}-transfer__empty`}>\n          {renderTNodeJSX('empty', {\n            defaultNode,\n            params: {\n              type: props.listType,\n            },\n          })}\n        </div>\n      );\n    };\n    const renderFooter = () => {\n      const defaultNode = isString(props.footer) ? (\n        <div class={`${classPrefix.value}-transfer__footer`}>{props.footer}</div>\n      ) : null;\n      return renderTNodeJSX('footer', {\n        defaultNode,\n        params: {\n          type: props.listType,\n        },\n      });\n    };\n\n    return () => (\n      <div class={[`${classPrefix.value}-transfer__list`, `${classPrefix.value}-transfer__list-${props.listType}`]}>\n        <div class={`${classPrefix.value}-transfer__list-header`}>\n          <div>\n            {props.checkAll && (\n              <TCheckbox\n                disabled={props.disabled || !props.dataSource.length}\n                checked={isAllChecked.value}\n                indeterminate={indeterminate.value}\n                onChange={handleCheckedAllChange}\n              />\n            )}\n            <span>\n              {t(globalConfig.value.title, {\n                checked: props.checkedValue.length,\n                total: totalCount.value,\n              })}\n            </span>\n          </div>\n          {renderTitle()}\n        </div>\n        <div\n          class={[\n            `${classPrefix.value}-transfer__list-body`,\n            props.search ? `${classPrefix.value}-transfer__list--with-search` : '',\n          ]}\n        >\n          {props.search && (\n            <Search\n              value={filterValue.value}\n              placeholder={t(globalConfig.value.placeholder)}\n              onChange={handleSearch}\n              search={props.search}\n            />\n          )}\n          {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n        </div>\n        {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n          <div class={`${classPrefix.value}-transfer__list-pagination`}>\n            <Pagination {...paginationProps.value} onChange={handlePaginationChange} />\n          </div>\n        )}\n        {renderFooter()}\n      </div>\n    );\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","props","checkboxProps","type","default","dataSource","Array","listType","String","title","Function","checkedValue","disabled","Boolean","search","transferItem","empty","pagination","footer","checkAll","isTreeMode","onCheckedChange","onPageChange","onScroll","onSearch","onDataChange","draggable","currentValue","defineComponent","name","setup","classPrefix","usePrefixClass","_toRefs","toRefs","_useConfig","useConfig","t","globalConfig","filterValue","ref","defaultCurrent","defaultPageSize","currentPage","computed","current","value","pageSize","filteredData","isTreeData","some","item","children","length","filter","label","toLowerCase","indexOf","filteredTreeData","pageTotal","curPageData","pageData","startIndex","endIndex","slice","paginationProps","defaultPaginationProps","totalContent","pageSizeOptions","_typeof","_objectSpread","size","theme","total","_useDragSort","useDragSort","onDragStart","onDragEnd","onDrop","onDragOver","onDragLeave","isAllChecked","allValue","getDataValues","include","every","includes","indeterminate","totalCount","getLefCount","watch","val","lastPage","Math","ceil","list","keyword","res","cloneDeep","node","handlePaginationChange","pageInfo","_props2$onPageChange","handleCheckedChange","_props2$onCheckedChan","handleCheckedAllChange","checked","handleScroll","e","_props2$onScroll","handleSearch","_props2$onSearch","event","query","trigger","renderTNodeJSX","useTNodeDefault","renderTitle","defaultNode","isString","_createVNode","titleNode","params","renderContent","isDraggable","TARGET","_slot2","TCheckboxGroup","map","index","concat","key","_slot","data","_default","_slot4","_slot3","onChange","renderEmpty","renderFooter","TCheckbox","Search","placeholder"],"mappings":"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"}