{"version":3,"file":"useRowSelect.mjs","sources":["../../../../components/table/hooks/useRowSelect.tsx"],"sourcesContent":["/**\n * 行选中相关功能：单选 + 多选\n */\nimport { computed, toRefs, h, ref, watch } from 'vue';\nimport { intersection } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport {\n  ActiveRowActionContext,\n  PrimaryTableCellParams,\n  PrimaryTableCol,\n  RowClassNameParams,\n  TableRowData,\n  TdPrimaryTableProps,\n} from '../type';\nimport { isRowSelectedDisabled } from '@tdesign/common-js/table/utils';\nimport { TableClassName } from './useClassName';\nimport Checkbox from '../../checkbox';\nimport Radio from '../../radio';\nimport log from '@tdesign/common-js/log/index';\n\nexport default function useRowSelect(\n  props: TdPrimaryTableProps,\n  tableSelectedClasses: TableClassName['tableSelectedClasses'],\n) {\n  const { selectedRowKeys, columns, rowKey, data, reserveSelectedRowOnPaginate } = toRefs(props);\n  const currentPaginateData = ref<TableRowData[]>(data.value);\n  const selectedRowClassNames = ref();\n  const [tSelectedRowKeys, setTSelectedRowKeys] = useDefaultValue(\n    selectedRowKeys,\n    props.defaultSelectedRowKeys || [],\n    props.onSelectChange,\n    'selectedRowKeys',\n  );\n  const selectedRowDataMap = ref(new Map<string | number, TableRowData>());\n  const selectColumn = computed(() => props.columns.find(({ type }) => ['multiple', 'single'].includes(type)));\n  const selectionType = computed(() => props.rowSelectionType || selectColumn.value?.type || 'single');\n  const canSelectedRows = computed(() => {\n    const currentData = reserveSelectedRowOnPaginate.value ? data.value : currentPaginateData.value;\n    return currentData.filter((row, rowIndex): boolean => !isDisabled(row, rowIndex));\n  });\n  // 选中的行，和所有可以选择的行，交集，用于计算 isSelectedAll 和 isIndeterminate\n  const intersectionKeys = computed(() =>\n    intersection(\n      tSelectedRowKeys.value,\n      canSelectedRows.value.map((t) => get(t, props.rowKey || 'id')),\n    ),\n  );\n\n  const allowUncheck = computed(() => {\n    if (props.rowSelectionAllowUncheck) return true;\n    const singleSelectCol = selectionType.value === 'single';\n    if (!singleSelectCol || !selectColumn.value || !('allowUncheck' in selectColumn.value?.checkProps)) return false;\n    return selectColumn.value.checkProps.allowUncheck;\n  });\n\n  watch(\n    [data, columns, tSelectedRowKeys, selectColumn, rowKey],\n    () => {\n      const disabledRowFunc = (p: RowClassNameParams<TableRowData>) =>\n        selectColumn.value.disabled(p) ? tableSelectedClasses.disabled : '';\n      const disabledRowClass = selectColumn.value?.disabled ? disabledRowFunc : undefined;\n      const selected = new Set(tSelectedRowKeys.value);\n      const selectedRowClassFunc = ({ row }: RowClassNameParams<TableRowData>) => {\n        const rowId = get(row, props.rowKey || 'id');\n        return selected.has(rowId) ? tableSelectedClasses.selected : '';\n      };\n      const selectedRowClass = selected.size ? selectedRowClassFunc : undefined;\n      selectedRowClassNames.value = [disabledRowClass, selectedRowClass];\n      currentPaginateData.value = data.value;\n    },\n    { immediate: true },\n  );\n\n  function isDisabled(row: Record<string, any>, rowIndex: number): boolean {\n    return isRowSelectedDisabled(selectColumn.value, row, rowIndex);\n  }\n\n  function getSelectedHeader() {\n    return () => {\n      const isIndeterminate =\n        intersectionKeys.value.length > 0 && intersectionKeys.value.length < canSelectedRows.value.length;\n      const isChecked =\n        intersectionKeys.value.length !== 0 &&\n        canSelectedRows.value.length !== 0 &&\n        intersectionKeys.value.length === canSelectedRows.value.length;\n      return (\n        <Checkbox\n          checked={isChecked}\n          indeterminate={isIndeterminate}\n          disabled={!canSelectedRows.value.length}\n          onChange={handleSelectAll}\n        />\n      );\n    };\n  }\n\n  function getRowSelectDisabledData(p: PrimaryTableCellParams<TableRowData>) {\n    const { col, row, rowIndex } = p;\n    const disabled: boolean = isFunction(col.disabled) ? col.disabled({ row, rowIndex }) : col.disabled;\n    const checkProps = isFunction(col.checkProps) ? col.checkProps({ row, rowIndex }) : col.checkProps;\n    return {\n      disabled: disabled || checkProps?.disabled,\n      checkProps,\n    };\n  }\n\n  function renderSelectCell(p: PrimaryTableCellParams<TableRowData>) {\n    const { col: column, row = {} } = p;\n    const checked = tSelectedRowKeys.value.includes(get(row, props.rowKey || 'id'));\n    const { disabled, checkProps } = getRowSelectDisabledData(p);\n    const selectBoxProps: Object = {\n      checked,\n      disabled,\n      ...checkProps,\n      // 兼容处理不同的参数\n      onClick: (e: MouseEvent | { e: MouseEvent }) => {\n        // 选中行功能中，点击 checkbox/radio 需阻止事件冒泡，避免触发不必要的 onRowClick\n        if (typeof e === 'object' && 'e' in e) {\n          e.e?.stopPropagation();\n        } else {\n          e?.stopPropagation();\n        }\n      },\n      onChange: () => handleSelectChange(row),\n    };\n    if (column.type === 'single') return <Radio {...selectBoxProps} />;\n    if (column.type === 'multiple') {\n      const isIndeterminate = props.indeterminateSelectedRowKeys?.length\n        ? props.indeterminateSelectedRowKeys.includes(get(row, props.rowKey))\n        : false;\n      return <Checkbox indeterminate={isIndeterminate} {...selectBoxProps} />;\n    }\n    return null;\n  }\n\n  function handleSelectChange(row: TableRowData = {}) {\n    let selectedRowKeys = [...tSelectedRowKeys.value];\n    const reRowKey = props.rowKey || 'id';\n    const id = get(row, reRowKey);\n    const selectedRowIndex = selectedRowKeys.indexOf(id);\n    const isExisted = selectedRowIndex !== -1;\n    if (selectionType.value === 'multiple') {\n      isExisted ? selectedRowKeys.splice(selectedRowIndex, 1) : selectedRowKeys.push(id);\n    } else if (selectionType.value === 'single') {\n      selectedRowKeys = isExisted && allowUncheck.value ? [] : [id];\n    } else {\n      log.warn('Table', '`column.type` must be one of `multiple` and `single`');\n      return;\n    }\n    setTSelectedRowKeys(selectedRowKeys, {\n      selectedRowData: selectedRowKeys.map((t) => selectedRowDataMap.value.get(t)),\n      currentRowKey: id,\n      currentRowData: row,\n      type: isExisted ? 'uncheck' : 'check',\n    });\n  }\n\n  function handleSelectAll(checked: boolean) {\n    const reRowKey = props.rowKey || 'id';\n    const canSelectedRowKeys = canSelectedRows.value.map((record) => get(record, reRowKey));\n    const disabledSelectedRowKeys = selectedRowKeys.value?.filter((id) => !canSelectedRowKeys.includes(id)) || [];\n    const allIds = checked ? [...disabledSelectedRowKeys, ...canSelectedRowKeys] : [...disabledSelectedRowKeys];\n    setTSelectedRowKeys(allIds, {\n      selectedRowData: checked ? allIds.map((t) => selectedRowDataMap.value.get(t)) : [],\n      type: checked ? 'check' : 'uncheck',\n      currentRowKey: 'CHECK_ALL_BOX',\n    });\n  }\n\n  function formatToRowSelectColumn(col: PrimaryTableCol) {\n    const isSelection = ['multiple', 'single'].includes(col.type);\n    if (!isSelection) return col;\n    return {\n      ...col,\n      width: col.width || 64,\n      className: [tableSelectedClasses.checkCell, col.className],\n      cell: (_: typeof h, p: PrimaryTableCellParams<TableRowData>) => renderSelectCell(p),\n      title: col.type === 'multiple' ? getSelectedHeader() : col.title,\n    };\n  }\n\n  const onInnerSelectRowClick: TdPrimaryTableProps['onRowClick'] = ({ row, index }) => {\n    const selectedColIndex = props.columns.findIndex((item) => item.colKey === 'row-select');\n    let disabled = false;\n    if (selectedColIndex !== -1) {\n      disabled = getRowSelectDisabledData({\n        row,\n        rowIndex: index,\n        col: props.columns[selectedColIndex],\n        colIndex: selectedColIndex,\n      })?.disabled;\n    }\n    if (disabled) return;\n    handleSelectChange(row);\n  };\n\n  watch(\n    [data, rowKey],\n    () => {\n      for (let i = 0, len = data.value.length; i < len; i++) {\n        selectedRowDataMap.value.set(get(data.value[i], rowKey.value || 'id'), data.value[i]);\n      }\n    },\n    { immediate: true },\n  );\n\n  // 是否开启了行选中功能\n  const showRowSelect = computed(() => Boolean(selectColumn.value || props.selectOnRowClick || props.selectedRowKeys));\n\n  const clearAllSelectedRowKeys = () => {\n    setTSelectedRowKeys([], {\n      selectedRowData: [],\n      currentRowKey: undefined,\n      currentRowData: undefined,\n      type: 'uncheck',\n    });\n  };\n\n  const handleRowSelectWithAreaSelection = ({ activeRowList, action }: ActiveRowActionContext<TableRowData>) => {\n    if (!showRowSelect.value) return;\n\n    if (action === 'clear') {\n      clearAllSelectedRowKeys();\n      return;\n    }\n\n    if (action === 'select-all') {\n      handleSelectAll(true);\n      return;\n    }\n\n    if (selectionType.value === 'single') {\n      if (action === 'space-one-selection') {\n        handleSelectChange(activeRowList[0].row);\n      }\n      return;\n    }\n\n    const validAreaSelection = activeRowList.filter(\n      ({ row, rowIndex }) =>\n        !getRowSelectDisabledData({\n          row,\n          rowIndex,\n          col: selectColumn.value,\n          colIndex: undefined,\n        }).disabled,\n    );\n    if (!validAreaSelection.length) return;\n\n    const areaSelectionKeys = validAreaSelection.map(({ row }) => get(row, props.rowKey));\n    const intersectionKeys = intersection(tSelectedRowKeys.value, areaSelectionKeys);\n    const toCheck = intersectionKeys.length !== areaSelectionKeys.length;\n    const clearedKeys = tSelectedRowKeys.value.filter((key) => !areaSelectionKeys.includes(key));\n    const newSelectedRowKeys = toCheck ? [...new Set(tSelectedRowKeys.value.concat(areaSelectionKeys))] : clearedKeys;\n\n    const currentRowData = action === 'space-one-selection' ? activeRowList[0].row : undefined;\n    setTSelectedRowKeys(newSelectedRowKeys, {\n      selectedRowData: activeRowList,\n      currentRowKey: get(currentRowData, props.rowKey),\n      currentRowData,\n      type: toCheck ? 'check' : 'uncheck',\n    });\n  };\n\n  return {\n    selectColumn,\n    showRowSelect,\n    selectedRowClassNames,\n    currentPaginateData,\n    setTSelectedRowKeys,\n    formatToRowSelectColumn,\n    onInnerSelectRowClick,\n    handleRowSelectWithAreaSelection,\n  };\n}\n"],"names":["useRowSelect","props","tableSelectedClasses","_toRefs","toRefs","selectedRowKeys","columns","rowKey","data","reserveSelectedRowOnPaginate","currentPaginateData","ref","value","selectedRowClassNames","_useDefaultValue","useDefaultValue","defaultSelectedRowKeys","onSelectChange","_useDefaultValue2","_slicedToArray","tSelectedRowKeys","setTSelectedRowKeys","selectedRowDataMap","Map","selectColumn","computed","find","_ref","type","includes","selectionType","_selectColumn$value","rowSelectionType","canSelectedRows","currentData","filter","row","rowIndex","isDisabled","intersectionKeys","intersection","map","t","get","allowUncheck","_selectColumn$value2","rowSelectionAllowUncheck","singleSelectCol","checkProps","watch","_selectColumn$value3","disabledRowFunc","p","disabled","disabledRowClass","selected","Set","selectedRowClassFunc","_ref2","rowId","has","selectedRowClass","size","immediate","isRowSelectedDisabled","getSelectedHeader","isIndeterminate","length","isChecked","_createVNode","Checkbox","handleSelectAll","getRowSelectDisabledData","col","isFunction","renderSelectCell","column","_p$row","checked","_getRowSelectDisabled","selectBoxProps","_objectSpread","onClick","e","_typeof","_e$e","stopPropagation","onChange","handleSelectChange","Radio","_props$indeterminateS","indeterminateSelectedRowKeys","_mergeProps","arguments","undefined","_toConsumableArray","reRowKey","id","selectedRowIndex","indexOf","isExisted","splice","push","log","warn","selectedRowData","currentRowKey","currentRowData","_selectedRowKeys$valu","canSelectedRowKeys","record","disabledSelectedRowKeys","allIds","concat","formatToRowSelectColumn","isSelection","width","className","checkCell","cell","_","title","onInnerSelectRowClick","_ref3","index","selectedColIndex","findIndex","item","colKey","_getRowSelectDisabled2","colIndex","i","len","set","showRowSelect","Boolean","selectOnRowClick","clearAllSelectedRowKeys","handleRowSelectWithAreaSelection","_ref4","activeRowList","action","validAreaSelection","_ref5","areaSelectionKeys","_ref6","toCheck","clearedKeys","key","newSelectedRowKeys"],"mappings":"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"}