{"version":3,"file":"use-selection.mjs","sources":["../../../../../../../packages/components/table-bak/src/hooks/use-selection.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { computed, ref, watch } from 'vue'\nimport type { TableData } from '../types'\nexport const useSelection = ({\n  selection,\n  allEnabledSelectionRows,\n  emit\n}: {\n  selection: Ref<TableData[]>\n  allEnabledSelectionRows: Ref<TableData[]>\n  emit: any\n}) => {\n  const innerSelection = ref(selection.value ?? [])\n  const keepSelection = computed(() => innerSelection.value.filter((row) => row.disabled))\n  const selectionRows = computed(() => innerSelection.value)\n  // todo 下一步启用\n  const useSelectedKeys = ref<(string | number)[]>([])\n\n  const toggleSelectAll = (checked: boolean) => {\n    // console.log('keepSelection___', keepSelection.value)\n    // console.log('LOG~~~~~~~~', allEnabledSelectionRows.value)\n    const _allEnabledSelectionRows = [...allEnabledSelectionRows.value, ...keepSelection.value]\n    // 全选，则用当前页中所有可选行，不含disabled，都则使用disabled行\n    const _selection = checked ? _allEnabledSelectionRows : [...keepSelection.value]\n    // console.log('useSelectedKeys', useSelectedKeys.value)\n    // 下面要处理全选数据插入的问题，同时需要处理取消全选数据剔除的问题\n    // 如果全选\n    if (checked) {\n      _selection.map((row) => {\n        // 如果全部选中项中不包含当前页的数据，则插入\n        if (!innerSelection.value.includes(row)) {\n          innerSelection.value.push(row)\n        }\n      })\n    } else {\n      // 取消全选\n      _allEnabledSelectionRows.map((row) => {\n        if (innerSelection.value.includes(row)) {\n          innerSelection.value = innerSelection.value.filter((r) => r !== row)\n        }\n      })\n      _selection.map((row) => {\n        if (!innerSelection.value.includes(row)) {\n          innerSelection.value.push(row)\n        }\n      })\n    }\n    // TODO 没有绑定事件不需要触发事件函数\n    emit('update:selection', innerSelection.value)\n    emit('selection-change', innerSelection.value)\n\n    // innerSelection.value = _selectedItems\n  }\n\n  /**\n   * Table Checkbox全选\n   * @param checked\n   */\n  const selectAll = (checked: boolean) => {\n    // console.log('selectAll', checked)\n    toggleSelectAll(checked)\n    emit('select-all', checked)\n  }\n\n  watch(selection, (val) => {\n    innerSelection.value = val\n  })\n\n  const toggleSelect = (row: TableData, checked: boolean) => {\n    const originSelection = [...innerSelection.value]\n    if (checked) {\n      originSelection.push(row)\n    } else {\n      const index = originSelection.findIndex((r) => r === row)\n      if (index > -1) {\n        originSelection.splice(index, 1)\n      }\n    }\n    innerSelection.value = originSelection\n\n    emit('update:selection', originSelection)\n    emit('selection-change', originSelection)\n  }\n\n  return {\n    toggleSelect,\n    toggleSelectAll,\n    selectAll,\n    selectionRows,\n    useSelectedKeys\n  }\n}\n"],"names":[],"mappings":"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"}